Home » Проверка устройств: blkid и lsblk
Проверка устройств: blkid и lsblk

Проверка устройств: 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 или выделенный сервер), не забудь про эти команды. Они сэкономят тебе не только время, но и нервы.

Официальные ссылки и документация

Пусть твои диски всегда будут на месте, а монтирование — автоматическим и надёжным!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked