Linux中的硬盘命名?

Bil*_*ota 5 linux hard-drive filesystems centos-6.6

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.
Run Code Online (Sandbox Code Playgroud)

问题是 Linux 会自动执行此操作吗?如果不是,我将如何做这样的事情?(我想要三个可以按任何顺序初始化但仍安装到同一点的驱动器)。

use*_*686 12

不,sd*名称是根据首先检测到的磁盘顺序分配的。

如果你需要一个持久的名字,udev 已经根据文件系统标签/UUID 等几个属性提供了它们;分区标签/UUID(仅限 GPT);磁盘附件路径;SCSI WWN;等等。

看看/dev/disk

? 下雨~
? 树/开发/磁盘/
/开发/磁盘/
???by-id (基于硬件的 ID)
? ???ata-SlimtypeDVD_A_DS8A5SH_012160166091 -> ../../sr0
? ???ata-ST9640320AS_5WX1ZH91 -> ../../sda
? ???ata-ST9640320AS_5WX1ZH91-part7 -> ../../sda7
? ???mmc-SD4GB_0x0054b5cf -> ../../mmcblk0
? ???mmc-SD4GB_0x0054b5cf-part1 -> ../../mmcblk0p1
? ???wwn-0x5000c5002f0e9ce1 -> ../../sda
? ???wwn-0x5000c5002f0e9ce1-part1 -> ../../sda1
? ???…
???by-label (文件系统标头中编码的名称)
? ???钥匙卡 -> ../../mmcblk0p1
? ???雨-> ../../sda6
? ???雨家-> ../../sda5
? ???…
???by-partlabel (在 GPT 分区表中编码的名称)
? ???拱门 -> ../../sda4
? ???EFI -> ../../sda1
? ???主页 -> ../../sda5
? ???交换 -> ../../sda8
? ???…
???by-partuuid (在 GPT 分区表中编码的 UUID)
? ???14420948-2cea-4de7-b042-40f67c618660->../../sda4
? ???1c737f60-8667-4d1a-9c92-5f5caf69be60 -> ../../sda3
? ???267bbb83-0bb5-48b8-aa4c-ffe328328f5b->../../sda5
? ???…
???by-uuid (在文件系统标头中编码的 UUID)
    ???0C5C17E25C17C57C -> ../../sda7
    ???413b42fe-77f7-41d0-8d40-a7578f70995d -> ../../sda4
    ???4b30e8db-563e-4947-8d41-f242d94a6d3a -> ../../mmcblk0p1
    ???8594cc4c-9c42-436a-8723-9a0611b1f97d -> ../../sda5
    ???…

您可以这样使用它们:

/dev/disk/by-label/arch_boot  /boot  ext4  rw,auto  0  1
Run Code Online (Sandbox Code Playgroud)

在 fstab 中,另一种语法也适用于labeluuid字段:

LABEL=arch_boot               /boot  ext4  rw,auto  0  1
Run Code Online (Sandbox Code Playgroud)

注意:在一些较旧的 Linux 发行版中,各种 udev 规则试图使sd*名称持久化。但它不能可靠地工作;通常“重命名”失败,因为另一个磁盘被分配了所需的名称。此功能在后来的 udev 版本中被删除。不要依赖sd*名字的持久性,即使它们看起来是持久的。