Введение
В этой лабораторной работе мы познакомимся с утилитой lsblk в Linux, которая отображает информацию обо всех доступных блочных устройствах в системе. К блочным устройствам относятся жесткие диски, SSD, USB-накопители и другие носители информации. Команда lsblk представляет эти данные в наглядном древовидном формате, что позволяет легко понять взаимосвязь между различными накопителями и их разделами.
Понимание устройства систем хранения данных жизненно важно для каждого, кто работает с Linux. Независимо от того, нужно ли вам найти свободное пространство, проверить размеры разделов или подтвердить точки монтирования, lsblk предлагает быстрый и эффективный способ получить эти данные.
К концу этой лабораторной работы вы научитесь использовать команду lsblk с различными ключами для получения детальной информации о накопителях в вашей системе Linux.
Базовое использование команды lsblk
На этом этапе вы воспользуетесь командой lsblk, чтобы вывести список доступных блочных устройств в вашей системе Linux. Блочные устройства — это накопители данных, такие как жесткие диски, SSD и USB-флешки.
Откройте терминал, если он еще не открыт. Затем выполните базовую команду lsblk:
lsblk
Вы должны увидеть примерно следующий вывод:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.5M 1 loop /snap/core18/2128
loop1 7:1 0 55.4M 1 loop /snap/core18/2284
loop2 7:2 0 43.6M 1 loop /snap/snapd/15534
loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535
loop4 7:4 0 31.1M 1 loop /snap/snapd/16292
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 49G 0 part /
└─sda2 8:2 0 976M 0 part [SWAP]
Этот вывод отображает все блочные устройства системы и содержит следующие столбцы:
NAME: Имя устройстваMAJ:MIN: Старший и младший номера устройстваRM: Признак съемного устройства (1 означает съемное, 0 — несъемное)SIZE: Размер устройстваRO: Признак только для чтения (1 — только чтение, 0 — чтение и запись)TYPE: Тип устройства (диск, раздел, loop и т. д.)MOUNTPOINT: Место монтирования устройства (если применимо)
В примере выше вы можете видеть:
- Несколько устройств
loop, используемых пакетами snap. - Основное устройство хранения
sda(диск размером 50 ГБ). - Два раздела на диске
sda:sda1(смонтирован в корень/) иsda2(используется как область подкачки swap).
Древовидная структура вывода позволяет легко понять, какие разделы какому диску принадлежат. Например, видно, что sda1 и sda2 являются разделами диска sda.
Теперь, когда вы поняли базовый вывод команды lsblk, давайте изучим полезные параметры на следующих шагах.
Отображение дополнительной информации с помощью lsblk
На этом этапе мы научимся использовать команду lsblk с различными ключами для вывода более подробных сведений о блочных устройствах.
Использование параметра -f для просмотра информации о файловых системах
Ключ -f выводит сведения о файловых системах, включая их тип, метку (label), UUID и точку монтирования. Это особенно полезно, когда вам нужно идентифицировать устройства по их UUID или проверить используемые типы файловых систем.
Выполните следующую команду в терминале:
lsblk -f
Вы должны увидеть примерно следующий вывод:
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 squashfs /snap/core18/2128
loop1 squashfs /snap/core18/2284
loop2 squashfs /snap/snapd/15534
loop3 squashfs /snap/gtk-common-themes/1535
loop4 squashfs /snap/snapd/16292
sda
├─sda1 ext4 5fbb8eed-12a3-4b5c-9d67-9594ff4e2d1c /
└─sda2 swap b409ae25-7589-44eb-a909-b56f1d42c5ab [SWAP]
Теперь вывод включает дополнительные столбцы:
FSTYPE: Тип файловой системы (ext4, swap, squashfs и т. д.)LABEL: Метка файловой системы (если она была задана)UUID: Уникальный универсальный идентификатор (Universal Unique Identifier) файловой системы
Использование параметра -m для просмотра владельца и прав доступа к устройствам
Параметр -m отображает информацию о правах доступа и владельце блочных устройств. Это пригодится при устранении неполадок, связанных с правами.
Выполните следующую команду:
lsblk -m
Результат будет выглядеть примерно так:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT OWNER GROUP MODE
loop0 7:0 0 55.5M 1 loop /snap/core18/2128 root disk brw-rw----
loop1 7:1 0 55.4M 1 loop /snap/core18/2284 root disk brw-rw----
loop2 7:2 0 43.6M 1 loop /snap/snapd/15534 root disk brw-rw----
loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535 root disk brw-rw----
loop4 7:4 0 31.1M 1 loop /snap/snapd/16292 root disk brw-rw----
sda 8:0 0 50G 0 disk root disk brw-rw----
├─sda1 8:1 0 49G 0 part / root disk brw-rw----
└─sda2 8:2 0 976M 0 part [SWAP] root disk brw-rw----
Новые столбцы показывают:
OWNER: Пользователь-владелец устройства (обычно root)GROUP: Группа-владелец устройства (обычно disk)MODE: Права доступа к устройству
Использование параметра -o для выбора определенных столбцов вывода
Ключ -o позволяет явно указать, какие столбцы выводить на экран. Это удобно, если вам нужны только определенные данные, а вывод хочется сделать более чистым и сфокусированным.
Давайте выведем только имя, размер и точку монтирования:
lsblk -o NAME,SIZE,MOUNTPOINT
Вывод станет гораздо лаконичнее:
NAME SIZE MOUNTPOINT
loop0 55.5M /snap/core18/2128
loop1 55.4M /snap/core18/2284
loop2 43.6M /snap/snapd/15534
loop3 61.9M /snap/gtk-common-themes/1535
loop4 31.1M /snap/snapd/16292
sda 50G
├─sda1 49G /
└─sda2 976M [SWAP]
Такой настроенный вывод облегчает восприятие только нужных вам сведений. Вы можете комбинировать различные ключи, чтобы получать ровно те данные и в том формате, который лучше всего подходит под вашу задачу.
Фильтрация блочных устройств с помощью lsblk
На этом этапе мы научимся ограничивать вывод команды lsblk и отображать информацию в различных форматах.
Отображение только устройств верхнего уровня
Параметр --nodeps (сокращенно -e заменен на -d) исключает зависимые устройства, такие как разделы. Это полезно, если вам нужен лаконичный обзор только основных дисков.
Выполните следующую команду:
lsblk --nodeps
В выводе будут показаны устройства верхнего уровня без деревьев их разделов. Имена устройств и их размеры могут различаться в зависимости от системы:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 40G 0 disk
vdb 253:16 0 100G 0 disk /etc/hosts
Исключение устройств по старшему номеру (Major Number)
Параметр --exclude (сокращенно -e) принимает список старших номеров устройств через запятую, которые нужно пропустить. Например, loop-устройства используют старший номер 7, поэтому следующая команда исключает их из вывода:
lsblk --exclude 7
Этот фильтр применяется к устройствам верхнего уровня, однако их дочерние разделы все равно могут отображаться в дереве.
Отображение путей к устройствам
Параметр --paths выводит полные пути к устройствам вместо их коротких имен. Это удобно, если вам нужно ссылаться на устройства в скриптах или других командах.
Выполните следующую команду:
lsblk --paths
В выводе появятся полные пути:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/loop0 7:0 0 55.5M 1 loop /snap/core18/2128
/dev/loop1 7:1 0 55.4M 1 loop /snap/core18/2284
/dev/loop2 7:2 0 43.6M 1 loop /snap/snapd/15534
/dev/loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535
/dev/loop4 7:4 0 31.1M 1 loop /snap/snapd/16292
/dev/sda 8:0 0 50G 0 disk
├─/dev/sda1 8:1 0 49G 0 part /
└─/dev/sda2 8:2 0 976M 0 part [SWAP]
Вывод данных в формате JSON
Параметр --json форматирует вывод в виде JSON, что очень удобно для программной обработки или интеграции с другими инструментами.
Выполните следующую команду:
lsblk --json
Результат будет представлен в формате JSON:
{
"blockdevices": [
{
"name": "loop0",
"maj:min": "7:0",
"rm": false,
"size": "55.5M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/core18/2128"
},
{
"name": "loop1",
"maj:min": "7:1",
"rm": false,
"size": "55.4M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/core18/2284"
},
{
"name": "loop2",
"maj:min": "7:2",
"rm": false,
"size": "43.6M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/snapd/15534"
},
{
"name": "loop3",
"maj:min": "7:3",
"rm": false,
"size": "61.9M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/gtk-common-themes/1535"
},
{
"name": "loop4",
"maj:min": "7:4",
"rm": false,
"size": "31.1M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/snapd/16292"
},
{
"name": "sda",
"maj:min": "8:0",
"rm": false,
"size": "50G",
"ro": false,
"type": "disk",
"children": [
{
"name": "sda1",
"maj:min": "8:1",
"rm": false,
"size": "49G",
"ro": false,
"type": "part",
"mountpoint": "/"
},
{
"name": "sda2",
"maj:min": "8:2",
"rm": false,
"size": "976M",
"ro": false,
"type": "part",
"mountpoint": "[SWAP]"
}
]
}
]
}
Комбинирование параметров для точного контроля
Вы можете объединять несколько ключей, чтобы настроить вывод под конкретные требования. Например, исключим зависимые и loop-устройства, выведем полные пути и упакуем результат в JSON:
lsblk --nodeps --exclude 7 --paths --json
На выходе мы получим JSON-структуру оставшихся устройств верхнего уровня с их полными путями:
{
"blockdevices": [
{
"name": "/dev/vda",
"maj:min": "253:0",
"rm": false,
"size": "40G",
"ro": false,
"type": "disk"
}
]
}
Такие возможности фильтрации делают команду lsblk чрезвычайно гибкой и позволяют получать в точности ту информацию о блочных устройствах, которая вам требуется.
Продвинутое использование lsblk в практических сценариях
На этом этапе мы рассмотрим реальные сценарии, в которых команда lsblk оказывается незаменимой при администрировании систем и устранении неполадок.
Проверка использования диска и свободного пространства
Чтобы проверить заполненность дисков и объем свободного места, можно объединить lsblk с ключом -b (для отображения размеров в байтах) и выбрать определенные столбцы:
lsblk -b -o NAME,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT
В результате выведется статистика использования дискового пространства:
NAME SIZE FSAVAIL FSUSE% MOUNTPOINT
loop0 58195968 0 - /snap/core18/2128
loop1 58130432 0 - /snap/core18/2284
loop2 45719552 0 - /snap/snapd/15534
loop3 64897024 0 - /snap/gtk-common-themes/1535
loop4 32604160 0 - /snap/snapd/16292
sda 53687091200 - -
├─sda1 52613349376 39128932352 26% /
└─sda2 1023410176 0 - [SWAP]
Значения в столбцах:
SIZE: Общий размер в байтахFSAVAIL: Свободное место на файловой системеFSUSE%: Процент занятого пространства файловой системыMOUNTPOINT: Точка монтирования устройства
Идентификация USB-накопителей
Когда вы подключаете USB-флешку, вы можете быстро найти ее с помощью lsblk, отфильтровав устройства по признаку съемного носителя:
lsblk -o NAME,SIZE,TYPE,RM,MOUNTPOINT
В выводе ищите устройства, у которых значение столбца RM (removable) равно 1:
NAME SIZE TYPE RM MOUNTPOINT
loop0 55.5M loop 0 /snap/core18/2128
loop1 55.4M loop 0 /snap/core18/2284
loop2 43.6M loop 0 /snap/snapd/15534
loop3 61.9M loop 0 /snap/gtk-common-themes/1535
loop4 31.1M loop 0 /snap/snapd/16292
sda 50G disk 0
├─sda1 49G part 0 /
└─sda2 976M part 0 [SWAP]
Если бы у вас был подключен USB-накопитель, он бы отобразился как дополнительный диск (например, sdb) со значением RM равным 1.
Поиск серийных номеров устройств
Для инвентаризации оборудования или устранения неполадок вам могут понадобиться серийные номера дисков. Команда lsblk умеет показывать и эту информацию:
lsblk -o NAME,SIZE,TYPE,SERIAL
Вывод будет содержать серийные номера для тех устройств, которые их предоставляют:
NAME SIZE TYPE SERIAL
loop0 55.5M loop
loop1 55.4M loop
loop2 43.6M loop
loop3 61.9M loop
loop4 31.1M loop
sda 50G disk ABCD1234
├─sda1 49G part
└─sda2 976M part
Обратите внимание, что не все устройства передают серийный номер, а виртуальные накопители (например, loop-устройства) их обычно не имеют.
Анализ атрибутов производительности дисков
Для просмотра параметров геометрии и производительности диска можно использовать ключ --topology или -t:
lsblk --topology
Вывод включает топологические данные, такие как выравнивание (alignment) и оптимальный размер операций ввода-вывода (I/O):
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
loop0 0 512 0 512 512 1 mq-deadline 256 128 0B
loop1 0 512 0 512 512 1 mq-deadline 256 128 0B
loop2 0 512 0 512 512 1 mq-deadline 256 128 0B
loop3 0 512 0 512 512 1 mq-deadline 256 128 0B
loop4 0 512 0 512 512 1 mq-deadline 256 128 0B
sda 0 512 0 512 512 1 mq-deadline 256 128 0B
├─sda1 0 512 0 512 512 1 mq-deadline 256 128 0B
└─sda2 0 512 0 512 512 1 mq-deadline 256 128 0B
Эта информация полезна при настройке производительности и решении проблем, связанных с дисковым вводом-выводом.
Эти практические примеры демонстрируют, насколько универсальна команда lsblk в повседневном администрировании систем. Освоив данные техники, вы сможете быстро собирать важные сведения о дисковой подсистеме вашей Linux-системы.
Резюме
В этой лабораторной работе мы изучили команду lsblk в Linux — мощный инструмент для перечисления и отображения информации о блочных устройствах системы. Мы рассмотрели несколько ключевых аспектов работы с утилитой:
- Базовое использование
lsblkдля вывода древовидного списка всех блочных устройств. - Способы отображения дополнительных данных, включая детали файловых систем, владельцев/права доступа и выбор произвольных столбцов.
- Методы фильтрации для фокусировки на определенных типах устройств или форматах вывода.
- Сценарии продвинутого использования для задач системного администрирования.
Команда lsblk является незаменимым инструментом для администраторов и пользователей Linux, которым необходимо управлять хранилищами данных. Ее гибкие параметры позволяют мгновенно получать точные сведения о дисках, разделах и прочих блочных устройствах.
Освоив команду lsblk, вы сможете эффективнее решать следующие задачи:
- Идентифицировать накопители и управлять ими.
- Контролировать использование дискового пространства и объем свободной памяти.
- Диагностировать проблемы, связанные с хранением данных.
- Документировать конфигурацию дисковой подсистемы системы.
Эти навыки служат прочным фундаментом для решения более сложных задач администрирования Linux, связанных с управлением дисковыми ресурсами.



