在一次正常的shutdown -r now之后,服务器启动不起来了,登录界面显示recovering journal,主要报错信息如下所示:

/dev/sda2:recovering journal/dev/sda2:Clearn...You are in emergency mode. After logging in, type 'journalctl -xb' to view system logs ...


报这个错误多数情况下是因为/etc/fstab文件的错误。注意一下是不是加载了外部硬盘、存储器或者是网络共享空间,在重启时没有加载上导致的。

接下来的操作方式有两种,图形界面法和命令行法。

1、图形界面法

(1)重启机器,待出现机器品牌(这里是DELL)图标时,快速按ESC键,直至进入GRUB界面,如下所示:

(2)选择*Ubuntu 高级选项,选择recovery mode的内核版本,按Enter键进入。

(3)进入Recovery Menu,选择fsck选项。

fsck选项会检查所有的磁盘,并修复存在问题的磁盘。
这里,左侧如果出现root ...Control -D界面,输入root账户的密码即可。

【注意】:

  • 有的同学选择resume选项后,再次重启机器也能恢复正常。
  • network选项用于联网,如果机器断网的情况下,需要先选择此选项。
  • system-summary选项用于查看系统的一些统计信息,如磁盘使用情况等,需要的时候也可以进入查看。

比较悲催的是,这里我的机器无法利用上下键选择相应的选项,按Enter键甚至出现了奇奇怪怪的乱码 o(╥﹏╥)o

a)于是,需要先回到步骤(2)中的recovery mode的内核版本界面,按E键进入编辑模式。进入后可以看到如下界面:

b)将 ro recovery nomodeset 改为 rw single init=/bin/bash
c)再按F10 进入单用户模式,这时候可以修改文件,修改完毕后重启再进入步骤(3)中的Recovery Menu,选择fsck选项修复即可。

2、命令行法

(1)命令行输入journalctl -xb查看系统日志

journalctl -xb

匹配failed关键字查看错误信息:

/ failed

查看到哪些磁盘发生了failed事件,然后:q退出日志界面。

(2)输入命令vi /etc/fstab,查看磁盘基本信息:

vi /etc/fstab

磁盘信息如下所示:

确认好发生错误的磁盘名称,输入:q退出磁盘信息界面。

(3)使用fsck命令修复磁盘。

这里如果担心解除挂载可能出现问题,可以先跳过umount命令,直接执行fsck操作。

umount /dev/sdb1 # 解除挂载,这里可以先跳过fsck -y /dev/sdb1# 修复磁盘

(4)再次重启机器即可。

参考资料

  • ubuntu20.04开机显示recovering journal死机的解决方法
  • Linux开机出现welcome to emergency mode! 解决方法after logging in ,type “journalctl -xb” to view system logs
  • 解决Ubuntu中you are in emergency mode(紧急模式)问题