您可以更改现有阵列上的元数据版本吗?


21

所以grub要求元数据版本为0.90,我想知道是否可以更改现有数组以使用该数组而不是默认值1.2。这样,我不必重新安装。如果是,我该怎么办?

Answers:


5

GRUB维基确认:

另外,(自1.96 + 20080724起)GRUB只能从使用0.90版元数据超级块的RAID(即使用mdadm的--metadata = 0.90选项创建的超级块)引导。

奇怪的是,mdadm手册页

-e,--metadata =

声明要使用的超级块(raid元数据)的样式。--create的默认值为0.90,并猜测其他操作。

我会mdadm -Q -D <device>再次确认。

之后,您正在运行什么RAID级别?我能想到的镜像(RAID 1)的最佳方案是

  1. 进行备份
  2. 卸载数组0
  3. 从阵列0除去设备A n的设备
  4. 设备A上的零超级块
  5. 使用设备A和n-1备用磁盘显式使用旧的超级块格式创建阵列1
  6. 重复通过n-1设备剩余的B
  7. (可选)对数组重新编号

...但是要绝对检查一下,您绝对需要执行此操作!


所以我确认了很久以前 我正在运行raid10,f2。显然,重新创建数组是我要避免的事情。
xenoterracide 2010年

您是否尝试过linux-raid at vger.kernel.org邮件列表?
安德鲁(Andrew)2010年

奇怪的是我没有收到通知。不,我没有尝试。我只是擦掉它并重新创建了数组。我将接受这个答案,并给出一个简短的解决方案,即它不是“否”,或者(非常困难)
xenoterracide 2010年

16

该信息可能为时已晚,无法帮助OP,但也许会对其他人有所帮助。

第一条命令擦除超级块,第二条命令创建一个新阵列,但假定设备是干净的。我刚刚执行了此操作,一切似乎都正常。我绝对会建议在执行此操作之前先进行备份。我没有丢失的数据,因此也没有完整性要检查。我只是想避免再进行4个小时的重新同步。

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90

1
对于OP来说可能为时已晚,但您救了我,感谢您的回答
neofutur 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.