Изучаем тонкости использования программы lsblk в Linux

prolinux

Опубликован:
2024-12-15T03:32:11.527249Z
Отредактирован:
2024-12-15T03:32:11.527249Z
Статус:
публичный
17
0
0

Довольно часто при работе с компьютером в повседневной практике нам приходится обращаться к различным накопителям информации. Таких устройств сегодня известно несколько типов, они могут быть стационарными или сменными, большими и маленькими во всех смыслах, различаться по способу накопления информации и так далее. В Linux эти накопители определяются как блочные устройства. Получить информацию о любом блочном устройстве, будь то SSD, HDD, Flash или SD карта, можно разными способами. В этом обзоре я покажу некоторые тонкости использования для этих целей программы lsblk.

О программе lsblk

Программа lsblk — это утилита командной строки. Во всех основанных на Linux современных операционных системах она установлена по умолчанию в составе пакета util-linux и может быть использована от имени любого пользователя системы, права root не обязательны.

Для lsblk существует man страница, из которой можно почерпнуть информацию о всех определённых разработчиками программы ключах. Кроме этого, в lsblk, как и в любую другую утилиту командной строки, встроена возможность получения быстрой справки с помощью ключа -h или --help.

n29g4K9es3.jpg

Вызов 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.

MzAgL6Pbhv.jpg

Всего программа определяет порядка 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 даст пользователю всю исчерпывающую информацию о подключенных к машине дисках.

Метки: