重新使用预先安装的现有RAID

我试图自动化现有的Ubuntu安装的重新安装过程。

分区布局:

  • md0(raid1,/ dev / sda1#/ dev / sdb1) – swap(2G)
  • md1(raid1,/ dev / sda2#/ dev / sdb2) – /(20G)
  • md2(raid1,/ dev / sda3#/ dev / sdb3) – PV(剩余空间)

我想要完成的是:

  • 如果存在,重用现有的RAID

最重要的是将数据保留在现有的PV上。 我能够通过在lvm.conf中设置一个filter来排除所有块设备,因此禁用了ergo lvm支持。

问题是,安装后,我不得不重新创build/ dev / md / 2,希望数据是完整的。

预configuration部分是:

di partman/early_command string sed 's/filter\ =\ \[\ "a\/.*\/\"\ \]/filter\ =\ \[\ "r\/.*\/\"\ \]/g' -i /etc/lvm/lvm.conf di partman-auto-raid/recipe string \ 1 2 0 swap - /dev/sda1#/dev/sdb1 .\ 1 2 0 ext3 / /dev/sda2#/dev/sdb2 . di partman-auto/expert_recipe string \ multiraid :: \ 2000 10 2000 raid $primary{ } method{ raid } format{ } .\ 20000 11 20000 raid $primary{ } method{ raid } format{ } . \ 20000 12 2000000 raid $primary{ } method{ keep } . 

也许还有其他更确定性的方法来解决这个问题?

Ubuntu论坛有一些late_command的例子,这个例子是基于一个的。 但首先,两点:

1)自动安装,强制格式化一个文件系统,同时保留另一个文件系统是固有危险的。 如果在继续之前不备份,则会丢失数据。 “也许不是今天,也许不是明天,而是很快,而且终生。” 😉

2)重新创build/ dev / md2实际上是最安全的部分。 这是一个mdadm镜像RAID,除了两个同时出现的硬盘故障,您的数据是完好无损的。

无论如何,你应该可以做这样的事情来获得/ dev / md2重build和安装在你想要的地方:

 di preseed/late_command string \ in-target sed 's/^ARRAY/#&/g' -i /etc/mdadm/mdadm.conf; \ in-target mdadm --detail --scan >> /etc/mdadm/mdadm.conf; \ in-target mkdir /md2; \ in-target echo '/dev/md2 /md2 ext3 defaults 0 0' >>/etc/fstab; 

我将testing我的解决scheme,并添加一个评论与我的结果,我正在为14.04 LTS的preseedconfiguration。