这个问题网上很多人都说是和硬盘挂载失败有关,需要使用 fsck
修复硬盘。但我遇到的这个问题还稍微有点不一样,下面的分析过程和解决方法希望能给大家带来一些思路。
出现上述报错后,
1)进入 emergency mode
,首先发现了 /boot/efi
没有被挂载,这应该是有问题的;
2)找到对应的设备 /dev/sda1
,猜测可能需要修复一下,于是执行了 fsck -y /dev/sda1
命令,但还不见好;
3)尝试手动挂载 /dev/sda1
: mount /dev/sda1 /boot/efi
,但提示未知的文件系统 "vfat"
;
4)发现 vfat
模块没有加载,于是使用 modprobe
进行加载,但提示在 /lib/modules/${kernel-version}
目录下没有找到 vfat
模块;
5)去 /lib/modules/
目录下查找,才发现 ${kernel-version}
目录不见了!!!
至此,定位到问题,是因为内核模块文件缺失,导致无法加载相关模块,进而无法挂载分区
解决方法:
1) 注释掉 /etc/fstab
中挂载 /boot/efi
的语句;
2)重启机器,此时应该不会再进入 emergency mode
;
3)安装内核模块包(kernel-core
);
4)取消上述注释;
5)重启机器,/boot/efi
成功挂载,系统运行正常