Archlinux klarte ikke å starte: kan ' t tilgang tty: jobbkontroll slått av

Jeg kom over problemet etter oppgradering av systemet mitt gjennom pacman -Syu.

Under oppgraderingen opplevde jeg en python-pakkekonflikt som forårsaket oppgraderingstransaksjonen avbrutt. Så jeg løste konflikten: Fjern pythonpakken med pip uninstall pkg_name, og prøvde deretter pacman -Syu. Denne gangen ikke flere feil.

Da startet jeg systemet på nytt, og problemet oppstod:

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] # 

BTW: Som advarselen indikerer jeg var å oppgradere kjernen 4.18 til 4.19

Kommentarer

  • Rediger spørsmålet ditt med utdata fra pacman -Q linux && uname -r.
  • @jasonwryan Beklager at jeg ikke kan ' ikke klare det. Siden siste omstart kan jeg ikke lenger logge inn på systemet mitt, blokkert av Warning lagt ut ovenfor. Imidlertid husker jeg at før den siste omstarten utførte jeg uname -r og ouput-kjerneversjonen var fortsatt 4.18.xxx
  • Du må chroot inn, sørg for at / og /boot er montert og installerer deretter Linux på nytt.

Svar

Hvis oppdateringen ble avbrutt og kjernen var i ferd med å bli oppdatert, har du sannsynligvis fortsatt initramfs til den gamle kjernen i /boot mens den nye kjernen er installert, noe som kan forhindre oppstart. Dette kan også skje på et nyinstallert system hvis du glemte å montere /boot -partisjonen.

Den enkleste måten å fikse dette på ville være å starte med en archlinux. installasjonsmedier, utfør en chroot og installer kjernen på nytt med 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 

Filene som skal endres er /boot/initramfs-linux.img og /boot/initramfs-linux-fallback.img så du trenger sannsynligvis ikke å montere EFI-partisjonen

Hvis du av en eller annen grunn ikke kan bruke pacman, kan du også starte mkinitcpio for hånd for å regenerere initramfs som skal brukes den nye kjernen

Kommentarer

  • Svaret ditt er riktig, men vær så snill å ikke råde folk til å -Sy $package, det er forferdelig råd og fører bare til til brudd .
  • faktisk godt poeng, redigert
  • @Fredszaq Tusen takk for svaret ditt, det reddet meg fra s alvorlige problemer. Likevel forstår jeg ikke ' hva som gikk galt i mitt tilfelle, da kommandoen pacman -Syu gikk uten konflikter før jeg ikke kunne starte . Kanskje det er noe galt med oppsettet mitt. Hvis du kan, kan du sjekke ut pacman.log og fortelle meg om jeg ' mangler noe? lenke til filen i tilfelle du kan: ix.io/2s1w

Svar

Teksten can"t access tty: job control turned off er bare et varsel fra skallet om at jobbkontroll ikke fungerer, det betyr at du ikke kan stoppe et program med Ctrl + C eller Ctrl + Z .

Problemet er synlig i linjene over, og kanskje hva som er over de linjene:

Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4" 

It ser ut til at kjernemodulene ikke blir funnet, og derfor ingen modul ext4, og derfor ikke monteres ext4 rotfilsystemet.

De fleste distribusjoner sletter ikke den gamle kjernen i tilfelle det er noe galt med den nye, så prøv å starte den forrige kjernen.

Hvis det ikke virker, start et live system og enten installer den forrige kjernen med matchende moduler, eller den nye, eller en hvilken som helst kjerne som fungerer.

Det er også mulig at det bare var noe galt med opprettelsen av initrd-filsystemet, at ble ikke inkludert av noen grunner. I dette tilfellet kan du starte et live system, gjenopprette initrd med ext4 og starte på nytt.

Kommentarer

  • Arch fjerner den gamle kjernen. OP ' problemet er at / boot ikke var ' t montert under denne oppgraderingen, slik at de installerte modulene ikke samsvarer med kjernen.
  • @jasonwryan Hvis / boot ikke var montert, skulle den samsvarende kjernen og initrd være i rotfilsystemet, så det skulle være mulig å laste dem derfra.
  • Ikke nødvendigvis; faktisk / boot kan monteres over toppen, ellers kan initrd bli ødelagt. Den eneste sikre tilnærmingen er å rote og fikse det.

Svar

kommandoen nedenfor frigjør meg,

mdev -s 

qemu-kommandoen min er

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 

og jeg legger til mdev -s i /init -filen.

Jeg håper det hjelper.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *