如何才能将硬盘始终安装在同一个/dev/sd?
节点上?例如,如何使具有UUID的硬盘xyz
始终挂载在节点上dev/sda
?
我之所以要这样做是因为有时我会更换硬盘,而识别它们的唯一简单方法就是节点名称,如果其中一个出现问题,我可以轻松地在系统中的12个硬盘中找到它(到目前为止我一直在使用序列号)。如果我更换硬盘,我只需将节点分配给新的 uuid 或创建一个新节点。
我运行的是 Debian 8。
答案1
我认为您正在谈论为硬盘驱动器设备节点分配稳定、持久的名称,而不是安装它们:
使 UUID xyz 的硬盘始终安装在节点上
dev/sda
?
/dev/sda
你无法在挂载时控制对应哪个硬盘。一旦您要安装硬盘驱动器(或分区),设备节点(在 中/dev
)必须已经分配。
你能使用 控制在检测和添加硬盘时分配给硬盘的设备节点的名称udev
。事实上,udev
Debian 和大多数其他 Linux 发行版中的默认规则已经为您做到了这一点!这些默认规则分配的名称如下:
- 通常
sd<something>
(并且您无法控制)内核分配的名称可直接在/dev
.建议您保留这些名称以避免混淆,因为无论如何,内核分配的名称都会出现在例如内核日志中。但您不必使用此/dev/sd<something
名称进行安装。 - 指向“主”名称的符号链接是
/dev/disk/by-id
根据硬盘驱动器的供应商、型号和序列号创建的。因此,具有相同供应商、型号和序列号的相同硬盘在/dev/disk/by-id
.此外,一旦连接硬盘驱动器,即可快速获取此信息,并且不需要旋转驱动器即可读取任何内容。 - 指向“主”名称的符号链接是
/dev/disk/by-uuid
根据硬盘驱动器的 UUID 创建的。与 中的那些一样/dev/disk/by-id
,它们是设备的可预测的持久名称,但与/dev/disk/by-id
这些 UUID 不同的是,它们并不是硬盘驱动器本身的真正固有属性,它们只是一些来自文件系统超级块等位置的元数据片段。
总之,可以通过忽略内核分配的/dev/sd<something>
名称并使用来自的名称来满足基于 UUID 寻址磁盘/分区的要求/dev/disk/by-uuid
。除了 UUID,您还可以使用名称来/dev/disk/by-id/ata-<vendor>-<model>-<serial>-part2
访问具有给定供应商、型号和序列号的硬盘上的第二个分区。
答案2
作为 root,键入blkid |grep sda1:
一行即可方便地获取 UUID 以及其他有用的内容。