使用 mdadm 进行 NAS Raid 5 恢复:卷和挂载问题,请帮忙

使用 mdadm 进行 NAS Raid 5 恢复:卷和挂载问题,请帮忙

您好,这是我第一次接触 ubuntu,或者任何形式的 Linix,也是我第一次尝试恢复丢失的 raid,但我学得很快。我有一个 8TB 的 WD Sharespace,四个 2TB 的驱动器设置在 Raid 5 上,其中两个驱动器“故障”(可能不是)。我迫切希望恢复我的数据。除了所有的音乐、电影和游戏等,我所有的照片和我孩子成长过程中的家庭视频都在这个东西上,我非常渴望恢复它们。除了喜欢自己做事情,我负担不起专业的数据恢复。我没有备份驱动器来复制我的原件,也买不起,所以我只能尝试用原始磁盘自己做这件事。任何帮助都非常感谢。

请原谅我解释过多,因为我不确定什么是相关的,什么是不相关的,因为我正在尝试弄清楚。我相信我的 NAS 中的控制器已发生故障,但驱动器上的数据实际上仍然完好无损。我已将所有四个驱动器从 NAS 中取出并将它们按顺序放在我的电脑中,断开了我的普通硬盘,并使用 Live CD 尝试运行 Ubuntu。到目前为止,我一直在尝试使用本指南执行此操作:如何恢复 Sharespace Raid 5 数据,但我遇到了一些障碍,整个论坛都关闭了,所以我无法在那里提问。

我做的第一件事是将自己设置为 root 用户,并检查以确保所有驱动器都位于正确的位置并被识别。使用 fdisk -l

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      417689      208844+  fd  Linux raid autodetect
/dev/sda2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sda3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sda4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      417689      208844+  fd  Linux raid autodetect
/dev/sdb2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sdb3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sdb4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      417689      208844+  fd  Linux raid autodetect
/dev/sdc2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sdc3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sdc4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1      417689      208844+  fd  Linux raid autodetect
/dev/sdd2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sdd3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sdd4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

我真的不知道我在寻找什么,但没有看到任何发出危险信号的东西,它们对我来说看起来都很完好和健康,所以我继续尝试从 sd*4 分区组装 raid,这些分区应该是包含重建 raid 的数据的分区。

我试过:

mdadm --assemble /dev/md0 /dev/sda4 /dev/sdb4 /dev/sdc4 /dev/sdd4

但是我收到有关 2 个驱动器不够的错误,因此开始搜索互联网并了解到有一个强制命令,所以我使用了它:

mdadm --assemble --force /dev/md0 /dev/sda4 /dev/sdb4 /dev/sdc4 /dev/sdd4

看起来这很有效。耶!... 有点...

vgscan

No volume groups found

嘘... 回到互联网上,我发现了一篇帖子,有人遇到了类似的问题,必须重新创建他们的卷和本地组才能成功访问他们的数据。使用我使用的指南中的卷组和本地组的名称,我使用我找到的新命令创建了它们:

vgcreate vg0 /dev/md0

lvcreate -L5.45T -n lv0 vg0

两者都声称已经创建,一切似乎都很美好。直到我回到我的指南并尝试安装它:

mkdir /mnt/raid
mount -t auto /dev/vg0/lv0 /mnt/raid
mount: you must specify the filesystem type

显然“自动”并不像指南中说的那样有效。在网上搜索后,我发现了几个文件系统类型 ext3 和 ext 4,所以我也尝试了它们:

mount -t ext3 /dev/vg0/lv0 /mnt/raid
mount: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-lv0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

mount -t ext4 /dev/vg0/lv0 /mnt/raid
mount: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-lv0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

正如您所见,这两种方法都不起作用……经过几个小时的搜索,我得出结论,我真的需要寻求帮助。如果有人有任何建议或意见,或者甚至知道如何做到这一点,我将不胜感激。如果我做错了什么,知道这一点也会很好。

我想这可能也很有用:

mdadm --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Thu Dec 10 05:44:29 2009
     Raid Level : raid5
     Array Size : 5854981248 (5583.75 GiB 5995.50 GB)
  Used Dev Size : 1951660416 (1861.25 GiB 1998.50 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Thu Apr  4 08:12:03 2013
          State : clean, degraded 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : dd69553d:5c832cf7:9755c9c8:d208511e
         Events : 0.3986045

    Number   Major   Minor   RaidDevice State
       0       8        4        0      active sync   /dev/sda4
       1       8       20        1      active sync   /dev/sdb4
       2       8       36        2      active sync   /dev/sdc4
       3       0        0        3      removed

还有这个:

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sda4[0] sdc4[2] sdb4[1]
      5854981248 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]

unused devices: <none>

在尝试了所有这些之后,我的 fdisk -l 现在如下所示:

fdisk -l

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      417689      208844+  fd  Linux raid autodetect
/dev/sda2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sda3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sda4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      417689      208844+  fd  Linux raid autodetect
/dev/sdb2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sdb3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sdb4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      417689      208844+  fd  Linux raid autodetect
/dev/sdc2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sdc3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sdc4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1      417689      208844+  fd  Linux raid autodetect
/dev/sdd2          417690     2506139     1044225   fd  Linux raid autodetect
/dev/sdd3         2506140     2923829      208845   fd  Linux raid autodetect
/dev/sdd4         2923830  3907024064  1952050117+  fd  Linux raid autodetect

Disk /dev/md0: 5995.5 GB, 5995500797952 bytes
2 heads, 4 sectors/track, 1463745312 cylinders, total 11709962496 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 196608 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/mapper/vg0-lv0: 5992.3 GB, 5992339210240 bytes
255 heads, 63 sectors/track, 728527 cylinders, total 11703787520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 196608 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg0-lv0 doesn't contain a valid partition table

请记住,我对此还很陌生,因此如果您能提供一些建议,并说明您提出建议的原因,我将不胜感激。这将帮助我更好地理解我正在做的事情。谢谢!

答案1

从您提供的信息来看,我认为您说的可能没错,您的绝大部分数据都完好无损。此时,您面对的是损坏的 RAID 阵列。显然这不是您想要的结果,但也不是世界末日。

根据我使用 ShareSpace 设备的经验,通常一个驱动器会在 RAID 实际崩溃之前很久就从阵列中掉线。Linux 软件 RAID 系统会检测到第一个驱动器故障并将阵列切换到降级模式。这意味着阵列继续运行,但只使用剩余的三个好驱动器。一段时间内,一切似乎都运行正常,直到第二个驱动器从阵列中掉线。然后 RAID 崩溃,您就会遇到问题。

这些驱动器丢失数据是有原因的。通常是坏扇区。幸运的是,恢复通常是可能的。但您需要谨慎行事,因为任何失误都会降低数据恢复的机会。

如果您想独自行动,我建议您在继续操作之前先备份映像。我知道使用四个 2TB 驱动器说起来容易做起来难。但您实际上只需要备份其中三个:/dev/sda、/dev/sdb 和 /dev/sdc。

或者如果您需要帮助,我是一名在线数据恢复顾问。我通过互联网为全球客户执行远程 NAS/RAID 数据恢复。过去,我曾执行过许多成功的远程 WD ShareSpace 数据恢复操作。我提供远程数据恢复和自行恢复数据帮助。如果您愿意,我很乐意为您提供帮助。通过我的网站联系我。我的名字是 Stephen Haran,我的网站是http://www.FreeDataRecovery.us

答案2

更新:多亏 Stephen,我的所有数据都得以恢复。如果有人需要任何数据恢复方面的帮助,我强烈推荐他的服务。http://www.FreeDataRecovery.us

相关内容