Device file (Русский)
Из Википедии:
- Специальный файл устройства, или просто файл устройства (англ. 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
) и так далее.
Примеры:
/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
Псевдоустройства
Эти файлы устройств не соответствуют никакому физическому устройству.
- /dev/random, смотрите random(4)
- /dev/shm
- /dev/null, /dev/zero, смотрите null(4)
- /dev/full, смотрите full(4)
- /dev/ttyX, где X является числом
Смотрите также
- Linux allocated devices — документация ядра
- Gentoo:Device file