mdadm超级块隐藏/遮蔽分区

短版:是否安全

mdadm --zero-superblock /dev/sdd 

在一个分区(dev / sdd1),文件系统和数据的磁盘上? 分区是可挂载的,数据还在那里吗?

更长的版本:我曾经有一个raid6arrays,但决定拆除它。 现在arrays中的磁盘被用作非RAID磁盘。 超级块被清除:

 sudo mdadm --zero-superblock /dev/sdd 

磁盘被fdisk和使用mfks.ext4创build的文件系统重新分区。 所有安装的磁盘,一切工作正常。

今天,几个星期之后,其中一个磁盘在尝试装载磁盘时无法被识别,或者更确切地说是其上的单个分区。

 sudo mount /dev/sdd1 /mnt/tmp mount: special device /dev/sdd1 does not exist 

fdisk声称那里是一个分区:

 sudo fdisk -l /dev/sdd Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb06f6341 Device Boot Start End Blocks Id System /dev/sdd1 1 243201 1953512001 83 Linux 

当然安装是正确的,设备/ dev / sdd1不在那里,我猜udev没有创build它,因为mdadm数据仍然在它上面:

 sudo mdadm --examine /dev/sdd /dev/sdd: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : b164e513:c0584be1:3cc53326:48691084 Name : pringle:0 (local to host pringle) Creation Time : Sat Jun 16 21:37:14 2012 Raid Level : raid6 Raid Devices : 6 Avail Dev Size : 3907027120 (1863.02 GiB 2000.40 GB) Array Size : 15628107776 (7452.06 GiB 8001.59 GB) Used Dev Size : 3907026944 (1863.02 GiB 2000.40 GB) Data Offset : 2048 sectors Super Offset : 8 sectors State : clean Device UUID : 3ccaeb5b:843531e4:87bf1224:382c16e2 Update Time : Sun Aug 12 22:20:39 2012 Checksum : 4c329db0 - correct Events : 1238535 Layout : left-symmetric Chunk Size : 512K Device Role : Active device 3 Array State : AA.AAA ('A' == active, '.' == missing) 

我的mdadm – 零超块显然没有工作。 我可以安全地再试一次而不会丢失数据吗? 如果没有,有什么build议吗? 在启动时不启动mdadm可能是一个(有点不满意)的解决scheme。

在linux raid卷上清零超级块不会触及实际的有效负载。 实际上,有效负载从超级块中偏移了相当多的数量(相当于最近的mdadm中的2048个扇区,并且在mdadm <= 3.0版本中)。

但在你的情况下,(只要你真的做了mfks.ext4 /dev/sdd1 )分区超级块已经空白。 所以解释你所描述的唯一方法就是假设超级块被重新添加,这意味着你的数据已经损坏了(我希望fsck能够在之后纠正它)。

发生什么事情的最可能的场景是,在停止md设备之前,您已经执行了mfks.ext4 /dev/sdd1 。 或者你是这里描述的bug的受害者(就像我一样): 一个令人讨厌的md / raid bug ,它有效地允许Linux在md设备上重新写入位图,这个设备是不活跃的。

所以,简而言之,将超级块置零是无关紧要的。 您应该停止该设备,清除/etc/mdadm/mdadm.conf中描述该设备的部分,然后运行fsck(首先尝试以只读模式执行,以确保实际上有类似于ext4文件系统的内容)设备。

HTH