Ik kwam het probleem tegen na mijn systeem upgraden via pacman -Syu
.
Tijdens de upgrade kwam ik een Python-pakketconflict tegen waardoor de upgrade-transactie werd afgebroken. Dus ik loste het conflict op: het python-pakket verwijderen door pip uninstall pkg_name
, en vervolgens opnieuw proberen pacman -Syu
. Deze keer geen fouten meer.
Toen startte ik mijn systeem opnieuw op en het probleem deed zich voor:
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] #
Tussen haakjes: zoals de waarschuwing aangeeft, ik was kernel 4.18 aan het upgraden naar 4.19
Reacties
Antwoord
Als de update werd afgebroken en de kernel bezig was met bijwerken, heb je waarschijnlijk nog steeds de initramfs van de oude kernel in je /boot
terwijl de nieuwe kernel is geïnstalleerd, wat het opstarten kan voorkomen. Dit kan ook gebeuren op een pas geïnstalleerd systeem als je bent vergeten de /boot
partitie correct te mounten.
De gemakkelijkste manier om dit op te lossen is door op te starten met een archlinux installatiemedia, voer een chroot
uit en installeer de kernel opnieuw met 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
De bestanden die moeten worden gewijzigd zijn /boot/initramfs-linux.img
en /boot/initramfs-linux-fallback.img
, dus u hoeft de EFI-partitie waarschijnlijk niet te koppelen
Als u om de een of andere reden “pacman
niet kunt gebruiken, kunt u mkinitcpio
ook met de hand starten om de te gebruiken initramfs opnieuw te genereren de nieuwe kernel
Reacties
- Je antwoord is correct, maar adviseer mensen niet om
-Sy $package
, het is vreselijk advies en leidt slechts tot breuk . - inderdaad goed punt, bewerkt
- @Fredszaq Hartelijk dank voor je antwoord, het heeft me gered van s ernstige problemen. Toch begrijp ik ' niet helemaal wat er mis ging in mijn geval, aangezien het commando
pacman -Syu
zonder conflicten liep voordat ik niet kon opstarten . Misschien is er iets mis met mijn setup. Als u kunt, wilt u dan mijn pacman.log bekijken en me vertellen of ik ' iets mis? link naar bestand voor het geval je: ix.io/2s1w
Answer
De tekst can"t access tty: job control turned off
is slechts een melding van de shell dat job control niet werkt, dat betekent dat je een programma niet kunt stoppen met Ctrl + C of Ctrl + Z .
Het probleem is zichtbaar in de regels hierboven, en misschien wat erboven staat:
Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4"
Het lijkt erop dat de kernelmodules niet zijn gevonden, en daarom geen module ext4
, en daarom geen mount van het ext4
rootbestandssysteem.
De meeste distributies verwijderen de oude kernel niet voor het geval er iets mis is met de nieuwe, dus probeer de vorige kernel op te starten.
Als dat niet werkt, start dan een live systeem op en installeer ofwel de vorige kernel met overeenkomende modules, of de nieuwe, of een kernel die werkt.
Het is ook mogelijk dat er gewoon iets mis was met het maken van het initrd-bestandssysteem, dat is om een of andere reden niet opgenomen. In dit geval kun je een live systeem opstarten, initrd opnieuw maken met ext4
en opnieuw opstarten.
Reacties
- Arch verwijdert de oude kernel. OP ' s probleem is dat / boot niet ' is aangekoppeld tijdens die upgrade, zodat de geïnstalleerde modules niet overeenkomen met de kernel.
- @jasonwryan Als / boot niet was gemount, dan zouden de overeenkomende kernel en initrd in het rootbestandssysteem moeten staan, dus het zou mogelijk moeten zijn om ze vanaf daar te laden.
- Niet noodzakelijk; actual / boot kan over de top worden gemount of het initrd kan beschadigd zijn. De enige veilige benadering is om het te chroot en te repareren.
Antwoord
commando hieronder bevrijd me,
mdev -s
mijn qemu-commando is
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
en ik voeg mdev -s
in mijn /init
-bestand.
Ik hoop dat het helpt.
pacman -Q linux && uname -r
.Warning
hierboven geposte. Ik herinner me echter wel dat ik voor de laatste keer opnieuw opstartenuname -r
uitvoerde en de uitgangskernelversie nog steeds 4.18.xxx was/
en/boot
zijn aangekoppeld en installeer linux opnieuw.