Ubuntu 服务器 12.04 上的 RAID1 中的 HDD 上的数据被隐藏或丢失了吗?

Ubuntu 服务器 12.04 上的 RAID1 中的 HDD 上的数据被隐藏或丢失了吗?

请 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 运行等),请对磁盘进行完整的逐位转储!只有这样,您才能安全地进行实验。

相关内容