我今天做了一件非常愚蠢的事。现在我只希望找到一个比我更聪明的人。
我有几个热插拔磁盘。由于我下周要对 Ubuntu 12.04LTS 进行截屏直播,所以我想在一个空磁盘上安装一个新副本。我想看看我是否可以使用 VirtualBox 来做到这一点,这样我就可以在完成并完全设置后将主机重新启动到该磁盘。所以我创建了一个指向该磁盘的 VMDK,并具有原始访问权限。效果很好。
然后我想,我不妨先用 Windows 测试一下,因为这样我就可以截屏演示如何从正在运行的 Windows 机器上安装 Ubuntu。安装很顺利。然后我重新启动它,但 Windows 崩溃了。不过,我对此并不感到太惊讶。我一开始真的没想到它会起作用。但它询问是否应该帮我修复启动问题。是的,请帮我解决。它告诉我现在一切都很好,我可以重新启动了。Windows 仍然无法启动,所以我放弃了那个项目并重新启动到 Ubuntu。
Grub 现在显示未知 RAID 级别 -1000000。我无法从主磁盘启动。但我的密钥环上当然有 Ubuntu,所以我从那里启动。安装了 mdadm 并运行mdadm --assemble --scan
。然后它告诉我
ubuntu@ubuntu:~$ sudo mdadm --assemble --scan
mdadm: Devices UUID-00000000:00000000:00000000:00000000 and UUID-c00b1e54:78802534:df92b1b7:9e64ccd8 have the same name: /dev/md1
mdadm: Duplicate MD device names in conf file were found.
更糟糕的是,我无法激活 RAID。这是 1.8TB 的数据,所以我真的不想从备份中恢复。你可以想象,现在所有的输入对我来说都是有价值的。有关设置的更多信息。
我有三个磁盘,每个磁盘 1.5TB。它们的第一个分区都是 RAID 1。这用于启动。它们还有第二个分区,用于 RAID5。这个 RAID5 用于 LVM。
现在,palimpsest 可以正确检测分区。所以我还没有完全绝望。Windows 似乎不太可能损坏第二个分区,磁盘中有数百兆字节?我的假设是它只是在开始时损坏了一些东西。那么问题就变成了我该如何修复它?
我也跑过
ubuntu@ubuntu:~$ sudo mdadm --examine --scan
ARRAY /dev/md1 UUID=00000000:00000000:00000000:00000000
spares=2
ARRAY /dev/md0 UUID=37bc1971:5b00e915:2f3fc100:0972a2ae
ARRAY /dev/md1 UUID=c00b1e54:78802534:df92b1b7:9e64ccd8
看起来并不是完全没有希望,但我有点不知所措。天才们,你们在哪里!:)
答案1
损坏的不是分区,而是元数据。保留 conf 文件是件好事,因为它会告诉您哪些 UUID 对原始安装真正重要。因此,您的任务是保留这些 UUID 并删除其他 UUID,然后祈祷您的数据没有被损坏,元数据也没有被弄乱。
查找man mdadm
元数据操作开关。
顺便提一下,这正是 HW RAID 的价值所在,当使用多个操作系统时,HW RAID 元数据永远不会暴露给主机,它们会得到一个“新磁盘”,而不是一个带有一些元数据的分区的磁盘。所以你刚才遇到的情况不可能发生。
祝你好运,如果你真的遇到困难,你可能想加入 MD 邮件列表并在那里寻求帮助。http://marc.info/?l=linux-raid&r=1&b=201204&w=2