[gelöst] Wie zweite Platte eines RAID1 bootfähig machen?

  • Mein VDR hat das System (openSUSE 15.0) auf einem RAID1 und benutzt grub2 als Bootmanager.

    Jede der beiden Platten hat auch eine EFI-Partition, wobei nur die von der ersten Platte als /boot/efi gemountet ist.

    Die EFI-Partition der zweiten Platte ist leer.


    Ich möchte nun vorsorgen für den Fall, dass die erste Platte total ausfällt. Wie kann ich sicherstellen, dass das System auch dann noch bootet (von der zweiten Platte)?

    Irgendwie muss ich wohl die EFI-Partition der zweiten Platte füllen. Aber reicht es, den Inhalt der ersten Platte einfach zu kopieren?

    Und was ist mit dem Bootsektor? Gibt's den bei EFI überhaupt noch?

    Und der fstab-Eintrag


    UUID=6F85-BE57 /boot/efi vfat defaults 0 0


    lässt auch nichts Gutes ahnen, denn die EFI-Partition der zweiten Platte wird wohl eine andere UUID haben, oder?

  • Das sieht bei mir so aus:

    Code
    /dev/sda2: UUID="7a610577-853f-c248-d243-79d51da1fe49" UUID_SUB="4d846d9c-ab7b-17d4-f520-9b3e8cabc6d0" LABEL="any:os2" TYPE="linux_raid_member" PARTUUID="d036fe86-69fd-461e-8822-21e247162cc4"
    /dev/sda6: LABEL="EFI" UUID="6F85-BE57" TYPE="vfat" PARTUUID="7c8229eb-be8e-460d-9a48-325290ad892a"
    /dev/sdb2: UUID="7a610577-853f-c248-d243-79d51da1fe49" UUID_SUB="4811e112-474d-c335-b40a-587ef5e9c7e8" LABEL="any:os2" TYPE="linux_raid_member" PARTUUID="d036fe86-69fd-461e-8822-21e247162cc4"
    /dev/sdb6: UUID="1FAD-3B12" TYPE="vfat" PARTUUID="f58bc054-62a4-4cd3-91ca-0f742a39026d"
    /dev/md127: LABEL="SUSE15.0" UUID="7c926639-31fd-45cf-9761-dbf78747d11c" TYPE="ext4"

    Die Partitionen sd[ab][1,3-5] sind unbenutzt.

  • Die boot/efi Partition der zweiten Platte hat wohl die uuid 1FAD-3B12.


    Theoretisch solltest du die uuids in der Platte in der fstab durch /dev/sd[ab][123456] ersetzen können.

  • Oder man arbeitet mit LABELs. Die können bei beiden Platten auch gleich sein. Ob das aber mit EFI funktioniert, hab ich noch nicht probiert.

  • Man kann die Platte auch so einrichten das man nur "umstecken" muss, hab ich schon öfters gemacht.


    Die blkid der vorhandenen Platte ermitteln: https://wiki.ubuntuusers.de/blkid/


    Dann die uuid der neuen Platte zuweisen: https://wiki.ubuntuusers.de/UUID/


    Bei ext geht das mit tune2fs -U NEUER_UUID /dev/sdxX

    Gruß utiltiy



    VDR Projects

  • Das Problem ist wohl weniger der fstab-Eintrag, denn der greift eh erst, nachdem das System gebootet hat und das RAID1 gestartet ist.


    Was mich hauptsächlich beschäftigt ist, wie ich die zweite Platte dazu bringe, ohne weiteres Zutun nach einem Totalausfall der ersten Platte zu booten.

  • Zu MBR-Zeiten ging das noch, indem mit LABEL gearbeitet wurde und der Grub auf beide Platten installiert wurde.

    Aber so ein "Totalausfall" einer Platte ohne den Bus erstmal zu blockieren, ist ohnehin eine Seltenheit - in der Praxis wird es ohne Abstecken (und Umstecken) der kaputten Platte nicht gehen, außer man hat 2 Controller am Board.

  • Da gibt es wohl 2 Möglichkeiten:


    1. mit efibootmgr die 2.Platte mit hinzufügen:

    www.thomas-krenn.com/de/wiki/Ubuntu_Software_RAID_mit_redundanten_UEFI_Boot_Einträgen


    2. die uefi boot Partition als raid1 ausführen:

    askubuntu.com/questions/66637/can-the-efi-system-partition-be-raided

    Hier ist der Hinweis wichtig, das raid1 mit Metadata ver. 1.0 zu erzeugen.

    Das hatte ich längere Zeit so, allerdings mit MBR, im Einsatz.

    VDR 2.6.8: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.10 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Zum Abschluss für alle, die auch so ein Setup haben:


    Nach den Aktionen


    umount /boot/efi

    mkfs.vfat /dev/sdb6

    parted /dev/sdb set 1 boot on

    mount /dev/sdb6 /boot/efi

    grub2-install --bootloader-id opensuse2 /dev/sdb

    umount /boot/efi

    mount /boot/efi


    habe ich den PC ausgeschaltet, /dev/sda abgesteckt und neu gebootet.

    Das System startete, wartete aber auf die fehlende Partition /dev/sda6, weil diese ja in /etc/fstab eingetragen ist.

    Nach Timeout (1.5 Minuten) wurde fertig gebootet. Nachdem ich die /boot/efi-Zeile in /etc/fstab auskommentiert hatte, erfolgte ein weiterer Reboot problemlos. Ich gehe davon aus, dass eine Anpassung der UUID für den Mount von /boot/efi diesen wieder ermöglichen wird, habe das aber nicht explizit getestet.


    Nachdem ich /dev/sda wieder angesteckt und mit mdadm die System-Partition wieder zum RAID hinzugefügt habe, ist alles wieder wie vorher.


    Fazit: Um bei einem RAID1-System mit separater EFI-Partition sicherzustellen, dass man nach Ausfall der Platte, von der gebootet wird, nicht ohne bootfähiges System dasteht, sollte man obige Aktion durchführen (Disk-Namen und Partitions-Nummern natürlich entsprechend anpassen!).

  • Das System startete, wartete aber auf die fehlende Partition /dev/sda6, weil diese ja in /etc/fstab eingetragen ist.

    Nach Timeout (1.5 Minuten) wurde fertig gebootet.

    Falls man nicht so lange warten will, kann man den Wert auch anpassen: x-systemd.mount-timeout=

    Für nicht-essentielle Datenträger kann es ggf. Sinn machen nofail zu setzen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!