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/sda2
und /dev/sdb2
in RAID1 und normalerweise wird es in gemountet /boot
. Sie haben ein UUID="b45...
und werden /dev/md1
mit einem zu einem zusammengesetzt UUID="436...
. Während /dev/sda3
und /dev/sdb3
in 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/md2
UUID="d0d...
d0d...
Ich habe auf Live-USB gebootet und ausgeführt blkid
und das Array war da. Also habe ich die Arrays gemountet, proc
, sys
, dev
, und und boot
. Ich habe nachgesehen /etc/mdadm.conf
und gesehen, dass alle ARRAY
Zeilen 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 chroot
mich angemeldet.
Ich habe dann nachgesehen /etc/mkinitcpio.conf
und festgestellt, dass es mdadm_udev
in 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_udev
Hook 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 blkid
in 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=2
mit 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-1
und 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 chroot
ich es geladen und ausgeführt habe mkinitcpio
, weil ich die Einstellungen in Grub überprüfen wollte. Das initramfs
Image, das ich erstellt habe, mdadm
befand sich also auf einem RAID-Array. Derjenige, initramfs
der geladen wurde, hatte keine Ahnung davon mdadm
und erstellte das Array daher nicht.
Die Lösung bestand mkinitcpio
darin, es auszuführen chroot
, OHNE ein Array zu mounten /boot
.