linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Команды/cmd-lsblk-blkid

kb/commands ── Команды ── beginner

lsblk и blkid - block-устройства и UUID

lsblk показывает дерево block-устройств (диск → раздел → LVM/crypt → mountpoint). blkid печатает UUID/LABEL/TYPE ФС. Связка для написания строки в [[mount-and-fstab|/etc/fstab]] по UUID.

view as markdownaka: lsblk, blkid, lsblk-blkid, block-tree

Зачем

Когда подключил новый диск, нужен ответ:

  • Какой это /dev/sdX или /dev/nvmeXnY?
  • Как разбит, есть ли уже разделы?
  • Какие на нём ФС (если есть)?
  • Какие UUID/LABEL у разделов - чтобы вписать в [[mount-and-fstab|fstab]]?
  • Где сейчас смонтировано?

lsblk отвечает на 1, 2, 5. blkid - на 3, 4. Часто используются вместе.

lsblk - дерево

bash
$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    0 931.5G  0 disk
├─sda1        8:1    0   512M  0 part  /boot/efi
├─sda2        8:2    0     1G  0 part  /boot
└─sda3        8:3    0   930G  0 part
  └─cryptroot 252:0  0   930G  0 crypt
    ├─vg-root 252:1  0    50G  0 lvm   /
    ├─vg-swap 252:2  0     8G  0 lvm   [SWAP]
    └─vg-data 252:3  0   872G  0 lvm   /data
nvme0n1     259:0    0 476.9G  0 disk
└─nvme0n1p1 259:1    0 476.9G  0 part  /home

Колонки:

  • NAME - имя устройства
  • MAJ:MIN - major:minor номера (для mknod)
  • RM - removable (флешка, USB)
  • SIZE - размер
  • RO - read-only
  • TYPE - disk, part, lvm, crypt, raid1/5/..., loop, rom
  • MOUNTPOINTS - где смонтировано (несколько при bind-mount'ах)

Дерево показывает stack: диск → раздел → LUKS-crypt → LVM-volume → mount.

lsblk -f - с ФС и UUID

bash
$ lsblk -f
NAME        FSTYPE      LABEL      UUID                                 MOUNTPOINTS
sda
├─sda1      vfat        EFI        1234-ABCD                            /boot/efi
├─sda2      ext4        boot       a1b2c3...                            /boot
└─sda3      crypto_LUKS            d4e5f6...
  └─cryptroot LVM2_member          7890ab...
    ├─vg-root   ext4    root       3344cc...                            /
    ├─vg-swap   swap    swap       5566dd...                            [SWAP]
    └─vg-data   xfs     data       7788ee...                            /data

За один вызов всё что нужно для fstab. Полезные опции:

bash
lsblk -f                  # FSTYPE/LABEL/UUID
lsblk -p                  # полные пути (/dev/sda1, не sda1)
lsblk -P                  # KEY="value" (для скриптов)
lsblk -J                  # JSON
lsblk -O                  # "all columns" - всё что есть
lsblk -d                  # только диски, без разделов
lsblk -e7                 # исключить loop-устройства (major 7)
lsblk /dev/sda            # только дерево этого диска

lsblk -o - кастомный набор

bash
lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINTS,MODEL
lsblk -o NAME,ROTA,DISC-MAX,SCHED,FSTYPE

Полезные не-default колонки:

ПолеЧто
MODEL, SERIALвендор/модель/SN диска
ROTA1 = HDD, 0 = SSD
TRANsata/nvme/usb
WWNWorld-Wide Name (для multipath)
MIN-IO, OPT-IO, PHY-SEC, LOG-SECразмеры I/O и сектора
DISC-MAX, DISC-GRANподдержка trim/discard
SCHEDI/O-scheduler (mq-deadline, none, bfq, kyber)
RQ-SIZEглубина очереди I/O
bash
# Все SSD на хосте
lsblk -d -o NAME,ROTA,MODEL | awk '$2==0'

blkid - детали ФС

bash
$ blkid
/dev/sda1: UUID="1234-ABCD" TYPE="vfat" PARTUUID="aabbccdd-01"
/dev/sda2: LABEL="boot" UUID="a1b2c3..." TYPE="ext4" PARTUUID="aabbccdd-02"
/dev/sda3: UUID="d4e5f6..." TYPE="crypto_LUKS" PARTUUID="aabbccdd-03"
/dev/mapper/vg-root: LABEL="root" UUID="3344cc..." TYPE="ext4"

Поля:

  • UUID - filesystem UUID (от mkfs); меняется при mkfs повторном
  • PARTUUID - GPT partition UUID (от parted/sgdisk); стабилен на разделе
  • LABEL - пользовательская метка из mkfs -L или tune2fs -L
  • PARTLABEL - GPT partition label (gdisk-set, не filesystem-label!)
  • TYPE - тип ФС: ext4, xfs, vfat, swap, crypto_LUKS, LVM2_member, linux_raid_member

Запрос конкретного устройства:

bash
blkid /dev/sda2
blkid -U <uuid>           # найти устройство по UUID
blkid -L boot             # найти по LABEL
blkid -o value -s UUID /dev/sda2     # только UUID без шума
blkid -o export /dev/sda2            # формат UUID=...\nTYPE=... для eval

UUID vs PARTUUID vs LABEL - что выбрать в fstab

ИдентификаторКогда
UUIDбольшинство случаев - стабилен, уникален
PARTUUIDдля swap-раздела без ФС или сырых разделов
LABELчеловекочитаемо, но может конфликтовать между дисками
/dev/sdaXне используй - меняется при добавлении дисков

Сгенерировать fstab-строку:

bash
echo "UUID=$(blkid -o value -s UUID /dev/sda2)  /boot  ext4  defaults  0 2"

Когда /dev/disk/by-*/

Альтернатива blkid - смотреть symlinks udev'а:

bash
ls -l /dev/disk/by-uuid/
ls -l /dev/disk/by-label/
ls -l /dev/disk/by-partuuid/
ls -l /dev/disk/by-id/                   # серийники, multipath
ls -l /dev/disk/by-path/                 # PCI/USB-путь

В fstab можно писать прямо /dev/disk/by-uuid/abcd-1234. Эквивалент UUID=abcd-1234, но более явный.

После создания нового раздела

bash
# 1. Создать раздел (parted/sgdisk/cfdisk)
sudo parted /dev/sdb mklabel gpt mkpart data ext4 1MiB 100%
# 2. Дать ядру перечитать таблицу разделов
sudo partprobe /dev/sdb        # или blockdev --rereadpt /dev/sdb
# 3. Создать ФС
sudo mkfs.ext4 -L data /dev/sdb1
# 4. Узнать UUID
blkid /dev/sdb1
# 5. Добавить в fstab
echo "UUID=$(blkid -o value -s UUID /dev/sdb1)  /mnt/data  ext4  defaults  0 2" \
  | sudo tee -a /etc/fstab
# 6. Создать mountpoint и проверить
sudo mkdir /mnt/data
sudo mount -a
lsblk -f /dev/sdb

Когда что-то пошло не так

  • lsblk не показывает новый диск - не было partprobe/перезагрузки после parted; либо в hotswap-bay контроллер не сообщил ядру. dmesg | tail подскажет.
  • Device or resource busy - диск используется (mounted, в LVM, в RAID, в crypt). lsof /dev/sdX или fuser.
  • Два устройства с одинаковым UUID - скопировал диск через dd, UUID не уникален. tune2fs -U random /dev/sdX1 (для ext) или пересоздать ФС.
  • /dev/sdb вдруг стал /dev/sda - именно поэтому в fstab UUID или PARTUUID, не sdX. Перезагрузка изменила порядок probing.
  • blkid пуст после mkfs - кэш udev. blkid -p /dev/sdX1 парсит сразу, без кэша. Или udevadm trigger.

Альтернативы и связанные

  • fdisk -l - старый-добрый, показывает таблицу разделов одним списком
  • parted -l - то же что fdisk, но GPT-aware
  • udevadm info /dev/sdX - всё что udev знает об устройстве
  • smartctl -a /dev/sdX - SMART-данные диска (отдельный пакет)

§ команды

bash
lsblk -f

Дерево + ФС + UUID + mountpoint - чаще всего этого достаточно

bash
lsblk -d -o NAME,SIZE,MODEL,SERIAL,TRAN

Только диски с моделью и SN - инвентаризация физической части

bash
blkid /dev/sda1

UUID и тип ФС конкретного раздела

bash
blkid -o value -s UUID /dev/sda1

Только UUID - удобно для подстановки в скрипт fstab

bash
lsblk -p -o NAME,FSTYPE,UUID,MOUNTPOINTS

Полные пути устройств - для копирования в скрипты mount/dd

bash
ls -l /dev/disk/by-uuid/

udev-симлинки UUID → device - альтернатива blkid

bash
lsblk -J | jq '.blockdevices[] | select(.children)'

JSON-вывод для скриптинга через jq - только устройства с разделами

§ см. также

  • block-devicesBlock devices - диски в LinuxBlock device - устройство которое читается/пишется блоками фиксированного размера (обычно 512B или 4K). Диски, SSD, NVMe - всё block devices в `/dev/`.
  • mount-and-fstabmount и /etc/fstab - подключение ФС`mount` подключает блочное устройство или ФС к точке монтирования в дереве. `/etc/fstab` - список того что монтировать при загрузке.
  • lvmLVM - Logical Volume ManagerLVM - слой между [[block-devices]] и ФС: объединяет диски в pool'ы и нарезает логические тома любого размера, которые можно расширять, снапшотить, мигрировать вживую.
  • raidRAID - software-raid через mdadmRAID объединяет несколько [[block-devices]] в один логический с избыточностью или скоростью. На Linux - `mdadm`. Hardware-RAID - отдельная история.
  • fhsFilesystem Hierarchy Standard (FHS)FHS - стандарт что лежит в каких корневых каталогах Linux: /etc - конфиги, /var - изменяемые данные, /usr - статика дистрибутива, /home - пользователи, /tmp - временное.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки