工作一段时间后,我的文件系统 (EXT4) 变为只读。然后我使用实时 USB 启动到实时模式,并在损坏的分区上运行 fsck(为了安全起见,也对其他分区运行 fsck)。我运行它,fsck -y
它确实修复了有问题的分区上的所有错误。当我再次运行 fsck 时,所有分区都报告为干净的。
然后我正常重启系统(不是实时 USB);我在不同位置运行一些touch abc
命令进行测试,它能够写入磁盘。但过了一会儿,它又变成了只读的。
我已经重复了整个过程 4-5 次(fsck-from-live-usb --> boot-normally --> become-read-only --> fsck-from-live-usb),但我不知道这个问题的原因。
dmesg
显示以下类型的错误:
blk_update_request:I/O 错误,dev sdb,扇区 2521582056
标签#28 失败结果:hostbyte=DID_SOFT_ERROR driverbyte=DRIVER_OK
有办法修复吗?我无法在系统上工作。这看起来不像是硬件问题,因为 fsck 修复了所有问题,还smartctl
报告驱动器没有问题,没有错误。
谢谢。
答案1
答案2
这很可能是一个坏块。虽然我的公司有一条规定,任何这样的硬盘都应该立即丢弃,但我们家庭用户通常会尽可能地挽救。首选工具是 HDD Regenerator(非破坏性),但它是付费软件。如果您想免费使用,可以使用 HDD 低级格式化。旧版本是免费的。这将需要完整的备份和恢复。我提到的程序独立于文件系统运行。HDD LLF 直接在 WinXP 或 2003 上运行,而 HDD Regenerator 创建可启动的 USB 驱动器,但也可以在线获取,作为与 memdisk 一起使用的 Linux initrd 软盘映像。