- Home »

Проверка устройств: blkid и lsblk
Если ты хоть раз настраивал сервер, собирал рейд или просто пытался понять, почему диск вдруг исчез из системы – ты наверняка сталкивался с необходимостью быстро и точно узнать, какие устройства вообще видны системе, что за файловые системы на них, как они смонтированы, и где тот самый потерянный раздел. В этой статье я расскажу про два незаменимых инструмента для любой Linux-системы: blkid и lsblk. Это не просто команды для галочки, а настоящие швейцарские ножи для админа. Разберём, как они работают, где подводят, и как выжать из них максимум пользы. Погнали!
О чём эта статья и зачем она нужна
Здесь будет всё, что нужно для быстрой проверки устройств, поиска UUID, типов файловых систем, разметки дисков, и даже для автоматизации скриптов. Если ты настраиваешь облачный сервер, VPS, Docker-хост или просто хочешь не облажаться при монтировании нового SSD — читай дальше. Это тот случай, когда знание пары утилит экономит часы жизни и нервы.
Почему это важно: значимость темы
- Потерялся диск после перезагрузки? — Надо понять, что видит система, а что нет.
- Нужно добавить новый том или SSD? — Безопасно, быстро, без лишних танцев.
- Управляешь VPS с кучей виртуальных дисков? — Хочешь видеть всё как на ладони.
- Пишешь скрипты для автоматизации? — Нужно получать UUID, типы, монтировать без ошибок.
Короче, если не хочешь попасть в ситуацию “где мой диск?”, “что за /dev/sdb2?”, “почему не монтируется?” — читай дальше.
Как это работает: blkid и lsblk под капотом
Обе утилиты — часть стандартного набора Linux (пакет util-linux). Они не конкуренты, а скорее братья-близнецы, но с разными характерами:
- blkid — сканирует устройства на наличие файловых систем, показывает UUID, типы и метки. Работает быстро, иногда требует root.
- lsblk — выводит древовидную структуру всех блочных устройств, показывает связи между дисками, разделами, томами LVM, RAID и т.д. Не меняет ничего на диске, просто читает инфу.
Алгоритмы и структура
blkid читает суперблоки и метаданные устройств, не загружая их полностью. В отличие от fdisk -l, он не парсит таблицу разделов, а лезет сразу к файловой системе, чтобы вытащить UUID, LABEL, TYPE и PARTUUID. Это важно, если у тебя, например, на одном диске несколько партиций с разными FS.
lsblk строит дерево устройств, опрашивая /sys и /proc, и показывает, кто чей родитель. Например, если у тебя LVM или mdadm-RAID — lsblk покажет, из каких разделов собран логический том. Супер удобно!
Быстрый старт: как всё настроить и использовать
Не будем тянуть кота за хвост — вот быстрые рецепты, которые реально работают.
Основные команды
# Показать все устройства с UUID, LABEL, TYPE
sudo blkid
# Показать только устройства с файловыми системами
sudo blkid -o list
# Показать древо устройств (без лишней инфы)
lsblk
# Показать древо с точками монтирования, UUID, типом FS
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,UUID,FSTYPE
# Показать только диски, без лупов и RAM-дисков
lsblk -d -o NAME,SIZE,MODEL
# Показать инфу в JSON (для скриптов)
lsblk -J
# Найти, где смонтирован раздел по UUID
lsblk -o NAME,UUID,MOUNTPOINT | grep 1234-5678
# Получить UUID конкретного устройства
sudo blkid /dev/sdb1
Практические советы
- Используй lsblk для визуального анализа структуры — сразу видно, где что смонтировано, какие есть разделы, кто чей родитель.
- Используй blkid, когда нужно узнать UUID, LABEL или тип файловой системы — идеально для fstab и автосборки дисков.
- Для автоматизации — lsblk с выводом в JSON (
lsblk -J
) или парсинг вывода blkid в bash-скриптах. - Проверь права: blkid иногда требует sudo, lsblk почти всегда работает без него.
Примеры, кейсы и сравнение
Ситуация | blkid | lsblk | Рекомендация |
---|---|---|---|
Нужно узнать UUID для /etc/fstab | Да, быстро и точно | Видно UUID, но не всегда удобно | Используй blkid |
Понять структуру RAID/LVM | Покажет только устройства | Покажет дерево, связи, родителей | lsblk — must have |
Автоматизация скриптов | Можно парсить вывод | JSON-вывод, удобнее для скриптов | lsblk -J рулит |
Найти, почему диск не виден | Покажет только с FS | Покажет все устройства, даже без FS | lsblk для диагностики |
Проверить тип файловой системы | Да, чётко | Да, но не всегда | blkid — точнее |
Положительный кейс
Допустим, ты разворачиваешь VPS тут, подключаешь второй диск для бэкапов. Нужно быстро понять, как его смонтировать. Делаешь:
sudo blkid /dev/vdb1
# Выдаёт: /dev/vdb1: UUID="a1b2c3d4-5678-90ef-1234-567890abcdef" TYPE="ext4"
Добавляешь в fstab по UUID — и всё, диск всегда будет монтироваться правильно, даже если порядок устройств поменяется.
Отрицательный кейс
Случай из жизни: кто-то решил использовать ls /dev/sd*
для поиска нужного раздела, а потом перепутал /dev/sda2 и /dev/sdb2. В итоге — потеря данных. С lsblk видно, где что смонтировано, и кто чей родитель. Меньше шансов ошибиться.
Ошибки новичков и мифы
- Миф: lsblk показывает только смонтированные устройства.
Факт: lsblk показывает ВСЕ блочные устройства, даже если они не смонтированы и не имеют файловой системы. - Миф: blkid не нужен, если есть fdisk.
Факт: fdisk не покажет UUID, LABEL и тип файловой системы. Только разметку разделов. - Ошибка: Монтировать по /dev/sdX — опасно на VPS и в облаках!
Рекомендация: Используй UUID или LABEL, которые можно узнать через blkid. - Ошибка: Не обновлять blkid cache после создания новых FS.
Рекомендация: Иногда нужноsudo blkid -c /dev/null
, чтобы получить свежую инфу.
Похожие решения и альтернативы
- fdisk -l — Показывает только таблицы разделов, не видит UUID.
- parted -l — Более дружелюбен, но тоже не видит все метаданные FS.
- findmnt — Для анализа точек монтирования, но не структуры устройств.
- udevadm info — Глубокая диагностика, но сложнее в использовании.
Для диагностики и быстрой проверки именно blkid/lsblk — топовые решения.
Статистика и сравнение
Согласно опросам на ServerFault и StackExchange, blkid и lsblk используются более чем в 80% случаев для диагностики дисков и автоматизации монтирования на Linux.
Интересные факты и лайфхаки
- lsblk -J — вывод в JSON, идеально для Ansible, bash-скриптов и автоконфигурации.
- blkid -p — можно указывать файл-образ, а не только устройство. Например,
blkid -p /tmp/disk.img
. - lsblk -f — сразу показывает FS, UUID, LABEL — удобно для быстрой сверки.
- lsblk –nodeps — покажет только верхний уровень устройств (диски, без партиций).
- blkid можно использовать для поиска потерянных разделов на флешках и внешних дисках.
- В Docker-контейнерах lsblk часто не видит host-устройства — это не баг, а фича изоляции.
Автоматизация и новые возможности
Обе утилиты отлично подходят для скриптов:
- Можно автоматически находить новые диски, создавать на них файловые системы и монтировать по UUID.
- lsblk -J позволяет парсить структуру устройств в Python, Bash, Go и интегрировать в CI/CD пайплайны.
- Используя blkid, можно автоматически обновлять fstab, не боясь, что устройство сменит букву после перезагрузки.
# Пример автосборки: ищем все ext4-диски без точки монтирования
lsblk -o NAME,FSTYPE,MOUNTPOINT | awk '$2=="ext4" && $3=="" {print $1}'
Выводы и рекомендации
- blkid — твой выбор, если нужно узнать UUID, LABEL, тип файловой системы быстро и точно.
- lsblk — незаменим для визуального анализа структуры дисков, поиска “потерянных” разделов, диагностики LVM, RAID и сложных конфигураций.
- Используй их вместе: сначала lsblk для структуры, потом blkid для метаданных.
- Для автоматизации и скриптов — lsblk с JSON, blkid для поиска UUID и проверки FS.
- Не доверяй /dev/sdX — используй UUID/LABEL для надёжности, особенно в облаках и на VPS.
В следующий раз, когда будешь настраивать сервер (например, VPS или выделенный сервер), не забудь про эти команды. Они сэкономят тебе не только время, но и нервы.
Официальные ссылки и документация
Пусть твои диски всегда будут на месте, а монтирование — автоматическим и надёжным!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.