Archlinux kon niet opstarten: can ' t access tty: job control uitgeschakeld

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

  • Bewerk je vraag met de output van pacman -Q linux && uname -r.
  • @jasonwryan Sorry dat ik het ' niet kan redden. Sinds de laatste herstart kan ik niet langer inloggen op mijn systeem, geblokkeerd door de Warning hierboven geposte. Ik herinner me echter wel dat ik voor de laatste keer opnieuw opstarten uname -r uitvoerde en de uitgangskernelversie nog steeds 4.18.xxx was
  • Je moet chroot in, zorg ervoor dat / en /boot zijn aangekoppeld en installeer linux opnieuw.

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *