What is the Linux drive naming scheme?
In Windows; you have the C:\ drive. This is the primary drive upon which Windows is installed. However, Linux uses a different naming scheme: sda , sdb3 , etc. Can anyone give me a brief outline of it so I might actually understand it instead of being confused by it?
It’s worth noting that in normal use you don’t need to use the /dev/sd* names. The equivalent of your C: drive is / (aka the root directory). You can see all drives by going to ‘Computer’ in the file manager.
Also note, MS Windows has been trying to discard the notion of drive letters for 8 (?) years now. For Linux (and Ubuntu), I for one do not miss them.
5 Answers 5
In general, the letters (fd, sd, hd) refer to the device type (‘SATA, SCSI/SATA, IDE’) , the third letter is for the device order (a the first, b the second, etc) and the numbers refer to the partitions the device has, starting by zero.
- hd refers to an IDE-type drive
- sd refers to a SCSI drive in general, but is mostly popular for SATA drives and CD/DVD
- fd is floppy disk
- the first (1) partition on your first (a) SATA drive is /dev/sda1
- The third (3) partition on your second (b) SATA drive is /dev/sdb3
- the second partition (2) of the second (b) IDE hard disk is ‘/dev/hdb2’
This device naming is more of a background one, as the actual point to access it a directory mount point.
I think that the following three articles will help you a bit:
additionally, most modern distros allow referencing drives by uuid (a unique identifier for drives and other storage devices) if the kernel supports it there will be symlinks in /dev/disk/by-uuid/ that point to the «standard» /dev/sd** device nodes. This gives the benefit of having a stable reference to a drive even if you shuffle drives around on the system.
Just for clarity, on the Windows side you’re confusing the file system naming with the drive naming. Windows hides the drive naming from you almost completely, but you can see examples in the registry and if you edit your boot.ini file. A disk reference there might look like this:
multi(0)disk(0)rdisk(0)partition(1)
You can also see individual disks in the disk manager tool. The reason I bring this up is that the ntfs file system allows you to play all kinds of games. You can mount a separate disk to a folder in your C: and another drive at the same time, and unmounted disks may not have a drive letter at all. So don’t confuse the file system from disk naming.
Linux is similar, here. sda1 is a common partition name, but it could be mounted anywhere on the file system.
Device file (Русский)
Состояние перевода: На этой странице представлен перевод статьи 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) , которая выводит список блочных устройств, например:
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 для каждой сигнатуры:
Псевдоустройства
Эти файлы устройств не соответствуют никакому физическому устройству.
Смотрите также
Обозначения дисков и дисковых разделов в системах linux.
Один из основных постулатов Unix/Linux — «всё есть файл», и жесткие диски — не исключение.
Каждый найденный ядром диск, отображается в виде файла в специальном каталоге устройств «/dev»
Диски.
SATA/ SCSI HDD, а также многие переносные накопители типа USB flash:
На новых Linux-ядрах >=2.6.21 для некоторых чипсетов может действовать новая система именования IDE-дисков, при которой IDE-устройства именуются также как и SATA/ SCSI .
Приведем наглядный пример:
сохранит MBR c первого диска SATA/ SCSI в системе в обычный файл MY_SATA_MBR.BIN.
Получить список обнаруженных системой дисков можно выполнив команду fdisk -l:
v-serv:~# fdisk -l Disk /dev/sda: 200.0 GB, 200048565760 bytes 255 heads, 63 sectors/track, 24321 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 3824 30716248+ c W95 FAT32 (LBA) /dev/sda2 3825 4532 5687010 83 Linux /dev/sda3 4533 5140 4883760 83 Linux /dev/sda4 5141 24321 154071382+ 5 Extended /dev/sda5 5141 5991 6835626 83 Linux /dev/sda6 5992 7207 9767488+ 83 Linux /dev/sda7 7208 10854 29294496 83 Linux /dev/sda8 10855 24321 108173646 83 Linux Disk /dev/sdb: 320.0 GB, 320071851520 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 365 2931831 83 Linux /dev/sdb2 366 1216 6835657+ 83 Linux /dev/sdb3 1217 1277 489982+ 82 Linux swap / Solaris /dev/sdb4 1278 38913 302311170 5 Extended /dev/sdb5 1278 4924 29294496 83 Linux /dev/sdb6 4925 5046 979933+ 83 Linux /dev/sdb7 5047 6870 14651248+ 83 Linux /dev/sdb8 6871 7478 4883728+ 83 Linux /dev/sdb9 7479 8086 4883728+ 83 Linux /dev/sdb10 8087 21553 108173646 83 Linux /dev/sdb11 21554 33711 97659103+ 83 Linux /dev/sdb12 33712 38913 41785033+ 83 Linux
Разделы.
Конкретный раздел (синонимы — том, партиция) определяется по номеру, после обозначения устройства, начиная с 1. Например: hdc5 — пятый том мастера на втором контроллере IDE, sde3 — третий том пятого SATA/ SCSI накопителя.
Например: как быстро уничтожить форматированный раздел — заполним нулевыми байтами первые 10MB:
dd if=/dev/zero count=Разделы могут быть:
расширенными (Extended) — логические разделы (обычно только один) с которыми нельзя работать, контейнер для дополнительных разделов;
Кроме номера и размера, каждый раздел имеет свой тип, который обозначен одним байтом: