我有一个带有 6 个 3TB 磁盘的 Debian squeeze 安装。
SW RAID5 上有 4 个分区。
- 首先是 gpart BIOS,
- RAID 1 表示“/”,
- RAID5 用于交换
- 并且最大部分是用于文件的 RAID5。
在构建系统时,所有磁盘都放在打开的机箱上。在此期间,我看到一个磁盘可能会从机箱中掉落,于是我稍微移动了两个磁盘。在执行此操作时,两个磁盘都停止旋转,系统无法运行,并且 RAID 崩溃并出现错误:错误,当缺少 2 个磁盘时无法启动。
mdadm: /dev/md2 assembled from 4 drives and 1 spare
- not enough to start the array."
此时我没有写入操作。我保存了一些信息,并发现磁盘 sdd4 和 sdf4 发生故障,并且我认为 sdd 在 sdf 之前发生故障:
mdadm -E /dev/sda4 /dev/sda4: 魔法:a92b4efc 版本:1.2 特征图:0x0 数组 UUID:e84f0346:3f5ff3f1:507b6f9c:0fa02c63 名称:mfsnode1:2(本地到主机 mfsnode1) 创建时间:2013 年 2 月 5 日星期二 17:44:45 突袭级别:raid5 突袭设备:6 可用开发大小:5842757597 (2786.04 GiB 2991.49 GB) 数组大小:29213772800(13930.21 GiB 14957.45 GB) 已使用设备大小:5842754560 (2786.04 GiB 2991.49 GB) 数据偏移:2048 个扇区 超级偏移:8 个扇区 状态:干净 设备 UUID:4f8851b4:001bf0c0:3aab60e0:b2c5558f 更新时间:2013 年 2 月 5 日星期二 17:44:45 校验和:c0376a50-正确 活动:0 布局:左对称 区块大小:512K 设备角色 :活动设备 0 数组状态:AAAAA。('A' == 活动,'.' == 缺失)
mdadm -E /dev/sdb4
/dev/sdb4: 魔法:a92b4efc 版本:1.2 特征图:0x0 数组 UUID:e84f0346:3f5ff3f1:507b6f9c:0fa02c63 名称:mfsnode1:2(本地到主机 mfsnode1) 创建时间:2013 年 2 月 5 日星期二 17:44:45 突袭级别:raid5 突袭设备:6 可用开发大小:5842757597 (2786.04 GiB 2991.49 GB) 数组大小:29213772800(13930.21 GiB 14957.45 GB) 已使用设备大小:5842754560 (2786.04 GiB 2991.49 GB) 数据偏移:2048 个扇区 超级偏移:8 个扇区 状态:干净 设备 UUID:c2f63fa7:768e9945:64826929:6f1f68c2 更新时间:2013 年 2 月 5 日星期二 17:44:45 校验和:b3ea7d20-正确 活动:0 布局:左对称 区块大小:512K 设备角色 : 活动设备 1 数组状态:AAAAA。('A' == 活动,'.' == 缺失)
mdadm -E /dev/sdc4
/dev/sdc4: 魔法:a92b4efc 版本:1.2 特征图:0x0 数组 UUID:e84f0346:3f5ff3f1:507b6f9c:0fa02c63 名称:mfsnode1:2(本地到主机 mfsnode1) 创建时间:2013 年 2 月 5 日星期二 17:44:45 突袭级别:raid5 突袭设备:6 可用开发大小:5842757597 (2786.04 GiB 2991.49 GB) 数组大小:29213772800(13930.21 GiB 14957.45 GB) 已使用设备大小:5842754560 (2786.04 GiB 2991.49 GB) 数据偏移:2048 个扇区 超级偏移:8 个扇区 状态:干净 设备 UUID:e9861f3e:4de4d0ce:7d4b6dd7:e1215fc7 更新时间:2013 年 2 月 5 日星期二 17:44:45 校验和:86fc2eab-正确 活动:0 布局:左对称 区块大小:512K 设备角色 : 活动设备 2 数组状态:AAAAA。('A' == 活动,'.' == 缺失)
mdadm -E /dev/sdd4
/dev/sdd4: 魔法:a92b4efc 版本:1.2 特征图:0x0 数组 UUID:7b99380e:51d754cf:921c68e9:7b830d6a 名称:mfsnode1:2(本地到主机 mfsnode1) 创建时间:2013 年 2 月 5 日星期二 17:06:37 突袭级别:raid5 突袭设备:6 可用开发大小:5842757597 (2786.04 GiB 2991.49 GB) 数组大小:29213772800(13930.21 GiB 14957.45 GB) 已使用设备大小:5842754560 (2786.04 GiB 2991.49 GB) 数据偏移:2048 个扇区 超级偏移:8 个扇区 状态:干净 设备 UUID:0da58625:14ed8675:6a7c4ba4:337d8c4b 更新时间:2013 年 2 月 5 日星期二 17:06:37 校验和:5f97164a-正确 活动:0 布局:左对称 区块大小:512K 设备角色 : 活动设备 5 数组状态:AAA.AA('A' == 活动,'.' == 缺失)
mdadm -E /dev/sde4
/dev/sde4: 魔法:a92b4efc 版本:1.2 特征图:0x0 数组 UUID:e84f0346:3f5ff3f1:507b6f9c:0fa02c63 名称:mfsnode1:2(本地到主机 mfsnode1) 创建时间:2013 年 2 月 5 日星期二 17:44:45 突袭级别:raid5 突袭设备:6 可用开发大小:5842755584 (2786.04 GiB 2991.49 GB) 数组大小:29213772800(13930.21 GiB 14957.45 GB) 已使用设备大小:5842754560 (2786.04 GiB 2991.49 GB) 数据偏移:2048 个扇区 超级偏移:8 个扇区 状态:干净 设备 UUID:b70cd4f6:1594cc29:b4346929:89a5ed34 更新时间:2013 年 2 月 5 日星期二 17:44:45 校验和:5a36c944-正确 活动:0 布局:左对称 区块大小:512K 设备角色 : 活动设备 4 数组状态:AAAAA。('A' == 活动,'.' == 缺失)
mdadm -E /dev/sdf4
/dev/sdf4: 魔法:a92b4efc 版本:1.2 特征图:0x0 数组 UUID:e84f0346:3f5ff3f1:507b6f9c:0fa02c63 名称:mfsnode1:2(本地到主机 mfsnode1) 创建时间:2013 年 2 月 5 日星期二 17:44:45 突袭级别:raid5 突袭设备:6 可用开发大小:5842755584 (2786.04 GiB 2991.49 GB) 数组大小:29213772800(13930.21 GiB 14957.45 GB) 已使用设备大小:5842754560 (2786.04 GiB 2991.49 GB) 数据偏移:2048 个扇区 超级偏移:8 个扇区 状态:干净 设备 UUID:06202661:79792af2:6c8d02ae:769bdded 更新时间:2013 年 2 月 5 日星期二 17:44:45 校验和:ca70109c-正确 活动:0 布局:左对称 区块大小:512K 设备角色 : 活动设备 3 数组状态:AAAAA。('A' == 活动,'.' == 缺失)
我认为超级块没问题,块大小相同,所有其他参数看起来也不错。之后我开始测试一些变体:
测试1: mdadm --create --level 5 -n 6 --chunk=512 --assume-clean /dev/md2 \ /dev/sd{a,b,c,d,e,f}4 -> 文件大小为 708MB,共 20603326 行,最后由 e2fsck 取消 - 超级块或分区表损坏 - 组或描述符的校验和错误 - 大量无效的 inode - 由于 inode 中存在大量非法块而被取消
测试2:
mdadm --create --level 5 -n 6 --chunk=512 --assume-clean /dev/md2 /dev/sd{a,b,c,d,e}4 \ 丢失的 -> 文件大小为 1.3GB,共 37614367 行,最后由 e2fsck 取消 - 回到原始超级块 - 开头有坏的超级块或损坏的分区表 - 大量无效的 inode - 取消 inode 迭代
测试3:
mdadm --create --level 5 -n 6 --chunk=512 --assume-clean /dev/md2 /dev/sd{a,b,c}4 \ 缺少 /dev/sd{e,f}4 -> 文件大小为 1,4GB,共 40745425 行,最后由 e2fsck 取消 - 错误参见 test2 - 读取下一个 inode 时出现读取错误
测试4:
mdadm --create --level 5 -n 6 --chunk=512 --assume-clean /dev/md2 \ /dev/sd{a,b,c,f,e,d}4 ->文件大小为 874MB,共 25412000 行,最后被 e2fsck 破坏 - 尝试原始超级块 - 超级块损坏或分区表损坏 - 比大量的校验和无效的组描述符 - 最后 inode 中的非法块太多,inode 中的无效块太多
测试5:
mdadm --create --level 5 -n 6 --chunk=512 --assume-clean /dev/md2 /dev/sd{a,b,c}4 \ 缺少 /dev/sd{e,d}4 -> 文件大小为 1.6GB,共 45673505 行,最后由 e2fsck 取消
测试6:
mdadm --create --level 5 -n 6 --chunk=512 --assume-clean /dev/md2 /dev/sd{a,b,c,f,e}4 \ 丢失的 - 尝试原始超级块 - 超级块损坏或分区表损坏 - 组描述符中存在大量校验和错误 - 以 inode 表与另一个文件系统块发生冲突而告终 -> 文件大小为 542MB,共 15727702 行,最后由 e2fsck 取消
Teset6 看起来是最好的,但是您觉得怎么样,或者我还能做什么呢?
我认为最好的可能是最后一个,但我绝对不确定。
请帮助进一步调查并希望恢复我的数据。
答案1
如果您的 RAID 5 阵列中丢失了两个驱动器,那么在 RAID 阵列级别上是无法恢复的,因为阵列已经丢失。您需要尝试让驱动器重新工作,但这不太可能。有一些驱动器恢复工具,例如 R-Studio,您可能会有一点运气。但最有可能的是,您需要将磁盘送到可以进行盘片恢复的取证店。然而,这非常昂贵。