Linux系统启动卡在启动界面,进入紧急模式(ermergence mode)解决办法,修改UUID硬盘挂载
进入紧急模式ermergence mode解决办法
情况说明原因分析解决办法修改UUID来设置系统挂载的分区
情况说明
最近常在服务器上更换硬件设备以及切换系统,在使用镜像安装完Ubuntu server系统后,进系统时首先在开机在此处等待了将近1分半中,之后进入了emergence mode 如果是 ubuntu desktop版的话,会卡在紫色的loge的界面,之后依然是进入emergence mode
原因分析
如果确认硬件设备没问题,硬盘分区正常,系统安装正常,就像此处我是刚安装好的镜像。则系统未成功启动,进入到紧急模式90%的原因是 系统挂载的硬盘分区号(UUID) 与安装时设定的不一致。UUID是每一个分区的唯一标识符,比如一块磁盘全部划成一个分区如sda1,再格式化,再全部划分成一个分区sda1,但前后两次的UUID是不一致的 系统在启动时会读取 /etc/fstab 中的分区的UUID,然后去找对应的设备挂载到系统中
为什么会出现UUID不一致呢? 如上解释的UUID的含义,就是因为此处我的硬件设备更换或者是更新了分区分配,哪怕是我重新划分的分区与原来一致,UUID会不一致导致识别UUID找不到现有的设备。
解决办法
原因分析时说明了,系统在启动时会读取 /etc/fstab 中的分区的UUID,然后去找对应的设备挂载到系统中,而现在进不了系统就是这个UUID的要更换成 正确的分区UUID号
首先在紧急模式的终端中 输入 sudo blkid 来查看主板上所有分区的UUID信息 我们找到我们需要的分区的UUID号,一般每个系统有一个 EFI分区 和 主系统分区,此处我的EFI分区 是/dev/sdb1 主系统分区是 /dev/sda2,主系统分区就是安装系统时的分区 修改 /etc/fstab 文件 vi /etc/fstab
可以看到 我的UUID中的第二个 /boot/efi 分区的 UUID号是错的,应该是在上面的 blkid中 efi分区 UUID是 10C5-F2A8,我的主系统分区的UUID是正确的 我们将正确的UUID号填入修改后, 保存 reboot即可
不光是本人的这种情况,只要进入紧急模式,很有可能就是某硬盘分区挂载时未识别到,类似场景还有 swap分区未创建、修改/etc/fstab永久添加数据硬盘后都有可能因为UUID错误而导致分区识别不到 进而导致进入不了系统。
修改UUID来设置系统挂载的分区
在 /etc/fstab里修改系统盘挂载时有三种方式可以索引到对应分区 分别是UUID,PARTUUID(分区UUID),设备文件 比如 使用blkid查看所有的分区UUID如下: 假如我们挂载的是/dev/nvme0n1p3,则在 /etc/fstab中 这三种方式是等价的 所以 在启动多系统时,如果发现进入的系统与预期选择的不对应,原因是两个系统的UUID时一样的,导致了进入错误,此时分区UUID是不一样的,所以我们将分区挂载项修改成 以partuuid来索引就可以解决此问题。 假如: 我想进入系统是在nvme0n1p3,而进入了nvme0n1p2,此时我们需要将 nvme0n1p3挂载到当前系统,然后修改 nvme0n1p3下面的 ./etc/fstab,将分区索引方式改成 nvme0n1p3的 by-partuuid的方式,
sudo mount /dev/nvme0n1p3 /mnt cd /mnt sudo vim ./etc/fstab 修改成 by-uuid索引即可,
然后重启看是否能正常进入。