参考链接:
http://c.biancheng.net/view/887.html
https://www.linuxprobe.com/linux-fsck-command.html
https://cloud.tencent.com/developer/article/1721746
fsck修复的问题,主要是磁盘无法启动、由于强制断电等造成文件IO错误、磁盘内容错误一类的(解决的是修复磁盘的问题)
常见的5种损坏类型
1 未被引用的inode
2 难以置信的超大链接数
3 没有记录在磁盘块映射表中的未用数据快
4 列出的空闲数据快还在某个文件中便用
5 超级块中不正确的汇总信息
在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。
常见做法,是对格式化的磁盘进行修复。注意不能修复已挂载的磁盘,否则会导致永久性损伤磁盘。需要先umount磁盘,在fsck进行修复。
推荐命令:
fsck -r /dev/sdb1
情景:我虚拟机卡死的情况下无奈重启电脑,重新打开虚拟机后,发现屏幕上报错如下:
我虚拟机的磁盘使用了LVM进行分配,然后由于上述原因出问题了。可以看到某个Inode出现了问题(给出了逻辑block和物理block的位置),然后虚拟机自行进入了busybox的命令中,要求手动进行检测。
这里因为磁盘有问题,linux的OS没有对该磁盘进行挂载,而是使用了busybox进行修复,所以你会发现能用的命令都很少,因为OS没有挂载磁盘,你无法执行bin下命令。可以看到目前你执行的shell是(initramfs),是类似于Win PE一样的内存OS,而非磁盘。
因为我这里涉及到lvm的修复,故参考https://www.cnblogs.com/xiangsikai/p/10684828.html
我执行lvm进入lvm操作,然后执行lvdisplay看到lv Path的路径
随后fsck /dev/ubuntu-vg/ubuntu-lv 进行修复
一路Y即可
Welcome to point out the mistakes and faults!