目录

使用fsck命令检查并修复linux文件系统

问题现象

今天遇到一个奇怪的问题:

非正常重启后,或热插拔主板接口设备?。导致鼠标,键盘失去响应,重新插拔USB接口后,鼠标键盘电源灯无法点亮,屏幕无响应。再次重启后出现黑屏,提示错误如下:

1
2
 initramfs unpacking failed decoding failed
 radeon 0000:01:00.0: failed VCE resume (-110).

/20200605-%E4%BD%BF%E7%94%A8fsck%E6%A3%80%E6%9F%A5%E5%B9%B6%E4%BF%AE%E5%A4%8Dlinux%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/fix-error.jpg

大意就是 /dev/sda2分区包含一个文件系统错误,(inodes)在被损坏的孤立的节点表中。 要用fsck这个命令修复。

按照提示,使用命令修复即可: fsck -y /dev/sda2

BusyBox

幸运的是,出错后自动进入到BusyBox环境。BusyBox是什么呢? 经过一通man busybox猛如虎的操作后,发现BusyBox是一个集合多种工具命令的工具箱,又或称嵌入式Linux系统的瑞士军刀。可用作急救盘。

/20200605-%E4%BD%BF%E7%94%A8fsck%E6%A3%80%E6%9F%A5%E5%B9%B6%E4%BF%AE%E5%A4%8Dlinux%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/busybox.png

initramfs

initramfs (initram file system) 用于挂载根文件系统。initramfs是在普通根文件系统上可以找到的完整目录集, 在启动时,引导加载程序会把内核和initramfs镜像加载到内存并启动内核。 initramfs可以在启动早期提供一个用户态环境。

initramfs 与 BusyBox 是什么关系?

我理解initramfs就是一种文件系统。BusyBox是命令工具集,其中还有一个switch_root命令,可以切换root文件系统。 /20200605-%E4%BD%BF%E7%94%A8fsck%E6%A3%80%E6%9F%A5%E5%B9%B6%E4%BF%AE%E5%A4%8Dlinux%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/switch_root.png

fsck

fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。