Device file (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Device file. Дата последней синхронизации: 8 января 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Из Википедии:

Специальный файл устройства, или просто файл устройства (англ. special device file) — это один из типов файлов в UNIX-подобной операционной системе. Специальные файлы устройств содержат данные, необходимые операционной системе для взаимодействия с физическими устройствами, такими как диски и дисководы, принтеры и факсы и т. п. Фактически, специальные файлы устройств являются указателями на драйверы устройств, и когда процесс обращается к файлу устройств, он по сути работает с драйвером этого устройства.

В Linux они располагаются в каталоге /dev в соответствии с Filesystem Hierarchy Standard.

В Arch Linux файлами устройств управляет udev.

Блочные устройства

Блочное устройство — это специальный файл, обеспечивающий буферизованный доступ к устройству.

Имена блочных устройств

Начало имени устройства указывает на подсистему ядра, используемую для управления этим блочным устройством.

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

SCSI

Устройства хранения, такие как жёсткие диски, SSD и флэш-накопители, которые поддерживают команду SCSI (SCSI, SAS, UASP), соединение ATA (PATA, SATA) или USB Mass Storage, обрабатываются драйвером SCSI. Все они имеют одну и ту же схему именования.

Имя этих устройств начинается с sd. Затем следует строчная буква, начиная с a для первого обнаруженного устройства (sda), b для второго (sdb) и так далее.

Примеры:

  • /dev/sda - устройство a, первое обнаруженное устройство.
  • /dev/sde - устройство e, пятое обнаруженное устройство.

NVMe

Имя устройств хранения, подключенных через NVM Express (NVMe), начинается с nvme. Затем следует порядковый номер контроллера устройства: nvme0 для первого обнаруженного контроллера NVMe, nvme1 для второго и так далее. Далее идет буква «n» и число, начинающееся с 1, обозначающее устройство на контроллере: nvme0n1 для первого обнаруженного устройства на первом обнаруженном контроллере, nvme0n2 для второго обнаруженного устройства на первом обнаруженном контроллере и так далее.

Примеры:

  • /dev/nvme0n1 - устройство 1 на контроллере 0, первое обнаруженное устройство на первом обнаруженном контроллере.
  • /dev/nvme2n5 - устройство 5 на контроллере 2, пятое обнаруженное устройство на третьем обнаруженном контроллере.

MMC

SD-карты, карты MMC и устройства хранения данных eMMC обрабатываются драйвером mmc, и имена этих устройств начинаются с mmcblk. Затем следует порядковый номер устройства: mmcblk0 для первого обнаруженного устройства, mmcblk1 для второго и так далее.

Примеры:

  • /dev/mmcblk0 - устройство 0, первое обнаруженное устройство.
  • /dev/mmcblk4 - устройство 4, пятое обнаруженное устройство.

Привод оптических дисков SCSI

Имена приводов оптических дисков, которые подключаются с через интерфейс, поддерживаемый драйвером SCSI, начинаются с sr. Затем следует порядковый номер устройства: sr0 для первого обнаруженного устройства, sr1 для второго и так далее.

Udev также предоставляет /dev/cdrom, который является символической ссылкой на /dev/sr0. Имя всегда будет cdrom независимо от поддерживаемых приводом типов дисков или вставленного носителя.

Примеры:

  • /dev/sr0 - привод оптических дисков 0, первый обнаруженный.
  • /dev/sr4 - привод оптических дисков 4, пятый обнаруженный.
  • /dev/cdrom - символическая ссылка на /dev/sr0.

virtio-blk

Имена дисков, подключенных к интерфейсу блочного устройства virtio (virtio-blk), начинаются с vd. Затем следует строчная буква, начиная с a для первого обнаруженного устройства (vda), b для второго (vdb) и так далее.

Примечание: Не путайте virtio-blk с virtio-scsi, который эмулирует контроллер SCSI и, таким образом, следует соглашению об именах SCSI.

Примеры:

  • /dev/vda - устройство a, первое обнаруженное устройство.
  • /dev/vde - устройство e, пятое обнаруженное устройство.

Разделы

Имена разделов представляют собой комбинацию имени устройства диска и номера раздела, присвоенного им в таблице разделов: /dev/устройствораздел. Для дисков, имя устройства которых заканчивается цифрой, имя диска и номер раздела разделяются буквой «p»: /dev/устройствоpраздел.

Примеры:

  • /dev/sda1 - раздел 1 на устройстве /dev/sda.
  • /dev/nvme2n5p3 - раздел 3 на устройстве /dev/nvme2n5.
  • /dev/mmcblk3p4 - раздел 4 на устройстве /dev/mmcblk3.
  • /dev/vda1 - раздел 1 на устройстве /dev/vda.
  • /dev/loop0p2 - раздел 2 на устройстве /dev/loop0.

Инструменты

lsblk

Пакет util-linux предоставляет утилиту lsblk(8), которая выводит список блочных устройств, например:

$ lsblk -f
NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
sda
├─sda1 vfat                 C4DA-2C4D                            /boot
├─sda2 swap                 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 [SWAP]
└─sda3 ext4                 56adc99b-a61e-46af-aab7-a6d07e504652 /

Этот пример показывает только одно доступное устройство (sda), которое имеет три раздела (от sda1 до sda3), каждый из которых имеет свою файловую систему.

wipefs

wipefs может отображать сигнатуры файловой системы, RAID или таблицы разделов (магические строки) с указанного устройства и стирать их, чтобы сделать невидимыми для libblkid(3). Он не стирает ни сами файловые системы, ни какие-либо другие данные с устройства.

Смотрите wipefs(8) для получения дополнительной информации.

Например, чтобы стереть все сигнатуры с устройства /dev/sdb и создать резервную копию ~/wipefs-sdb-смещение.bak для каждой сигнатуры:

# wipefs --all --backup /dev/sdb

Псевдоустройства

Эти файлы устройств не соответствуют никакому физическому устройству.

Смотрите также