Ich bin nachher auf das Problem gestoßen Upgrade meines Systems über pacman -Syu
.
Während des Upgrades trat ein Python-Paketkonflikt auf, der dazu führte, dass die Upgrade-Transaktion abgebrochen wurde. Also habe ich den Konflikt gelöst: Entfernen des Python-Pakets durch pip uninstall pkg_name
und erneutes Versuchen pacman -Syu
. Diesmal keine Fehler mehr.
Dann habe ich mein System neu gestartet und das Problem ist aufgetreten:
Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring starting version 239 /dev/nvme0n1p2: clean, 968023/31227904 files, 27066236/124895569 blocks mount: /new_root: unknown filesystem type "ext4" You are now being dropped into an emergency shell, sh: can"t access tty: job control turned off [rootfs] #
Übrigens: Als Warnung zeigt ich an hat Kernel 4.18 auf 4.19 aktualisiert.
Kommentare
- Bearbeiten Sie Ihre Frage mit der Ausgabe von
pacman -Q linux && uname -r
. - @jasonwryan Entschuldigung, ich kann ' es nicht schaffen. Seit dem letzten Neustart kann ich mich nicht mehr in meinem System anmelden, das durch die oben angegebene
Warning
blockiert ist. Ich erinnere mich jedoch, dass ich vor dem letzten Neustartuname -r
ausgeführt habe und die Ausgabe-Kernel-Version immer noch 4.18.xxx - war. Sie müssen sich einschalten, stellen Sie sicher, dass
/
und/boot
werden gemountet und installieren dann Linux neu.
Antwort
Wenn das Update abgebrochen wurde und der Kernel gerade aktualisiert wird, haben Sie wahrscheinlich noch die Initramfs des alten Kernels in Ihrem /boot
während der Installation des neuen Kernels, der das Booten verhindern kann. Dies kann auch auf einem frisch installierten System passieren, wenn Sie vergessen haben, die Partition /boot
ordnungsgemäß zu mounten.
Der einfachste Weg, dies zu beheben, besteht darin, mit einem Archlinux zu booten Installationsmedium, führen Sie ein chroot
aus und installieren Sie den Kernel mit pacman
# mount /dev/yourrootdisk /mnt # mount /dev/yourbootdisk /mnt/boot # if needed # mount /dev/yourefipartition /mnt/boot/EFI # if you use EFI (optionnal) # arch-chroot /mnt # pacman -S linux
neu
Die Dateien, die geändert werden sollten, sind /boot/initramfs-linux.img
und /boot/initramfs-linux-fallback.img
, sodass Sie die EFI-Partition wahrscheinlich nicht mounten müssen
Wenn Sie pacman
aus irgendeinem Grund nicht verwenden können, können Sie mkinitcpio
auch manuell starten, um die zu verwendenden initramfs neu zu generieren Der neue Kernel
Kommentare
- Ihre Antwort ist korrekt, aber bitte raten Sie nicht den Leuten,
-Sy $package
, es ist ein schrecklicher Rat und führt nur zum Bruch . - in der Tat guter Punkt, bearbeitet
- @Fredszaq Vielen Dank für Ihre Antwort, es hat mich vor s gerettet erious Ärger. Trotzdem verstehe ich ' nicht ganz, was in meinem Fall schief gelaufen ist, da der Befehl
pacman -Syu
ohne Konflikte ausgeführt wurde, bevor ich nicht booten konnte . Vielleicht stimmt etwas mit meinem Setup nicht. Wenn Sie können, überprüfen Sie bitte mein pacman.log und sagen Sie mir, ob mir ' etwas fehlt? Link zur Datei für den Fall, dass Sie können: ix.io/2s1w
Antwort
Der Text can"t access tty: job control turned off
ist nur eine Benachrichtigung der Shell, dass die Jobsteuerung nicht funktioniert. Dies bedeutet, dass Sie ein Programm mit Strg + C oder Strg + nicht stoppen können Z .
Das Problem ist in den obigen Zeilen sichtbar, und möglicherweise auch in den darüber liegenden Zeilen:
Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4"
Es Anscheinend werden die Kernelmodule nicht gefunden und daher kein Modul ext4
und daher kein Mounten des ext4
Root-Dateisystems.
Die meisten Distributionen löschen den alten Kernel nicht, falls etwas mit dem neuen nicht stimmt. Versuchen Sie daher, den vorherigen Kernel zu starten.
Wenn dies nicht funktioniert, starten Sie ein Live-System und Installieren Sie entweder den vorherigen Kernel mit passenden Modulen oder den neuen oder einen beliebigen funktionierenden Kernel.
Es ist auch möglich, dass bei der Erstellung des initrd-Dateisystems, wurde aus bestimmten Gründen nicht berücksichtigt. In diesem Fall können Sie ein Live-System starten, initrd mit ext4
neu erstellen und neu starten.
Kommentare
- Arch entfernt den alten Kernel. Das Problem von OP ' ist, dass / boot während dieses Upgrades nicht ' gemountet wurde, sodass die installierten Module nicht mit dem Kernel übereinstimmen.
- @jasonwryan Wenn / boot nicht gemountet wurde, sollten sich der passende Kernel und initrd im Root-Dateisystem befinden, damit sie von dort geladen werden können.
- Nicht unbedingt; actual / boot wird möglicherweise übertrieben gemountet oder die initrd ist möglicherweise beschädigt. Der einzig sichere Ansatz besteht darin, das Problem zu beheben und zu beheben.
Antwort
Befehl unter free me,
mdev -s
Mein qemu-Befehl lautet
qemu-system-x86_64 \ -s \ -kernel bzImage \ -initrd initrd.img.gz \ -smp 4 \ -m 1024 \ -append "console=ttyS0 root=/dev/ram " \ -monitor vc -serial stdio \ -nographic
und ich füge mdev -s
in meiner /init
-Datei.
Ich hoffe, es hilft.