我有一个 Linux 系统,我们强制使用 /dev/devname 来运行系统。
proc /proc proc defaults 0 0
/dev/sda1 / ext3 barrier=1,errors=remount-ro 0 1
/dev/sda5 /opt ext3 barrier=1,defaults 0 22
/dev/sda2 /opt/vortex/dvss ext3 barrier=1,defaults 0 3
/dev/sda6 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
到目前为止,我们的系统运行没有出现任何问题。但是,在某些已安装的机器上,我们经常会看到系统无法正常启动并突然进入“Grub救援”状态
当我将设备安装为辅助设备并运行 E2Fsck 时,我看到系统可以恢复。
现在,我们正在努力解决这个失败问题。 [修复由于 GRUB 错误导致的系统启动失败
为了顺序,我注意到在一些论坛中他们说要在 FSTAB 中设置基于 UUID 的启动
如果通过UUID来设置的话,我们会有哪些优势呢?
是否有可能减少我的 GRUB 错误
答案1
从man fstab
:
可以不明确给出设备,而是通过其 UUID 或卷标(参见 e2label(8) 或 xfs_admin(8))指示要安装的(ext2 或 xfs)文件系统,写入 LABEL= 或 UUID=,例如、“LABEL=启动”或“UUID=3e6be9de-8139-11d1-9106-a43f08d823a6”。这将使系统更加健壮:添加或删除 SCSI [或 SATA] 磁盘会更改磁盘设备名称,但不会更改文件系统卷标。
至于 GRUB 有时无法启动的原因,我怀疑设置 UUID 会改变什么(因为看起来考虑到一些奇怪的 BIOS 设置,即使使用 UUID,它也可能会失败),但还是值得一试。
答案2
UUID 解决了我的问题,这与您的问题相同。
以下摘录来自 Arch Wiki非常有帮助:
如果您的机器有多个 SATA、SCSI 或 IDE 磁盘控制器,则其相应设备节点的添加顺序是任意的。这可能会导致设备名称(例如
/dev/sda
和 )/dev/sdb
在每次启动时切换,最终导致系统无法启动、内核崩溃或块设备消失。持久命名解决了这些问题。
重点是,您的机器有时可能会决定任意交换您的sda
和sdc
。如果发生这种情况,您的启动将会失败。