Linux:更改 /dev 中的设备名称会导致启动时出现问题

Linux:更改 /dev 中的设备名称会导致启动时出现问题

我的系统中有许多磁盘和卷。一些磁盘是 IDE,一些是 SATA。

SATA 磁盘上的卷给我带来了问题 - 我已在中列出它们etc/fstab,但每次启动时,它们都有不同的名称:

  • /dev/sdd*变成/dev/sdb*
  • /dev/sde*变成/dev/sdc*

每次启动时都如此。

1) 为什么会发生这种情况?
2) 我该如何预防?
3) 如果不能,有解决方法吗?

答案1

这种情况通常是因为设备检测顺序不同 - 尤其是当多种不同的设备技术共享同一个名称时,例如 SATA、SCSI 和 USB 磁盘。它们都共享 /dev/sd* 名称,并且会根据您当时插入的内容而变化。

有多种方法可以解决这个问题。

  1. 标记分区然后按标签挂载它们
  2. 通过UUID挂载

man fstab

不必明确给出设备,也可以通过 UUID 或卷标(参见 e2label(8) 或 xfs_admin(8))指示要挂载的文件系统(ext2 或 xfs),写为 LABEL= 或 UUID=,例如 LABEL=Boot' orUUID=3e6be9de-8139-11d1-9106-a43f08d823a6'。这将使系统更加强大:添加或删除 SCSI 磁盘会更改磁盘设备名称,但不会更改文件系统卷标。

标记磁盘可以使用(例如)

# tune2fs -L MyDiskLabel /dev/sde2

然后在 /etc/fstab 中使用 LABEL=MyDisklabel 作为设备名称

可以使用 /etc/fstab 中的 UUID= 代替设备名称来进行挂载。

可以通过以下方式获取 UUID blkid(至少在 Ubuntu 中 - 不确定其他发行版是否如此)

答案2

不确定在这里发布我的博客链接是否是个坏习惯(我在这里还很新),如果是的话我深表歉意。

上周我写了一篇关于使用 uuid 标记几个旧 reiserfs 分区的文章,因此前面的发帖人可能会对它感兴趣。

http://hmontoliu.blogspot.com/2011/04/set-uuid-on-reiserfs-partitions-fun.html

相关内容