¿Cómo hacer que Debian RAID 1 esté preestablecido para llenar particiones EFI en ambos discos?

¿Cómo hacer que Debian RAID 1 esté preestablecido para llenar particiones EFI en ambos discos?

La pregunta más similar que encontré:Incursión de software de Ubuntu en efi, ¿cómo arrancar desde la segunda unidad?

Mi situación es que tengo un archivo preconfigurado funcional para la instalación de Debian que configurará mis unidades NVMe en software RAID 1. Ambos discos incluso obtendrán una partición efi (/dev/nvme0n1p1 y /dev/nvme1n1p1). Sin embargo, la partición del segundo disco no se llenará, por lo que en realidad no se puede iniciar si falla el primer disco.

El objetivo de RAID 1 es para escenarios de falla del disco. Si no puedo arrancar desde el segundo disco, es algo inútil para mí.

He descubierto una solución alternativa en la que puedo ejecutar el script de finalización de la instalación:

if [ -d /sys/firmware/efi ] && [ -d /boot/efi/EFI ] && [ -e /dev/nvme1n1p1 ]; then
    mkdir /mnt/efi-disk2
    mount /dev/nvme1n1p1 /mnt/efi-disk2 && cp -narv /boot/efi/EFI /mnt/efi-disk2/
    umount /mnt/efi-disk2
    rmdir /mnt/efi-disk2
fi

Esto funciona; sin embargo, posiblemente me haya perdido una forma mejor/más fácil, ya que parece una funcionalidad básica que debería ser parte del instalador.

¿Hay alguna manera de hacer que esto suceda directamente durante la instalación, por ejemplo, usando otro comando preestablecido u opción de partman que me he perdido?

Porciones relevantes de presemilla:

d-i mdadm/boot_degraded boolean false

d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm boolean true
d-i partman-md/confirm_nooverwrite  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/nvme0n1 /dev/nvme1n1
d-i partman-auto/method string raid
d-i partman-auto/choose_recipe select myrecipe

d-i partman-auto-lvm/guided_size string 100%
d-i partman-auto-lvm/new_vg_name string vg00

d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

d-i partman/choose_partition select Finish partitioning and write changes to disk

d-i partman-partitioning/confirm_write_new_label boolean true

d-i partman-basicfilesystems/choose_label string gpt
d-i partman-basicfilesystems/default_label string gpt
d-i partman-partitioning/choose_label string gpt
d-i partman-partitioning/default_label string gpt
d-i partman/choose_label string gpt
d-i partman/default_label string gpt

d-i partman-auto/expert_recipe string \
myrecipe :: \
    1024 1 1024 free \
            $iflabel{ gpt } \
            method{ efi } \
            format{ } \
        . \
    1024 0 -1 raid \
            $lvmignore{ } \
            $primary{ } \
            method{ raid } \
            format{ } \
        . \
    20480 0 20480 ext4 \
            $defaultignore{ } \
            $lvmok{ } \
            lv_name{ lv_root } \
            method{ format } \
            format{ } \
            use_filesystem{ } \
            filesystem{ ext4 } \
            mountpoint{ / } \
        . \
    20480 0 20480 ext4 \
            $defaultignore{ } \
            $lvmok{ } \
            lv_name{ lv_var } \
            method{ format } \
            format{ } \
            use_filesystem{ } \
            filesystem{ ext4 } \
            mountpoint{ /var } \
        . \
    1024 0 1024 swap \
            $defaultignore{ } \
            $lvmok{ } \
            lv_name{ lv_swap } \
            method{ swap } \
            format{ } \
        . \
    1024 0 1024 ext4 \
            $defaultignore{ } \
            $lvmok{ } \
            lv_name{ lv_tmp } \
            method{ format } \
            format{ } \
            use_filesystem{ } \
            filesystem{ ext4 } \
            mountpoint{ /tmp } \
        .

d-i partman-auto-raid/recipe string \
    1 2 0 lvm - /dev/nvme0n1p2#/dev/nvme1n1p2 \
        .

d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i finish-install/reboot_in_progress note

Respuesta1

En primer lugar déjame agradecerte por tu Preseed. ¡Esto me salvó el trasero! Es realmente difícil encontrar un ejemplo funcional para Raid + LVM.

Entonces, para responder a su pregunta: el estándar EFI no incluye raid. Su forma de copiar estas cosas en la segunda partición EFI es la única forma que conozco y que también uso.

Sin embargo, puede automatizar esto tal vez con un script en grub, de modo que cada vez que grub se actualice al final, pueda copiarlo. por ejemplo: /etc/grub.d/99_copy_efi Aunque todavía necesito probar esto, ya que tengo otros asuntos urgentes en este momento.

información relacionada