Booten vom RAID-Array ist nach dem Update nicht mehr möglich

Booten vom RAID-Array ist nach dem Update nicht mehr möglich

Ich habe mein System kürzlich aktualisiert und nach einem Neustart erhalte ich Folgendes:

ERROR: device ‘UUID=...’ not found. Skipping fsck.
mount: /new_root: can’t find UUID=...
You are now being dropped into an emergency shell.

Mein Root-Dateisystem befindet sich auf einem RAID-Array. Beim Ausführen blkidüber die Notfall-Shell wird angezeigt, dass das Array nicht aufgeführt ist.

Ich habe /dev/sda2und /dev/sdb2in RAID1 und normalerweise wird es in gemountet /boot. Sie haben ein UUID="b45...und werden /dev/md1mit einem zu einem zusammengesetzt UUID="436.... Während /dev/sda3und /dev/sdb3in RAID0 normalerweise in gemountet sind /. Sie haben ein und werden mit einem zu einem UUID="8dc...zusammengesetzt . Der Fehler beim Booten ist die Suche nach ./dev/md2UUID="d0d...d0d...

Ich habe auf Live-USB gebootet und ausgeführt blkidund das Array war da. Also habe ich die Arrays gemountet, proc, sys, dev, und und boot. Ich habe nachgesehen /etc/mdadm.confund gesehen, dass alle ARRAYZeilen auskommentiert waren, also habe ich ausgeführt:

# mdadm --detail --scan >> /mnt/etc/mdadm.conf

Ich habe überprüft, ob die UUIDs mit den beiden Partitionen übereinstimmen, die ich in den Arrays ( b45...und 8dc...) verwende. Dann habe ich chrootmich angemeldet.

Ich habe dann nachgesehen /etc/mkinitcpio.confund festgestellt, dass es mdadm_udevin der Einstellung fehlte HOOKS. Also habe ich es erneut hinzugefügt.

Von dort aus habe ich Folgendes versucht, gefolgt von einem Neustart:

# pacman -S linux
# mkinitcpio -p linux
# mkinitcpio -P

Ich kann für jeden sehen, wie der mdadm_udevHook erstellt wird, und es wird mir Folgendes mitgeteilt:

Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays

Aber beim Neustart erhalte ich den gleichen Fehler und die Verwendung blkidin der Notfall-Shell zeigt, dass meine RAID-Arrays nicht aufgelistet sind (aber die Partitionen, aus denen sie bestehen, sind da und die UUIDs stimmen mit denen überein, die darin stehen mdadm.conf).

Ich habe auch den Kernel-Parameter raid0.default_layout=2mit demselben Ergebnis hinzugefügt. Er war vorher nie da, aber das Wiki scheint anzuzeigen, dass ich ihn brauche.

Das Linux-Paket lautet linux-5.12.6.arch1-1und vor dem FEHLER beim Booten wird mir Folgendes angezeigt:

Starting version 248.3-2-arch

Was übersehe ich, das dazu führt, dass das Array beim Booten nicht zusammengestellt wird?

Antwort1

Ich habe immer noch keine Ahnung, was das Problem überhaupt verursacht hat. Aber die Lösung war kinderleicht und ich fühle mich dumm.

Das Problem war, dass ich Folgendes ausgeführt hatte:

# mount /dev/md1 /mnt/boot

vom Live-USB, bevor chrootich es geladen und ausgeführt habe mkinitcpio, weil ich die Einstellungen in Grub überprüfen wollte. Das initramfsImage, das ich erstellt habe, mdadmbefand sich also auf einem RAID-Array. Derjenige, initramfsder geladen wurde, hatte keine Ahnung davon mdadmund erstellte das Array daher nicht.

Die Lösung bestand mkinitcpiodarin, es auszuführen chroot, OHNE ein Array zu mounten /boot.

verwandte Informationen