请 Ubuntu 和数据专家针对这种情况提出任何建议:
我们有一台装有 Ubuntu 12.04 的服务器,其中有 2 个硬盘,采用 RAID1 结构。有一天,系统无法启动,经过一番调查,我们发现并非所有数据都已就位。没有 /home、/bin 和 /var 文件夹
以下是截图来自 Ubuntu Desktop Live CD。有人能解释一下这是怎么发生的吗:
我们用 fsck 检查了硬盘,什么也没发现
Smartmontools 显示第一个硬盘上有大约 200 个扇区需要重新映射,而第二个硬盘上一切正常。
我们尝试使用 TestDisk 恢复数据 - /home、/bin、/var 中没有文件。只有这些文件夹 - /home、/bin、/var 显示为红色(我猜是已删除)(两个硬盘上都一样)
实际上,我们用 TestDisk 在 1 个 HDD 上发现了一个坏块(如下图),但一个坏块怎么会影响超过 32 GB 的数据?那会不会是超级块?
我的问题 -有什么办法可以恢复隐藏的数据吗?有人能告诉我这是怎么发生的吗?是硬件故障还是有人恶意?
更新:Phillip,非常感谢你的回答,
首先,以 root 身份运行 Nautilus 并不允许我们访问任何其他文件。
其次,你是对的,我们/dev/md1
用 Testdisk 进行检查,而不是单个硬盘,因为 Testdisk 不想工作/dev/sda2
或者/dev/sdb2
说这个分区是 raid 阵列的一部分。
第三,我说/bin, /home and /var
在使用 TestDisk 检查 RAID 时显示为红色,但当我尝试进入这些文件夹时(在 TestDisk 中),这些文件夹似乎是空的
第四,这是输出sudo ls -ld /home /var /bin
:
drwxr -xr -x 2 root root 2799 Apr 23 11:41 /bin
drwxr -xr -x 1 root root 60 Aug 9 18:56 /home
drwxr -xr -x 1 root root 120 Apr 23 11:38 /var
但是这个命令检查的不是所需的磁盘,而是我们的虚拟磁盘(我们现在在 Ubuntu Live CD 下工作)
因此,我们修改了这个命令以获取我们想要安装的硬盘,如下所示:sudo ls -ld home var bin etc
ls: cannot access home: No such file or directory
ls: cannot access var: No such file or directory
ls: cannot access bin: No such file or directory
drwxr -xr -x 92 root root 4096 Aug 5 20:31 etc
(我添加etc
到命令中只是为了检查命令是否有效,因为etc
它在我们的硬盘上可用)
答案1
您的第一张截图并不表示数据丢失。“某些内容无法读取”消息表示文件管理器由于文件系统权限而无法读取所有文件的大小,而不是由于文件系统损坏。
sudo du -h /path
以 root 身份或在命令行上运行 nautilus将为您提供所有文件的文件使用情况。
其次,您说文件夹显示为红色。您这是什么意思(它们在哪里显示为红色)?已删除的文件和文件夹根本不显示,所以这不是原因。可能是缺少权限,或者这些目录实际上不是目录,而是缺少目标的符号链接(在这种情况下,ls
例如以红色显示它们)。
为了进一步弄清楚,请粘贴的输出sudo ls -ld /home /var /bin
。
至于读取错误,您说它发生在一个硬盘上,但屏幕截图显示它正在发生/dev/md1
(所以在具有两个磁盘的 raid 上)?通常,文件系统上的一个故障可能会导致数据完全丢失,但这种情况不太可能发生。我认为,如果您小心谨慎,不要过早采取行动,并正确解释所有迹象和消息,您将能够恢复数据。
重要提示:在执行任何操作之前,尤其是更改磁盘上的数据的操作(包括 raid 重新同步、安装、fscks、testdisk 运行等),请对磁盘进行完整的逐位转储!只有这样,您才能安全地进行实验。