早上刚到公司,老大说,运行着gogs代码库和mariadb数据库的宿主机崩溃了(ubuntu 18.04 LTS)。

重启电脑,默认方式启动,进入系统过程中抛出异常,信息为end Kernel panic - not syncing: No working init found. 使用恢复模式启动,可选的启动项有6个,分别对应3个内核版本(Linux 4.15.0-118, Linux 4.15.0-117和Linux 4.15.0-112,以及各自对应的recovery mode)。 挑了个低版本的恢复模式(Linux 4.15.0-112)进入。可以见到恢复模式的粗糙页面。 选择resume,继续引导过程。途中出现好多报错,待载入完成后使用journalctl -xe命令查看。例如/bin/mount for / exited with exit status 32, 例如Failed to start Remount Root and Kernel File Systems,例如Failed to start Message of the Day 。

既然进了系统,肯定得先确认下docker服务的状态。 切到root,使用docker ps ,提示服务未启动。 systemctl status docker,提示Failed to start Docker Application Container Engine.此路不通

直接使用dockerd命令启动,有了新的收获,提示chmod /var/lib/docker: read-only file system 试了下,根目录所在分区变成了只读。执行mount -o remount rw,也不好使。 此时,已经大致确定了初步的方向,磁盘挂载失败。 再次进入恢复模式,进入root命令行,执行fsck -y /dev/sda2 (根目录挂载点),果然,有大量的修复提示

完成后再次重启,进入系统过程中一路顺利,未发现报错。docker服务也正常自启动。

事后总结:使用的是台式机,出现过突然断电、使用固态硬盘。故障原因可能与这几项有关。待后续确定