当fsck没有帮助时从损坏的文件系统中恢复


12

我的文件系统出了点问题,Ubuntu将其设置为只读,现在在Ubuntu Live Disc下,fsck无法修复它。

我正在运行13.04,它将无法启动-在启动时,它仅显示grub救援提示。

这是一个简单的设置,在/ dev / sda1上只有一个硬盘驱动器,但它甚至不会挂载。

安装程序可以看到该分区,它是ext4,它是引导分区。

但是似乎我无法通过使用Ubuntu活动磁盘进行Ubuntu安装来挽救文件系统,因为它没有指示是否要覆盖全部内容,因此我不想冒险。

我使用backuppc进行了备份,但愚蠢的是我丢失了应急磁盘。我宁愿避免完整安装,然后执行我没有执行经验的还原。

问题的症结在于fsck表示它可以修复所有内容,但实际上并不能修复所有内容,因此下次运行它时,我会得到完全相同的错误消息并修复。

这是输出:

ubuntu@ubuntu:~$ sudo fsck.ext4 -vy /dev/sda1
e2fsck 1.42.8 (20-Jun-2013)
ext2fs_check_desc: Corrupt group descriptor: bad block for block bitmap
fsck.ext4: Group descriptors look bad... trying backup blocks...
Block bitmap for group 0 is not in group.  (block 2553887680)
Relocate? yes

Inode table for group 0 is not in group.  (block 2440124416)
WARNING: SEVERE DATA LOSS POSSIBLE.
Relocate? yes

One or more block group descriptor checksums are invalid.  Fix? yes

Group descriptor 0 checksum is 0x761e, should be 0xcf25.  FIXED.
Block bitmap for group 4352 is not in group.  (block 2553887680)
Relocate? yes

Inode table for group 4352 is not in group.  (block 3731970048)
WARNING: SEVERE DATA LOSS POSSIBLE.
Relocate? yes

Group descriptor 4352 checksum is 0x5eda, should be 0x3da3.  FIXED.
Inode bitmap for group 4353 is not in group.  (block 2785042439)
Relocate? yes

Group descriptor 4353 checksum is 0xd8b1, should be 0xedfb.  FIXED.
Inode bitmap for group 4354 is not in group.  (block 838860807)
Relocate? yes

Group descriptor 4354 checksum is 0x1718, should be 0x0438.  FIXED.
Inode bitmap for group 4355 is not in group.  (block 771751943)
Relocate? yes

Group descriptor 4355 checksum is 0x0bc8, should be 0x4170.  FIXED.
fsck.ext4: e2fsck_read_bitmaps: illegal bitmap block(s) for /dev/sda1

/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****

/dev/sda1: ********** WARNING: Filesystem still has errors **********

ubuntu@ubuntu:~$ 

这与之前的10倍完全相同,并且我敢肯定,接下来的十次我会尝试-校验和和块ID完全相同。任何帮助很高兴收到!

谢谢。

编辑:基本上我猜问题是:该文件系统现在可以在原位修复还是fsck的信息表示我的磁盘已死?如果还没死,那么我在使用fsck进行的操作之外还能做些什么?

编辑:使用tune2fs标识超级块并运行e2fsck -b 01234 / dev / sda1作为fsck的替代方案...无效。

编辑:尝试告诉我该分区是坏的testdisk。...确定testdisk似乎提供的不多。



我基本上没有用fsck.ext4 -vy / dev / sda1覆盖该链接中的内容吗?唯一的区别是'-p'标志,它告诉我只是手动进行-即我在上面剪切并粘贴的内容。
亚当

Answers:


15

最终找到文件系统类型ext4受到抨击的链接,但是在给出了我已经尝试过的所有技巧后,它终于说了做到这一点:

sudo mkfs.ext4 -S /dev/sda1

假设正确猜出了块大小(对于大多数系统而言,默认大小是正确的),这将用正确的数据替换所有超级块。如果需要使用此块,请首先阅读-S 的手册页。不要怪我!

但前提是您感到幸运。

它修复了分区,因此我可以再次读取它。但是,我必须设法fsck修复仍然存在的错误,并将/ etc的内容和许多其他内容转储到/ lost + found中,因此我将必须重新安装并从中还原备份以使其再次运行。


谢谢,有趣。我遇到了我放弃修复的ext2根分区的问题。我测试了该命令,它“有效”(我指定了块大小),但是在fsck必须修复很多扇区之后,分区还是无法启动。现在我想知道unix.stackexchange.com/a/193778/59808会发生什么。
Nemo

2

第一:如果此磁盘上有重要数据,那么这将是进行备份的好时机(实际上是不好的时机)。请参阅数据恢复:对损坏的设备,文件系统或驱动器进行映像。也许您的硬盘快要死了。

第二:看一下:崩溃后如何修复安装数据驱动器?

第三:使用Smartmontools和最终的坏块检查硬盘:(sudo badblocks -vsn /dev/sda这可能需要一些时间,如果您使用的是ssd,请不要这样做)


感谢您的编辑!看着这样的答案蘑菇真有趣。您所指的答案是关于幻数的,这不是我所看到的-实际上,这是我已经查看过的askubuntu的几个答案之一。当我没有其他解决方案时,我也会尝试数据恢复路线。跑了smartmontools简短测试,没有发现任何错误。
亚当

1
抱歉,编辑。因为像ext4这样的现代文件系统很难破解,所以我总是首先考虑硬件故障。当聪明的人说磁盘没问题时,就没必要真的没事。为什么您的fs腐败了?如果我和fsck所在的位置无法修复fs,我将进行全新安装。然后尝试手动修复fs可能会更容易。
内部

好的,不用担心,谢谢您的回答!我不是在讽刺。我完全按照您的意思跟着您。我只需要备份我的系统并尽快运行。在最坏的情况下,交付新硬盘需要3天,因此我想为此找到一个“无需新硬件”的解决方案。
亚当

根据我在下面给出的答案中的链接,显然ext4 并不难破解。但是无所谓。
亚当

具有9个Windows和1个Ubuntu的虚拟主机。主持人倒掉了所有10个。当它恢复时,所有Windows都立即启动。Linux机器显示“意外的提示错误”,并需要手动fsck。自从90年代的Solaris以来,我从未见过如此多的iNode修复程序。这不是硬件,纯粹是断电。我从没想过我会看到NTFS充斥EXT4的那一天。
Brain2000 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.