使用 partman 和种子文件在两个驱动器上将 EFI 安装到 Raid 1

使用 partman 和种子文件在两个驱动器上将 EFI 安装到 Raid 1

所以我的问题是,在 Ubuntu 上进行种子安装时,是否可以将 EFI 分区安装到两个驱动器上?这样,如果一个驱动器出现故障,相关的 efi 分区/数据就会出现在第二个驱动器上,并且可以直接从该驱动器启动。或者只能将其安装到第一个驱动器。这是我的工作种子文件,仅将其安装到第一个驱动器,设置 RAID 1 和 LVM。但我想知道如何同时完成这两项工作

d-i     partman-md/device_remove_md                   boolean true 
d-i     partman-lvm/device_remove_lvm                 boolean true
d-i     partman-lvm/confirm                           boolean true
d-i     partman-auto/disk                             string /dev/sda /dev/sdb
d-i     partman-auto/method                           string raid
d-i     partman-auto-lvm/new_vg_name                  string vg0
d-i     partman-auto-lvm/guided_size                  string 90%
d-i     partman-auto/expert_recipe string \
    efi-lvm ::      \
1 1 1 free            \
    $bios_boot{ }       \
    method{ biosgrub }  \
.                       \
256 10 256 fat32        \
    $primary{ }         \
    $lvmignore{ }       \
    method{ efi }       \
    format{ }           \
.\
    20000 30 1000000000 raid    \
    \$lvmignore{ }      \
    \$primary{ }        \
    method{ raid }      \
    .\
    20000 50 400000 ext4    \
    \$defaultignore{ }  \
    \$lvmok{ }      \
    lv_name{ root }     \
    method{ format }    \
    format{ }       \
    use_filesystem{ }   \
    filesystem{ ext4 }  \
    mountpoint{ / }     \
    label{ Root }       \
    .\
    2048 40 2048 swap   \
    \$defaultignore{ }  \
    \$lvmok{ }      \
    lv_name{ swap }     \
    method{ swap }      \
    format{ }       \
    .

d-i     partman-auto-raid/recipe string \
    1 2 0 lvm - /dev/sda2#/dev/sdb2 \
    .
d-i     partman-md/confirm                            boolean true

d-i     partman-partitioning/confirm_write_new_label  boolean true
d-i     partman/choose_partition                      select Finish partitioning and     write changes to disk
d-i     partman/confirm                               boolean true
d-i     partman-md/confirm_nooverwrite                boolean true
d-i     partman/confirm_nooverwrite                   boolean true
d-i     mdadm/boot_degraded             boolean true

我还在 ny seed 文件中进行了下列操作以总结驱动器并删除任何 lvm 位。

 d-i partman/early_command \
      string debconf-set partman-auto/disk "\$(list-devices disk | head -n1)"

d-i partman/early_command string vgs -separator=: -noheadings | cut -f1 -d: | while     read vg ; do vgchange -an \$vg ; done ; pvs -separator=: -noheadings | cut -f1 -d: |     while read pv ; do pvremove -ff -y \$pv ; done

答案1

找到了适合我情况的获胜组合。这会清除所有 Raid/物理分区/LWM 等,因此种子安装从完全干净的状态开始。在多个具有多个分区方案的盒子上进行了测试和确认。

# Disk Partitioning
# Use LVM, and wipe out anything that already exists
d-i partman/early_command string vgs -separator=: -noheadings | cut -f1 -d: | while     read vg ; do vgchange -an \$vg ; done ; pvs -separator=: -noheadings | cut -f1 -d: |     while read pv ; do pvremove -ff -y \$pv ; done

d-i partman/early_command \
     string /bin/dd if=/dev/zero of=/dev/sda bs=512 count=1

d-i partman/early_command \
     string /bin/dd if=/dev/zero of=/dev/sdb bs=512 count=1

# Disk Partitioning

d-i     partman-lvm/device_remove_lvm                 boolean true
d-i     partman-md/device_remove_md                   boolean true
d-i     partman-lvm/confirm                           boolean true
d-i     partman-auto/disk                             string /dev/sda /dev/sdb
d-i     partman-auto/method                           string raid
d-i     partman-auto-lvm/new_vg_name                  string vg0
d-i     partman-auto-lvm/guided_size                  string 90%
d-i     partman-auto/expert_recipe string \
    efi-lvm ::      \
256 10 256 fat32        \
    \$primary{ }         \
    \$lvmignore{ }       \
    method{ efi }       \
    format{ }           \
.\
    20000 30 1000000000 raid    \
    \$lvmignore{ }      \
    \$primary{ }        \
    method{ raid }      \
    .\
    20000 50 400000 ext4    \
    \$defaultignore{ }  \
    \$lvmok{ }      \
    lv_name{ root }     \
    method{ format }    \
    format{ }       \
    use_filesystem{ }   \
    filesystem{ ext4 }  \
    mountpoint{ / }     \
    label{ Root }       \
    .\
    2048 40 2048 swap   \
    \$defaultignore{ }  \
    \$lvmok{ }      \
    lv_name{ swap }     \
    method{ swap }      \
    format{ }       \
    .

d-i     partman-auto-raid/recipe string \
    1 2 0 lvm - /dev/sda2#/dev/sdb2 \
    .
d-i     partman-md/confirm                            boolean true

d-i     partman-partitioning/confirm_write_new_label  boolean true
d-i     partman/choose_partition                      select Finish partitioning and     write changes to disk
d-i     partman/confirm                               boolean true
# d-i     partman-md    partman-md/confirm_nochanges    boolean false
d-i     partman-md/confirm_nooverwrite                boolean true
d-i     partman/confirm_nooverwrite                   boolean true
d-i     mdadm/boot_degraded             boolean true

就这样。它创建了 VG-root 并在两个磁盘上的 raid 1 分区上进行交换,同时在每个磁盘上都有一个适合 EFI 的分区。如有任何问题,请随时提问。我现在对此有了更好的了解,可以回答一些与 Trusty 14.04 LTS 上的 Ubuntu 种子磁盘配置有关的问题

谢谢

相关内容