发生这种情况的计算机有一个 40GB 的启动驱动器(Debian)和两个非启动驱动器。
我有两个相同的 1.5TB 驱动器(每个驱动器一个分区),其中一个驱动器上有数据(另一个驱动器是空的)。所以我运行“dd”将一个驱动器克隆到另一个驱动器,然后我就有两个相同的驱动器了。然后我想在 Debian 中构建一个软件 RAID 阵列,所以我用一个磁盘创建了它,并将另一个磁盘标记为“丢失”。添加了第二个磁盘,并让它同步。现在,在新阵列上安装并运行“ls”,我得到:
# ls
lost+found
使用fdisk /dev/md0
我得到:
Disk /dev/md0: 1500.2 GB, 1500164849664 bytes
2 heads, 4 sectors/track, 366251184 cylinders, total 2930009472 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
Disk /dev/md0 doesn't contain a valid partition table
现在,我不完全相信我的所有数据都“消失了”,因为我从未格式化过数组,但如果什么也做不了,我会把我的“恐慌”留到明天。
我该如何继续?
答案1
很抱歉,但很可能您已经对两个磁盘进行了保护,因为看起来您在其上创建了一个文件系统md0
。
为了以防万一,请尝试一下:
mdadm --stop /dev/md0
然后分别挂载每个成员分区(例如sdb1
)sdc1
并查看任一磁盘上是否有原始文件系统。
我知道有点晚了,但正确的做法是:
0)备份
1)仔细检查备份是否成功且数据完整性得到保留
2)使用空(或可破坏)磁盘(或分区)+ 创建 RAID missing
。 该磁盘或分区上的数据将被销毁。
3)在新的 RAID 卷上创建文件系统。
4) 将现有文件从原始磁盘复制到 RAID 卷。
5)将原始磁盘或分区添加到 RAID 卷来代替missing
。 原始磁盘或分区上的数据将被破坏。
由于您事先已克隆了分区,因此在上述步骤中,使用哪个磁盘作为“原始”或“空”都无关紧要。
答案2
如果您想使用 RAID,则一开始就需要格式化磁盘。您没有说明如何创建 RAID 阵列,但如果您使用已有数据的磁盘实例化它,则会丢失数据。
由于您以ls
某种方式在阵列上使用(您是否将整个 RAID 设备挂载为 ext3 分区?),因此它上面有一个文件系统。如果您没有格式化它,情况就不会如此。
RAID1(与任何 RAID 级别一样)除了卷上的镜像数据外还包含元数据。仅拥有两个相同的卷不足以创建 RAID 阵列。