我正在处理有故障的 raid5 设置(3x2TB 磁盘):
Number Start End Size File system Name Flags
1 1049kB 1026MB 1024MB ext3 primary
2 1026MB 6146MB 5120MB ext3 primary
3 6146MB 6147MB 1049kB primary
4 6147MB 6148MB 1049kB primary
5 6148MB 7172MB 1024MB linux-swap(v1) primary
6 7172MB 1992GB 1985GB primary
我在新磁盘上创建了相同的分区表,重新组装前 2 个 Linux 分区没有问题:
mdadm --assemble --run /dev/md1 /dev/sdb2 /dev/sdd2 然后添加我的新磁盘:mdadm --add /dev/md1 /dev/sda2
但是当我首先到达重要的分区(第 6 个数据存储分区)时,它开始抱怨第 3 个磁盘的大小不够大,好吧,我删除了第 3 个磁盘上的交换并创建了一个更大的 /dev/sda5。
在此之后,它拒绝添加它:使用 add 的 mdadm 无法工作并且可能会破坏 /dev/sda5 上的数据-> 我不在乎,因为上面没有任何内容。
我尝试了所有方法,例如:mdadm --assemble --force --run /dev/md6 /dev/sdb6 /dev/sdd6 /dev/sda5
它拒绝重新添加第 3 个磁盘。所以我读到我必须重新创建阵列,我做了以下操作:
mdadm --create /dev/md6 -v -l 5 -n 3 /dev/sdb6 /dev/sdd6 /dev/sda5
它允许这样做,但我强烈地感觉到它现在没有进行任何类型的恢复,而是清除了所有 raid 数据!/proc/mdstat 显示的是:
md6 : active raid5 sda5[3] sdd6[1] sdb6[0]
3876362240 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 4.0% (78723276/1938181120) finish=337.9min speed=91711K/sec
我不知道现在发生了什么,仍然需要等待 337 分钟才能完成。我尝试了 file -s /dev/md6,它没有显示 ext3,而是显示 sticky data。最后我的数据可以访问和恢复吗?
请帮忙!
谢谢
答案1
“看起来您的某些磁盘上的超级块已经损坏,无论怎样组装都无法将阵列重新组合在一起。解决此问题的唯一方法是重新创建阵列的超级块。我知道这听起来很可怕,但 mdadm 足够智能,不会覆盖您的数据。以下是一个例子...”
不是,我只是丢失了所有数据,因为我怀疑它创建了一个新的 RAID 阵列。我知道,在我一开始执行 file -s 时,它显示粘性数据 :( 我丢失了数据。
49bbb20 23 4d 33 4d 33 4d 33 4d 33 4d 33 4d 33 4d 33 4d |#M3M3M3M3M3M3M3M|
049bbb30 33 4d 33 4d 33 4d 33 4d 33 4d 33 4d 31 4d 23 4d |3M3M3M3M3M3M1M#M|
049bbb40 33 4d 33 4d 33 4d 33 4d 33 4d 33 4d 33 4d 33 4d |3M3M3M3M3M3M3M3M|
整个新的md6数组现在充满了这个M3M3M3。