Имена жестких дисков в Linux?
Пытается ли Linux каждый раз указывать одну и ту же букву?
Например, если подключить два диска к моему компьютеру, отключите их и подключите в обратном порядке, будут ли sdb и sdc соответствовать одним и тем же физическим дискам?
Это то, что я хочу:
First:
Plug in HDD A, which becomes sdb.
Plug in HDD B, which becomes sdc.
Then:
Plug in HDD B, which becomes sdc.
Plug in HDD A, which becomes sdb.
Вопрос в том, делает ли Linux это автоматически? Если нет, то как бы я сделал что-то подобное? (Я хочу иметь три диска, которые можно инициализировать в любом порядке, но при этом они должны быть смонтированы в одной точке).
1 ответ
Нет, sd* имена назначаются последовательно, в зависимости от того, какой диск был обнаружен первым.
Если вам нужно постоянное имя, udev уже предоставляет их на основе нескольких свойств, таких как метки файловой системы / UUID; метки разделов / UUID (только GPT); пути к дискам; SCSI WWN; и так далее.
Взгляни на /dev/disk:
┌ дождь ~
┘ дерево /dev/disk/
/ DEV / диск /
By── by-id (аппаратный идентификатор)
│ ├── ata-SlimtypeDVD_A_DS8A5SH_012160166091 ->../../sr0
Ta ├── ata-ST9640320AS_5WX1ZH91 -> ../../sda
Ta ├── ata-ST9640320AS_5WX1ZH91-part7 -> ../../sda7
Mm ├── mmc-SD4GB_0x0054b5cf -> ../../mmcblk0
Mm ├── mmc-SD4GB_0x0054b5cf-part1 -> ../../mmcblk0p1
Wn ├── wwn-0x5000c5002f0e9ce1 -> ../../sda
Wn ├── wwn-0x5000c5002f0e9ce1-part1 -> ../../sda1
│ └── …
By── by-label (имя, закодированное в заголовке файловой системы)
Key ├── клавиатура ->../../mmcblk0p1
Indows ├── raindows -> ../../sda6
│ ├── rainhome -> ../../sda5
│ └── …
Part── by-partlabel (имя, закодированное в таблице разделов GPT)
Arch ├── Арка -> ../../sda4
│ ├── EFI -> ../../sda1
│ ├── домой ->../../sda5
Sw ├── swap -> ../../sda8
│ └── …
Part── by-partuuid (UUID, закодированный в таблице разделов GPT)
144 ├── 14420948-2cea-4de7-b042-40f67c618660 -> ../../sda4
C ├── 1c737f60-8667-4d1a-9c92-5f5caf69be60 -> ../../sda3
26 ├── 267bbb83-0bb5-48b8-aa4c-ffe328328f5b -> ../../sda5
│ └── …
By── by-uuid (UUID, закодированный в заголовке файловой системы)
C── 0C5C17E25C17C57C ->../../sda7
3── 413b42fe-77f7-41d0-8d40-a7578f70995d ->../../sda4
B── 4b30e8db-563e-4947-8d41-f242d94a6d3a ->../../mmcblk0p1
94── 8594cc4c-9c42-436a-8723-9a0611b1f97d ->../../sda5
└──…
Вы можете использовать их как таковые:
/dev/disk/by-label/arch_boot /boot ext4 rw,auto 0 1
В fstab альтернативный синтаксис также работает для label а также uuid поля:
LABEL=arch_boot /boot ext4 rw,auto 0 1
Примечание: в некоторых старых дистрибутивах Linux различные правила udev пытаются сделать sd* имена постоянные. Но это не может работать надежно; часто "переименование" завершается неудачно, потому что другому диску присвоено нужное имя. Эта функция была удалена в более поздних версиях udev. Не полагайтесь на sd* имена являются постоянными, даже если они кажутся.