Изучаем тонкости использования программы lsblk в Linux
prolinux
Довольно часто при работе с компьютером в повседневной практике нам приходится обращаться к различным накопителям информации. Таких устройств сегодня известно несколько типов, они могут быть стационарными или сменными, большими и маленькими во всех смыслах, различаться по способу накопления информации и так далее. В Linux эти накопители определяются как блочные устройства. Получить информацию о любом блочном устройстве, будь то SSD, HDD, Flash или SD карта, можно разными способами. В этом обзоре я покажу некоторые тонкости использования для этих целей программы lsblk.
О программе lsblk
Программа lsblk — это утилита командной строки. Во всех основанных на Linux современных операционных системах она установлена по умолчанию в составе пакета util-linux и может быть использована от имени любого пользователя системы, права root не обязательны.
Для lsblk существует man страница, из которой можно почерпнуть информацию о всех определённых разработчиками программы ключах. Кроме этого, в lsblk, как и в любую другую утилиту командной строки, встроена возможность получения быстрой справки с помощью ключа -h
или --help
.
Вызов lsblk возможен и без ключей, в этом случае программа покажет стандартную информацию о всех подключенных к вычислительной машине блочных устройствах. Выхлоп в этом случае будет приблизительно следующего содержания, в зависимости от количества блочных устройств в системе.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 238,5G 0 disk
├─sda1 8:1 0 50G 0 part /
└─sda2 8:2 0 188,5G 0 part /home
sdb 8:16 1 28,9G 0 disk
├─sdb1 8:17 1 14,5G 0 part
└─sdb2 8:18 1 14,5G 0 part
sr0 11:0 1 1024M 0 rom
В этом выхлопе информация о блочных устройствах машины представлена в виде таблицы, каждый столбец которой имеет собственный заголовок. Весь перечень возможных в lsblk имён параметров таблицы можно увидеть с помощью ключа -H
.
Всего программа определяет порядка 71 доступных для просмотра параметров блочных устройств, некоторые из них я продемонстрирую далее в примерах.
Управление параметрами вывода lsblk
Состав таблицы с параметрами блочных устройств выхлопа lsblk можно изменять в зависимости о конкретных целей исследования. Иногда нужно узнать UUID накопителя или раздела на нём, иногда тип файловой системы, задачи бывают разными.
Управлять составом таблицы в выхлопе lsblk можно при помощи ключа -o
с перечнем интересующих пользователя заголовков. Давайте рассмотрим некоторые примеры.
Мне нужно получить перечень всех доступных блочных устройств, их разделов, точек монтирования, если существуют, и типов файловых систем. Команда будет иметь следующий вид:
$ lsblk -o NAME,TYPE,FSTYPE,MOUNTPOINT
В терминале эта команда отзовётся следующим выводом.
NAME TYPE FSTYPE MOUNTPOINT
sda disk
├─sda1 part ext4 /
└─sda2 part ext4 /home
sdb disk
├─sdb1 part exfat /media/jazz/fatfs
└─sdb2 part ext4
sr0 rom
Иногда бывает необходимо заменить имя устройства на его адрес в каталоге /dev
.
$ lsblk -o PATH,TYPE,FSTYPE,MOUNTPOINT
Эта команда отдаст в терминал следующий вывод.
PATH TYPE FSTYPE MOUNTPOINT
/dev/sda disk
/dev/sda1 part ext4 /
/dev/sda2 part ext4 /home
/dev/sdb disk
/dev/sdb1 part exfat /media/jazz/fatfs
/dev/sdb2 part ext4
/dev/sr0 rom
Размер дискового пространства и его остаток доступный для записи можно получить следующей командой.
$ lsblk -o NAME,FSTYPE,SIZE,FSAVAIL,MOUNTPOINT
Она отзовётся вот таким выводом в терминал.
NAME FSTYPE SIZE FSAVAIL MOUNTPOINT
sda 238,5G
├─sda1 ext4 50G 33G /
└─sda2 ext4 188,5G 131,6G /home
sdb 28,9G
├─sdb1 exfat 14,5G 14,5G /media/jazz/fatfs
└─sdb2 ext4 14,5G
sr0 1024M
Заголовки таблицы вывода lsblk можно комбинировать в любом наборе и последовательности. Например, получить UUID разделов доступных в системе можно следующей командой.
$ lsblk -o NAME,FSTYPE,UUID,MOUNTPOINT
В этом варианте вывод команды будет выглядеть следующим образом.
NAME FSTYPE UUID MOUNTPOINT
sda
├─sda1 ext4 2965d94a-8d75-4155-8ab6-9874d78c043b /
└─sda2 ext4 7ccae1e5-5996-4ef7-a58d-0bb16f63a77d /home
sdb
├─sdb1 exfat 7779-F29E /media/jazz/fatfs
└─sdb2 ext4 6bfecaaf-2ec8-4920-a161-2435feb88fd8
sr0
Определить, тип подключения устройства к вычислительной машине тоже можно.
$ lsblk -o NAME,TRAN
NAME TRAN
sda sata
├─sda1
└─sda2
sdb usb
├─sdb1
└─sdb2
sr0 sata
В некоторых случаях пользователю необходимо определить файловые системы на разделах, их метки и тип таблицы разделов. Это можно сделать так.
$ lsblk -o NAME,FSTYPE,LABEL,PTTYPE,MOUNTPOINT
Вывод у этой команды будет следующий.
NAME FSTYPE LABEL PTTYPE MOUNTPOINT
sda dos
├─sda1 ext4 rootfs dos /
└─sda2 ext4 homefs dos /home
sdb dos
├─sdb1 exfat fatfs dos
└─sdb2 ext4 sharefs dos
sr0
Как я уже отмечал выше, всего в списке доступных lsblk параметров насчитывается 71 наименование. В некоторых случаях стандартного вывода программы бывает достаточно. Но если хочется большего, то, сочетая перечисленные параметры и комбинируя их определённым образом, можно получить любую необходимую информацию о подключенных в систему блочных устройствах.
Выводы и умозаключения
Получить информацию о блочных устройствах в операционных системах Linux можно различными способами с использованием различных программ. Один из вариантов — это программа lsblk из пакета util-linux, которой доступна информация о блочных устройствах по 71 параметру. Эти параметры можно сочетать и комбинировать в любом порядке в зависимости от конкретной задачи.
Наиболее часто вывод lsblk будет полезен в следующих случаях:
-
при ручном монтировании сменных накопителей;
-
перед разметкой и форматированием дисков компьютера;
-
для редактирования файла fstab при переносе операционной системы на другой накопитель;
-
при восстановлении базового загрузчика операционной системы и так далее...
Во всех перечисленных и многих, многих других случаях lsblk даст пользователю всю исчерпывающую информацию о подключенных к машине дисках.