fsck 花费了很多时间?(缓冲区 I/O 错误)

fsck 花费了很多时间?(缓冲区 I/O 错误)

我一小时内连续不规则停电4-5次。我的 ubuntu 突然进入繁忙模式并显示 /dev/sda5 上有错误。

然后我尝试: fsck /dev/sda5 -y

花了一个多小时的时间,还强制重写。看来有很多街区正在修复。

有人可以描述发生了什么或建议任何修复吗?

答案1

唉,可能发生的情况是你的磁头撞到了硬盘,或者类似的事情。

您最好的选择可能是完全替换 /dev/sda 。请注意,错误可能不限于 sda5,而是可能会影响您的所有分区。

(我最近在 5 TB 驱动器上发生了这种情况。痛苦。)

根据我的经验,“重写”选项没有帮助。如果您拒绝,fsck 就会终止。我建议以只读方式安装所有分区并将数据复制到其他介质(即我建议您获取的新驱动器)。

可以使用选项进行“坏块扫描e2fsck-c。另一方面,现代硬盘上不需要它。

答案2

简短的回答是:始终fsck在驱动器突然关闭、重新启动或断开连接后运行。是什么原因导致严肃的对文件系统结构的损坏是在已经轻微损坏后继续使用它。

长答案...

就其本身而言,“很长一段时间”并不一定表明驱动器存在物理问题。

但它可能,取决于你到底是什么意思许多街区正在修复:重新映射的不可读块表示潜在的驱动器故障,但交叉链接到多个文件的块只是文件系统的逻辑错误。 (数据严重丢失,但不会导致丢弃驱动器。)

我最近不得不在一台旧机器上通过 USB-2 接口连接的 5TiB 驱动器上运行fsck,甚至使用扇区错误,还是花了很长时间。

我跑去strace看看为什么fsck.ext4这么慢,答案很明显:它pread为每个 4KiB 块发出一个单独的系统调用 - 实际上,为每个 10M 正在使用的 inode 发出一个系统调用。

等了一个多小时就睡觉了,第二天早上起床就成功完成了;开始后 1 到 9 小时之间。

就我而言,我相信这不是驱动器问题,因为(a)最近进行了硬重启,(b)唯一报告的错误是空闲 inode 和空闲块计数低于应有的数量,并且( c) 重新启动时,我一直在合并重复的文件 - 本质上,只是删除大量内容,并更改现有的目录条目。

幸运的是我也没有写新的东西,所以没有交叉链接的文件。

相关内容