目前我有Linux薄荷安装在我的 PC 上,并将 USB 硬盘分区安装为/home
.这运作良好。
如果我安装第二个 USB 硬盘驱动器,Linux 是否有可能混淆两者,并尝试在/home
启动时挂载第二个硬盘驱动器的分区?那会很糟糕。
来自 Windows 的我经常看到驱动器盘符未被正确“记住”而导致各种问题的情况。
我想主要问题是:Linux 如何真正知道哪个 USB 硬盘驱动器是/dev/sdb
哪个/media/misha/my_2nd_drive
?
答案1
通常,USB 端口(总线/设备)的位置决定其检测顺序。但是,不要依赖于此。
每个文件系统都有一个通用唯一标识符这代表通用唯一标识符(胖的和NTFS使用稍微不同的方案,但它们也有一个可用作 UUID 的标识符)。您可以相信 (Linux) UUID 是唯一的。有关 UUID 的更多信息,请参阅这篇维基百科文章。
使用磁盘 UUID 作为安装参数。要找出 UUID 是什么,请运行以下命令:
$ sudo blkid /dev/sdb1
(blkid
需要读取设备,因此它需要 root 权限,因此sudo
。如果您已经成为 root,则sudo
不需要。)
然后您可以/etc/fstab
像这样使用该 UUID:
UUID=7e839ad8-78c5-471f-9bba-802eb0edfea5 /home ext4 defaults 0 2
这样就不会混淆 /home 上要安装哪个磁盘了。
对于手动安装,您可以使用/dev/disk/by-uuid/.....
答案2
如果您的fstab
引用分区为/dev/sdx
,那么添加新驱动器肯定会使系统感到困惑。然而,最近的做法是使用分区 UUID来识别分区。
如果您的系统已udev
安装(2.6+ Linux 内核必须如此),您可以在fstab
.默认情况下,分区通过 UUID 进行标识:
/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591
但是,您可以创建有意义的分区标签像“home”一样并引用您的分区,如下所示:
/dev/disk/by-label/home
这些 ID 可以用作/dev/sdx
in的替代品fstab
。