我的系统中有许多磁盘和卷。一些磁盘是 IDE,一些是 SATA。
SATA 磁盘上的卷给我带来了问题 - 我已在中列出它们etc/fstab
,但每次启动时,它们都有不同的名称:
/dev/sdd*
变成/dev/sdb*
/dev/sde*
变成/dev/sdc*
每次启动时都如此。
1) 为什么会发生这种情况?
2) 我该如何预防?
3) 如果不能,有解决方法吗?
答案1
这种情况通常是因为设备检测顺序不同 - 尤其是当多种不同的设备技术共享同一个名称时,例如 SATA、SCSI 和 USB 磁盘。它们都共享 /dev/sd* 名称,并且会根据您当时插入的内容而变化。
有多种方法可以解决这个问题。
- 标记分区然后按标签挂载它们
- 通过UUID挂载
从man fstab
:
不必明确给出设备,也可以通过 UUID 或卷标(参见 e2label(8) 或 xfs_admin(8))指示要挂载的文件系统(ext2 或 xfs),写为 LABEL= 或 UUID=,例如
LABEL=Boot' or
UUID=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