Команда Linux lsblk с практическими примерами

LinuxBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе мы рассмотрим команду Linux lsblk, которая отображает информацию обо всех доступных блочных устройствах в вашей системе. Блочные устройства включают жесткие диски, SSD, USB-накопители и другие носители информации. Команда lsblk представляет эту информацию в понятном древовидном формате, который упрощает понимание взаимосвязи между различными устройствами хранения и их разделами.

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

К концу этой лабораторной работы вы сможете использовать команду lsblk с различными опциями для получения подробной информации об устройствах хранения в вашей системе Linux.

Шпаргалка по командам Linux

Основное использование команды lsblk

Команда lsblk расшифровывается как "list block devices" (список блочных устройств) и используется для отображения информации обо всех доступных блочных устройствах в вашей системе Linux. Блочные устройства — это устройства хранения, такие как жесткие диски, SSD и USB-накопители.

Начнем с запуска базовой команды lsblk в терминале:

  1. Откройте терминал, если он еще не открыт.

  2. Введите следующую команду и нажмите Enter:

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: Тип устройства (disk (диск), partition (раздел), loop (цикл) и т. д.)
  • MOUNTPOINT: Точка монтирования устройства (если применимо)

В приведенном выше примере вы можете увидеть:

  • Несколько устройств loop, используемых пакетами snap
  • Основное устройство хранения sda (которое является диском объемом 50 ГБ)
  • Два раздела на sda: sda1 (смонтирован в корне /) и sda2 (используется как swap space (пространство подкачки))

Древовидная структура в выводе позволяет легко визуализировать, какие разделы принадлежат каким дискам. Например, вы можете видеть, что и sda1, и sda2 являются разделами диска sda.

Теперь, когда вы понимаете базовый вывод команды lsblk, давайте рассмотрим некоторые полезные опции в следующих шагах.

Отображение дополнительной информации с помощью lsblk

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

Использование опции -f для отображения информации о файловой системе

Опция -f отображает информацию о файловой системе, включая тип файловой системы, метку, 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 позволяет указать, какие столбцы отображать. Это полезно, когда вам нужна только определенная информация и вы хотите получить более чистый, более сфокусированный вывод.

Давайте отобразим только столбцы name (имя), size (размер) и mountpoint (точка монтирования):

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, чтобы сосредоточиться на определенных типах блочных устройств или отображать информацию в разных форматах.

Фильтрация по типу устройства

Команда lsblk позволяет фильтровать устройства по их типу, используя опцию --type или -t. Общие типы устройств включают:

  • disk: Физические диски
  • part: Разделы
  • loop: Loop-устройства (циклические устройства)
  • lvm: Логические тома (Logical volumes)

Чтобы отобразить только дисковые устройства, выполните следующую команду:

lsblk --type disk

Вывод покажет только основные диски, без их разделов:

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0   50G  0 disk

Аналогично, чтобы отобразить только разделы, выполните:

lsblk --type part

Вывод покажет только разделы:

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda1   8:1    0   49G  0 part /
sda2   8:2    0  976M  0 part [SWAP]

Отображение путей к устройствам

Опция --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]"
        }
      ]
    }
  ]
}

Комбинирование опций для точного управления

Вы можете комбинировать несколько опций, чтобы получить именно ту информацию, которая вам нужна. Например, чтобы отобразить только дисковые устройства с их полными путями в формате JSON:

lsblk --type disk --paths --json

Вывод будет представлением в формате JSON только дисковых устройств с их полными путями:

{
  "blockdevices": [
    {
      "name": "/dev/sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "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 (съемный) равным 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

Вывод включает информацию о топологии, такую как выравнивание и оптимальный размер ввода-вывода:

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.

Резюме

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

  • Основное использование lsblk для отображения древовидного списка всех блочных устройств
  • Как отображать дополнительную информацию, включая сведения о файловой системе, владельце/разрешениях и выбор пользовательских столбцов
  • Методы фильтрации для фокусировки на определенных типах устройств или форматах отображения
  • Расширенные сценарии использования для задач администрирования системы

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

Освоив команду lsblk, вы сможете более эффективно:

  • Идентифицировать и управлять устройствами хранения данных
  • Контролировать использование диска и доступное пространство
  • Устранять проблемы, связанные с хранением данных
  • Документировать конфигурацию хранилища вашей системы

Эти навыки составляют важную основу для более продвинутых задач администрирования системы Linux, связанных с управлением хранилищем.

Шпаргалка по командам Linux