Linux 启动时出现硬盘 I/O 错误

Linux 启动时出现硬盘 I/O 错误

这是启动 Arch 的屏幕截图。

我猜原因是我多次强制关闭我的 Arch linux 电源。 (我已经强制关闭我的 Arch,因为我的 Firefox Flash 插件使用了太多内存来停止我的系统。)

Arch Linux 启动时的屏幕截图

注意:我可以在同一驱动器磁盘上启动 Windows 7 系统。所以我认为不是磁盘问题,多半是分区问题。

更新:我查看了更多信息,该部分/dev/sda9/home目录。并且总是在相同的地方出错sector 798717984。我在Windows下使用DiskGenius软件检查错误。然后发现错误。并且该分区未格式化。 磁盘精灵截图

我想恢复我的 Arch linux。如何解决这个问题?

如果我无法修复此错误,那么如何获取分区数据?

Update2:我真的希望保存这个部分的数据。因为这个部分我有很多重要的事情。我认为第一步是将这个坏的分区或整个硬盘备份到一个映像文件(什么映像文件?),然后让可以修复这个分区的人来修复。

更多更新:在我使用DiskGenius软件修复分区扇区错误后。然后我用e2fsck它来检查。得到错误:

fsck.ext4: Bad magic number in super-block while trying to open /dev/sda9.
/dev/sda9: The superblock could not be read or does not describe a correct ext2 filesystem.
VFS: can't find ext4 filesystem.

(我这个损坏的分区/home->/dev/sda9当我之前创建它时它是 ext4。)

我执行命令# mke2fs /dev/sda9来获取块信息:

OS type: Linux
Block size: 4096 (log=2)
Fragment size=4096 (log=2)
Stride = 0 blocks, stripe width = 0 blocks
65536 inodes, 261888 blocks
13094 blocks (5.00%) reserved for super user
First data block = 0
Maximum filesystem bloack = 268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Super block backup stored on blocks:
    32768, 988304, 163840, 229376

答案1

除了控制台中出现混乱的错误消息之外,您是否也可以登录并使用 Arch Linux?如果是这样,那么您的硬盘很可能出现故障,只是还没有完全失效。 “I/O error”行表示内核在尝试从硬盘读取数据时遇到错误,以“ata1.00”开头的行提供了有关硬件中读取请求的内部细节。 Windows 不会显示此类消息,这可能就是您尚未看到任何问题的原因。

如果您因关闭电源而导致文件系统损坏,那么内核应该仍然能够从驱动器读取数据,但无法解释数据属于哪些文件。这将导致一组不同的错误。

另一种判断方法是重新启动并查看是否出现类似的错误,但具有不同的详细信息,例如扇区号与 798717984 不同。如果是这样,则意味着错误是随机发生的,这是硬件故障的另一个迹象。同样,这很可能是您的硬盘驱动器,尽管其他硬件组件也可能出现故障。

我建议在为时已晚之前进行备份并更换驱动器。

操作更新后编辑:

如果只有一个扇区损坏,您可以e2fsck -c -y按照 goldilocks 的建议使用,如果修复了错误,则继续使用该驱动器。但现代驱动器内置了透明的纠错功能,根据我的经验,当操作系统开始在正常 I/O 过程中检测到错误时,驱动器已非常接近其使用寿命。

无论您采取什么行动,绝对要确保您有良好的备份整个驱动器在尝试修复任何东西之前!

相关内容