Linux用UUID解决硬盘设备名变动导致无法开机/挂载

前言

之前写过一篇文章,讲解了Linux系统初始化及开机自动挂载硬盘。

Linux初始化及开机自动挂载硬盘
Tips(2025追加): 此方法仅适合临时挂载数据盘,由于每次重启后挂载点名称/dev/vdx,/dev/sdx等可能会变动,生产环境建议改用UUID来固定……

但如果在配置好后又移除了这块数据盘,或者此硬盘的挂载点名称/dev/vdx,/dev/sdx等重启后变动,就会导致系统无法开机并且进入救援模式。

解决方案:

此时不要慌张,救援模式下通过手动输入账号密码依然可以登录shell,切换到root用户,再次运行:

nano /etc/fstab

打开后/etc/fstab将增加的那行删除后Ctrl+O,回车保存,Ctrl+X退出,重启后即可正常开机。

如果是移除硬盘造成的就到此为止,如果没有更改硬盘,推荐改用UUID来挂载,设备名不会变动。

事先参考之前的文章完成硬盘分区和创建挂载点

Linux初始化及开机自动挂载硬盘
Tips(2025追加): 此方法仅适合临时挂载数据盘,由于每次重启后挂载点名称/dev/vdx,/dev/sdx等可能会变动,生产环境建议改用UUID来固定……

然后在SSH终端中执行以下命令:

sudo fdisk -l

根据返回的容量信息记住你的数据盘当前的设备名(/dev/sda之类的),再执行:

sudo blkid

在得到的返回结果中记录要挂载的数据盘的UUID

/dev/sdb5: UUID="af698809-229c-443a-899c-18f6345e68df" TYPE="swap" PARTUUID="461bf764-05"
/dev/sdb1: UUID="d492c778-6d1f-4815-b4a5-99f2fbd3c77c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="461bf764-01"
/dev/sda: UUID="367ecef9-0a01-4eb9-8ccb-5fddb9b6f27c" BLOCK_SIZE="4096" TYPE="ext4"

例如要挂载/dev/sda,UUID就是367ecef9-0a01-4eb9-8ccb-5fddb9b6f27c

然后编辑fstab

nano /etc/fstab

采用以下格式:

UUID=数据盘UUID        /挂载点       文件系统 defaults,nofail 0 0

例如:

UUID=367ecef9-0a01-4eb9-8ccb-5fddb9b6f27c        /MainData       ext4 defaults,nofail 0 0

预防

可以加入nofail参数,防止因为挂载失败而无法开机,例如:

/dev/vdb1 /data ext4 defaults,nofail 0 0

 

阅读剩余
THE END