![Linux 启动时出现硬盘 I/O 错误](https://linux22.com/image/30013/Linux%20%E5%90%AF%E5%8A%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E7%A1%AC%E7%9B%98%20I%2FO%20%E9%94%99%E8%AF%AF.png)
这是启动 Arch 的屏幕截图。
我猜原因是我多次强制关闭我的 Arch linux 电源。 (我已经强制关闭我的 Arch,因为我的 Firefox Flash 插件使用了太多内存来停止我的系统。)
注意:我可以在同一驱动器磁盘上启动 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 过程中检测到错误时,驱动器已非常接近其使用寿命。
无论您采取什么行动,绝对要确保您有良好的备份整个驱动器在尝试修复任何东西之前!