С чего начать Первые шаги трек · 15 ступеней
Linux Labs

blkid — UUID, метка и тип файловой системы

4 мин Ubuntu 24.04 · util-linux 2.39

Команда blkid печатает UUID, метку и тип файловой системы на устройстве — то, что пишут в /etc/fstab.

Шпаргалка

7 команд Версия для печати
  • sudo blkid все устройства с ФС
  • sudo blkid /dev/vdb1 одно устройство
  • sudo blkid -s UUID -o value /dev/vdb1 только UUID — для скриптов
  • sudo blkid -L data какое устройство с меткой data
  • sudo blkid -U 5d1c0f4e-… какое устройство с этим UUID
  • sudo blkid -p /dev/vdb что на самом диске: таблица
  • lsblk -f то же деревом

Обзор

blkid читает начало устройства и сообщает, что на нём записано. Для раздела с файловой системой это одна строка пар: /dev/vdb1: LABEL="data" UUID="…" TYPE="ext4" …. С -o export те же пары идут по одной на строку:

text
student@ubuntu:~$ sudo blkid -o export /dev/loop0p1
DEVNAME=/dev/loop0p1
LABEL=data
UUID=4db8b2fe-ff93-4036-b20c-8175523f9825
BLOCK_SIZE=4096
TYPE=ext4
PARTLABEL=data
PARTUUID=fac85c19-a932-4417-9a8c-ac6d9c329d29
Поле Чьё Откуда
UUID файловой системы выдаёт mkfs, меняется при повторном mkfs
LABEL файловой системы mkfs.ext4 -L, e2label
TYPE файловой системы ext4, xfs, swap, vfat
PARTUUID раздела в таблице выдаёт fdisk или parted при создании раздела
PARTLABEL раздела в GPT имя из mkpart data …

В /etc/fstab раздел пишут по UUID или метке: UUID=… или LABEL=data. Имя /dev/vdb1 зависит от порядка подключения дисков и после перезагрузки может достаться другому. Подробнее о строке fstab — в mount.

Запускай blkid через sudo. Без прав root он не читает устройства и печатает только то, что запомнил раньше, — иногда ничего.

Ключи

5

Полный список — man blkid.

Ключ Что делает Пример
-s --match-tag TAG Печатать только это поле — UUID, LABEL, TYPE; можно несколько раз. sudo blkid -s UUID /dev/vdb1
-o --output value|export|list Формат вывода; value — одни значения, export — ИМЯ=значение построчно. sudo blkid -s UUID -o value /dev/vdb1
-L --label LABEL Напечатать устройство с этой меткой. sudo blkid -L data
-U --uuid UUID Напечатать устройство с этим UUID. sudo blkid -U 3f6c1a2e-9b7d-4c55-8e21-6d0b9a4f7c13
-p --probe Прочитать устройство заново, мимо кэша; на целом диске покажет таблицу PTTYPE. sudo blkid -p /dev/vdb

Ничего не найдено. Попробуй запрос короче.

Рецепты

4

Строка для fstab

bash
UUID=$(sudo blkid -s UUID -o value /dev/vdb1)
echo "UUID=$UUID /srv/data ext4 defaults,nofail 0 2" |
  sudo tee -a /etc/fstab
sudo findmnt --verify

Сверить строку fstab с устройством

bash
grep /srv/data /etc/fstab
sudo blkid /dev/vdb1           # UUID совпадает с тем, что в fstab?

Не совпадает — правят fstab. mkfs здесь не нужен: он сотрёт данные.

Найти устройство по метке или UUID

bash
sudo blkid -L data             # /dev/vdb1
findfs LABEL=data              # то же отдельной командой

Что на диске без файловой системы

bash
sudo blkid -p /dev/vdb    # PTUUID="…" PTTYPE="gpt"

Неполадки

5

blkid ничего не выводит

На устройстве нет ни файловой системы, ни таблицы разделов — новый диск. Код выхода в этом случае — 2. Или blkid запущен без sudo. Что на диске на самом деле, покажет sudo blkid -p.

В выводе только PARTLABEL и PARTUUID

Раздел есть в таблице, а файловой системы на нём нет: UUID, LABEL и TYPE появятся после mkfs.

UUID в fstab не находится

После повторного mkfs у ФС новый UUID. Возьми его из sudo blkid и поправь строку fstab. findmnt --verify проверит таблицу до перезагрузки.

У двух разделов одинаковый UUID

Раздел скопировали целиком (dd, клон диска). Смени UUID копии: sudo tune2fs -U random /dev/vdc1 для ext4 — см. Файловые системы.

В fstab записан PARTUUID вместо UUID

Обе строки рабочие, но это разные значения: PARTUUID= ищет раздел в таблице, UUID= — файловую систему. Ключ в fstab должен совпадать с полем blkid.

Термины

2
UUID файловой системы filesystem UUID
Идентификатор файловой системы, позволяющий ссылаться на неё независимо от текущего имени устройства. Ещё встречается в: mkfs
метка файловой системы filesystem label
Короткое имя файловой системы, заданное при создании (mkfs.ext4 -L) или позже (e2label). По нему находят раздел: LABEL=data в fstab, blkid -L data. Ещё встречается в: mkfs

См. также

  • mount — записать раздел в fstab и смонтировать.
  • mkfs — создать ФС; от неё UUID и метка.
  • lsblk — lsblk -f показывает те же поля деревом.
  • fdisk-parted — разделы, их PARTUUID и PARTLABEL.
  • filesystems — сменить метку и UUID через tune2fs.
  • loop-device — учебный диск из файла.
Загрузка…