ubuntu22.04部分分区挂载失败,进入紧急模式emergency mode
1、问题描述
在ubuntu22.04文件系统启动过程中,如果某个分区在/etc/fstab定义了,但是某些原因导致分区损坏,致使在挂载过程中失败。ubuntu会进入到一个emergency mode,ubuntu启动过程中会打印log信息,如下:
You are in emergency mode. After logging in, type "journalctl -xb" to view
2、问题解决
2.1 修改/etc/fstab文件
可以将挂载不上的分区从/etc/fstab配置文件上删掉
#PARTLABEL=userdata /userdata ext4 defaults 0 2
2.2 修改服务进程
通过修改服务进程,让挂载失败后,不进入紧急模式emergency mode,然后通过手动修复分区,重新挂载的方式。
修改/lib/systemd/system/local-fs.target文件,把OnFailure和OnFailureJobMode屏蔽掉
OnFailure=emergency.target
OnFailureJobMode=replace-irreversibly
[Unit]
Description=Local File Systems
Documentation=man:systemd.special(7)
DefaultDependencies=no
Conflicts=shutdown.target
After=local-fs-pre.target
#OnFailure=emergency.target
#OnFailureJobMode=replace-irreversibly
通过上述的修改,系统启动过程中就算挂载失败也可以正常进入到系统。
3、定位问题
紧急模式是由于由于emergency.target触发的,将这个为线索进行搜索。
grep emergency.target -r /lib/systemd/system
或者
grep emergency.target -r /etc/systemd/system
再使用指令systemctl list-dependencies查看依赖关系
systemctl list-dependencies

那接下来是如何复现问题了
可以进行模拟分区损坏了,去破环分区,来复现是否有效修改
dd if=/dev/zero of=/dev/mmcblk0p8 bs=1 count=1024 seek=1024 conv=notrunc
1万+

被折叠的 条评论
为什么被折叠?



