Команда lsblk в Linux: как посмотреть диски, разделы и точки монтирования
lsblk показывает все блочные устройства сервера деревом: диски, разделы, LVM-тома, шифрованные контейнеры и куда они смонтированы. Разбираем колонки вывода, флаг -f для файловых систем и UUID, свои наборы колонок через -o и типовые задачи — найти новый диск, собрать строку для fstab, понять структуру LVM.
lsblk — первая команда, которую набирают, подключив к серверу новый диск или разбираясь, куда делось место. Она читает информацию из sysfs, работает без root и показывает всю структуру хранилища деревом: диски, разделы, LVM-тома и точки монтирования.
Базовый вывод
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 465,8G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 462,8G 0 part
└─vg0-root 252:0 0 100G 0 lvm /
sdb 8:16 0 1,8T 0 disk
└─sdb1 8:17 0 1,8T 0 part /mnt/data
sr0 11:0 1 1024M 0 rom
Дерево читается сверху вниз: sda — физический диск, sda1–sda3 — его разделы, vg0-root — логический том LVM внутри третьего раздела.
Что означают колонки:
| Колонка | Значение |
|---|---|
NAME |
Имя устройства в /dev |
MAJ:MIN |
Старший и младший номер устройства для ядра |
RM |
Съёмное устройство: 1 — да (флешка, привод) |
SIZE |
Размер |
RO |
Только для чтения: 1 — да |
TYPE |
Тип: disk, part, lvm, crypt, rom, loop |
MOUNTPOINTS |
Куда смонтировано; пусто — не смонтировано |
Типы устройств стоит различать: disk — физический носитель, part — раздел на нём, lvm — логический том, crypt — расшифрованный контейнер LUKS, loop — файл, подключённый как устройство (в Ubuntu это в основном snap-пакеты), rom — оптический привод.
Флаг -f: файловые системы и UUID
Самый полезный режим в повседневной работе:
lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat FAT32 A1B2-C3D4 1004M 2% /boot/efi
├─sda2 ext4 1.0 8f3c...b21a 1,4G 22% /boot
└─sda3 LVM2_member LVM2 001 kR3f...9dPz
└─vg0-root ext4 1.0 root 3d9a...7c14 62,3G 28% /
sdb
└─sdb1 xfs data b71e...02ff 1,6T 8% /mnt/data
Здесь сразу видно тип файловой системы, метку, UUID и процент заполнения. Именно этот вывод нужен, чтобы прописать раздел в fstab — монтировать по UUID надёжнее, чем по имени /dev/sdb1, которое может измениться после перестановки дисков.
Скопировать UUID одной строкой:
lsblk -no UUID /dev/sdb1
Свои колонки через -o
Полный список доступных колонок:
lsblk --help | less
Часто нужные наборы:
# модель и серийный номер — чтобы найти нужный диск физически
lsblk -o NAME,SIZE,MODEL,SERIAL
# SSD или HDD: ROTA=1 означает вращающийся диск
lsblk -o NAME,SIZE,ROTA,TYPE,MOUNTPOINTS
# планировщик ввода-вывода и размер сектора
lsblk -o NAME,SCHED,PHY-SEC,LOG-SEC
# всё про монтирование
lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINTS
Дополнить стандартный вывод, а не заменять его целиком, — флаг -O выводит все колонки, а --output-all то же самое:
lsblk -o +MODEL,SERIAL
Плюс перед списком означает «добавить к колонкам по умолчанию».
Остальные полезные флаги
lsblk -d # только диски, без разделов
lsblk -p # полные пути: /dev/sda1 вместо sda1
lsblk -a # включая пустые устройства
lsblk -m # владелец, группа и права на устройства
lsblk -t # топология: сектора, выравнивание, очередь
lsblk -S # только SCSI/SATA/NVMe-устройства с моделью и транспортом
lsblk -e 7 # исключить loop-устройства (major 7)
lsblk /dev/sdb # только конкретное устройство с его разделами
Флаг -e 7 стоит запомнить: на Ubuntu Desktop вывод lsblk обычно завален десятками loop-устройств от snap-пакетов, и полезная информация в них тонет.
lsblk -e 7 -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
Комбинация -p с -e 7 даёт готовые к копированию пути без мусора — удобно, когда следующей командой идёт mkfs или mount.
Находим новый диск
Типовая задача: к серверу подключили диск, нужно понять, как он называется и есть ли на нём данные.
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
Новый диск отличается тем, что у него нет разделов и пустая колонка FSTYPE. Убедиться, что это действительно новое устройство, помогает журнал ядра:
sudo dmesg | tail -20
sudo journalctl -k --since "5 minutes ago"
Там видно, какое имя ядро присвоило устройству при подключении. Про работу с журналом подробно — в шпаргалке по journalctl.
Дальше диск размечают (fdisk, parted или GParted), создают файловую систему и монтируют:
sudo mkfs.ext4 -L data /dev/sdb1
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
lsblk -f /dev/sdb
Последняя команда подтверждает, что файловая система создалась и раздел смонтирован.
Как читать имена устройств
| Имя | Что это |
|---|---|
sda, sdb |
SATA/SAS/USB-диски: первый, второй |
sda1, sda2 |
Разделы на первом диске |
nvme0n1 |
NVMe-накопитель: контроллер 0, пространство имён 1 |
nvme0n1p1 |
Первый раздел на нём (у NVMe разделы через p) |
vda, vdb |
Виртуальные диски (virtio) в KVM/QEMU |
xvda |
Виртуальные диски в Xen, часто в облаках |
dm-0 |
Устройство device-mapper: LVM или LUKS |
loop0 |
Файл, подключённый как блочное устройство |
Порядок букв sda/sdb не гарантирован между загрузками — он зависит от порядка инициализации контроллеров. Поэтому в fstab и в скриптах используют UUID или метку, а не имя устройства.
lsblk против других команд
| Команда | Что показывает | Нужен root |
|---|---|---|
lsblk |
Дерево устройств, разделы, точки монтирования | нет |
lsblk -f |
То же плюс ФС, метки, UUID, свободное место | нет |
df -h |
Занятое место по смонтированным ФС | нет |
blkid |
UUID и типы ФС списком | да (для полного вывода) |
fdisk -l |
Таблицы разделов, геометрия, тип таблицы | да |
parted -l |
То же, плюс работа с GPT | да |
mount |
Что и с какими опциями смонтировано | нет |
Практическое разделение: lsblk — увидеть структуру, df — узнать про место, fdisk/parted — менять разметку. Несмонтированный диск в df не появится вообще, поэтому «диска не видно» чаще всего означает, что смотрели не той командой.
Разобраться в слоях LVM удобнее всего именно lsblk: он показывает цепочку «раздел → группа томов → логический том» деревом, тогда как lvs и pvs дают плоские списки. Про сами тома — в статье про LVM.
lsblk в скриптах
Для машинной обработки есть JSON:
lsblk -J -o NAME,SIZE,TYPE,MOUNTPOINTS
# все несмонтированные разделы
lsblk -J -o NAME,TYPE,MOUNTPOINTS \
| jq -r '.blockdevices[].children[]? | select(.type=="part" and .mountpoints[0]==null) | .name'
Для простых случаев хватает пар флагов -n (без заголовка) и -o (нужные колонки):
lsblk -dno NAME,SIZE # список дисков с размерами
lsblk -no MOUNTPOINTS /dev/sdb1
Байты вместо человекочитаемых размеров — флаг -b, это важно при сравнении в скриптах:
lsblk -bdno SIZE /dev/sdb # 2000398934016
Пример проверки, смонтирован ли раздел, — в связке с условиями bash:
if [ -z "$(lsblk -no MOUNTPOINTS /dev/sdb1)" ]; then
echo "раздел не смонтирован"
fi
Частые вопросы
Чем lsblk отличается от fdisk -l?
lsblk показывает структуру блочных устройств деревом, включая LVM, LUKS и точки монтирования, и работает без root. fdisk -l показывает таблицы разделов и требует прав root, зато выводит тип таблицы (MBR/GPT), точные границы разделов и их идентификаторы.
Для «посмотреть, что есть и куда смонтировано» удобнее lsblk; для работы с самой разметкой — fdisk или parted.
Как узнать UUID раздела?
Командой lsblk -f — UUID выводится в отдельной колонке для всех устройств сразу. Для одного раздела: lsblk -no UUID /dev/sdb1.
Альтернатива — sudo blkid /dev/sdb1. UUID нужен для fstab: монтирование по нему не сломается, если диски поменяются местами.
Почему lsblk показывает много loop-устройств?
Это snap-пакеты: каждый смонтирован как отдельный образ через loop-устройство. На Ubuntu Desktop их бывает несколько десятков.
Скрыть их: lsblk -e 7. Устройства при этом никуда не деваются, просто не мешают читать вывод.
Диск подключён, но lsblk его не видит
Значит устройство не появилось на уровне ядра. Проверьте sudo dmesg | tail -20 — там будет видно, обнаружен ли носитель и не было ли ошибок.
Для горячего подключения помогает пересканирование шины: echo "- - -" | sudo tee /sys/class/scsi_host/host0/scan. Если и после этого пусто, проблема аппаратная — кабель, питание или сам контроллер.
Как посмотреть, SSD это или обычный диск?
Через колонку ROTA: lsblk -o NAME,SIZE,ROTA,TYPE. Значение 1 означает вращающийся диск (HDD), 0 — SSD или NVMe.
На виртуальных машинах значение может быть недостоверным: гипервизор часто отдаёт 1 независимо от реального носителя.
Что запомнить
lsblkпоказывает все блочные устройства деревом и не требует root — это первая команда при работе с дисками.lsblk -fдаёт файловые системы, метки и UUID; из неё берут UUID дляfstab.- Имена
sda/sdbне закреплены между загрузками — в конфигах используйте UUID или метку. -e 7убирает из вывода loop-устройства snap-пакетов,-pпечатает полные пути,-dоставляет только диски.- Несмонтированный диск не виден в
df— для полной картины смотрите именноlsblk.