记一次磁盘IO错误导致无法进入X的事故
记一次磁盘IO错误导致无法进入X的事故

第一次使用fsck

目录/Directory

事件的起因

昨天下午,我打开电脑,启动了我的ArchLinux操作系统,然后登录进系统,然后熟练的敲入了startxfce4命令,启动了X窗口系统。

然后进入系统后发现,窗口管理器不工作了,也就意味着无法关闭窗口,无法切换窗口,很多功能无法使用。哪里不对劲。

果然,没多久,在控制台上跳出一堆信息,其中我看到了” Disk I/O error”, “dev sda”, “sector 500708224”。

事情的发展

出了问题就要排查,原因很简单,就是磁盘出错了导致文件内容无法读出,可能损坏的文件正好是窗口管理器,所以窗口系统就成了这样,非常合理和有逻辑。

检查磁盘文件错误据我所知就是fsck。 不过拜我电脑各种磁盘的稳定性,从来没有用过这个命令,所以这次就有了这么个机会。但是问题是fsck只能在卸载的磁盘分区上运行错误处理程序,我这次的错误应该是在根分区上,所以必须得有个紧急启动盘,能够让我进入另外一个linux系统。

我手头上没有这种系统盘。只能从头开始做个。

系统当然选Ubuntu最好了,Live盘就是一个完整的系统,下载也快,各种教程也方便。于是直接去Ubuntu的网站下载最新的映像,然后找了一个windows系统,安装了老毛桃启动优盘制作工具,将Ubuntu的映像写入到了优盘中。这一切做好了后,将优盘插入USB接口,然后重启电脑,顺利进入Ubuntu系统。

进入到了Ubuntu系统后,就发现了原来的硬盘和其分区,然后寻找适合的fsck程序,由于我的分区是ext4格式的,所以就用fsck.ext4

执行fsck.ext4 -v -c ,然后是漫长的等待,我的整个检查过程持续了一个多小时。在结束的时候发现了6个错误,然后按照提示进行了修复(实际上也没修复,因为文件已经损坏无法读取了),成功结束。

然后硬盘重启,进入ArchLinux系统,等待了许久,没有跳出”disk error“的错误。

然后进入X系统,发现窗口管理器依然没有加载进来。因此只有重装窗口管理器。我用的窗口管理器是xfwm

重装后系统正常。

总结

  1. 之前发生的disk error应该是逻辑损坏,也就是文件数据出了错,物理上应该没有损坏。

  2. fsck还是挺管用的。

  3. 有一个基于优盘的Linux系统非常重要。

  4. 之所以会出现disk error的错误,我反省可能存在着非正常关机,或者经常在系统待机的情况下带着笔记本到处跑,因为总是以为Linux系统是健壮的。但是实际上还是会出问题的,所以还是要爱惜自己的计算机。