文件系统结构损坏的 ext4

文件系统结构损坏的 ext4

我的 Debian 服务器上的 ext4 分区被某些东西损坏了。服务器的正常运行时间约为 1700 天,不幸的是 UPS 没有足够的电池来维持一整天的停电。

我在上面运行 Debian sid(太愚蠢了),大约在 systemd 出现的时候,我停止了 apt-get dist-upgrade 的操作。 (更蠢)

断电后,启动进入systemd紧急模式,根本无法挂载驱动器。 (未找到/dev/sdb1)。我尝试 apt-get dist-upgrade 看看它是否可以解决问题,但过了一会儿它失败了,重新启动后我无法再登录,因为 systemd 失败了。过了一会儿,我在启动菜单中找到了 sysvinit,然后就可以启动到 linux 了。 (应该先这样做!doh)

损坏的分区位于 750 GB 硬盘上,用于 /home。应该有大约 100 GB 的已用空间,但报告为 968 MB。

不知何故, / (/dev/sda1) 的根目录结构已被复制到 /home (/dev/sdc1) ???

root@server:/home# ls -lah
ls: cannot access 'run': Input/output error
ls: cannot access 'sys': Input/output error
ls: cannot access 'etc': Input/output error
total 92K
drwxr-xr-x 23 root    root    4.0K Jan 14  2013 .
drwxr-xr-x 23 root    root    4.0K Feb 11 14:23 ..
drwxr-xr-x  2 user2   user2   4.0K Nov  2  2010 bin
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 boot
drwxrwxr-x  3 user2   user2   4.0K Aug 19  2005 dev
d?????????  ? ?       ?          ?            ? etc
drwxr-xr-x  2 user1   user1   4.0K Jan 15  2013 home
lrwxrwxrwx  1 root    root      30 Jan  3  2013 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x 14 root    root    4.0K Jan  9  2013 lib
drwxr-xr-x  2 root    root    4.0K Jan  3  2013 lib64
drwx------  2 root    root     16K Jan  3  2013 lost+found
drwxr-xr-x  2 user1   user1   4.0K May 31  2010 media
drwxr-xr-x  6 user1   user1   4.0K Jan 15  2013 mnt
drwxr-xr-x  2 user1   user1   4.0K Feb  5  2006 opt
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 proc
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 root
d?????????  ? ?       ?          ?            ? run
drwxr-xr-x  4 user3   user3   4.0K Mar 26  2013 sbin
drwxr-xr-x  2 user1   user1   4.0K Jan 15  2013 selinux
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 srv
d?????????  ? ?       ?          ?            ? sys
drwxr-xr-x  3 user4   user4   4.0K Nov 27 23:05 tmp
drwx------  2 user5   user5   4.0K Aug 17  2009 usr
drwx--x--x 13 user2   user2   4.0K Jan 12  2012 var
lrwxrwxrwx  1 root    root      26 Jan  3  2013 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64

(用户名已更改)

这看起来与 / (/dev/sda1) 相同。

但这些文件夹中的文件不应该在它们所在的位置,但可以读取。例如,在“opt”内部有来自我自己的用户目录中某处的jpeg。 “var”内部是来自一位用户的文件和文件夹,几乎完整无缺,具有正确的目录结构和文件名,只是至少在一个地方丢失了文件。

我将分区的 dd 副本复制到另一个硬盘驱动器,然后尝试对其进行 fsck,它显然“修复”了很多问题,但随后无法再安装它。 “文件系统类型错误、选项错误、/dev/sdc1 上的超级块错误、缺少代码页或帮助程序或其他错误。”

我不知道这是怎么发生的,也不知道如何解决它,而且我对它的可能性没有很高的期望。这是我在linux中见过的最奇怪的事情,我最想知道它是怎么发生的。如果我能恢复所有文件,那会让我非常高兴!

我了解 PhotoRec,并计划在无法修复原始目录结构时使用它。

答案1

dd首先,作为备份,使用、gddrescue或其他一些映像实用程序(甚至可以工作)制作分区的副本cp

鉴于这是一个v3.22013 年的内核,尝试从较新的发行版/内核重新启动,然后fsck在受影响的分区上运行较新的版本。较新的发行版的文件实用程序有五年的错误修复和改进,这可能会有所帮助。

相关内容