Archlinux kunne ikke starte: kan ' t få adgang til tty: jobkontrol er slået fra

Jeg stødte på problemet efter opgradering af mit system gennem pacman -Syu.

Under opgraderingen stødte jeg på en pythonpakkekonflikt, der forårsagede, at opgraderingen blev afbrudt. Så jeg løste konflikten: Fjernelse af pythonpakken ved pip uninstall pkg_name og prøvede derefter igen pacman -Syu. Denne gang ikke flere fejl.

Så genstartede jeg mit system, og problemet opstod:

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 advarslen indikerer jeg var ved at opgradere kerne 4.18 til 4.19

Kommentarer

  • Rediger dit spørgsmål med output fra pacman -Q linux && uname -r.
  • @jasonwryan Undskyld, jeg kan ' ikke klare det. Siden den sidste genstart kan jeg ikke længere logge ind på mit system, blokeret af Warning, der er sendt ovenfor. Jeg kan dog huske, at før den sidste genstart udførte jeg uname -r og ouput-kerneversionen var stadig 4.18.xxx
  • Du skal chroot ind, sørg for / og /boot er monteret og geninstallerer derefter Linux.

Svar

Hvis opdateringen blev afbrudt, og kernen var ved at blive opdateret, har du sandsynligvis stadig initramfs for den gamle kerne i din /boot mens den nye kerne er installeret, hvilket kan forhindre opstart. Dette kan også ske på et nyinstalleret system, hvis du har glemt at montere /boot -partitionen korrekt.

Den nemmeste måde at løse dette på er at starte med en archlinux installationsmedie, udfør en chroot og geninstaller kernen ved hjælp af 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 filer, der skal ændres, er /boot/initramfs-linux.img og /boot/initramfs-linux-fallback.img, så du behøver sandsynligvis ikke montere EFI-partitionen

Hvis du af en eller anden grund ikke kan bruge pacman, kan du også starte mkinitcpio med hånden for at regenerere initramfs, der skal bruges den nye kerne

Kommentarer

  • Dit svar er korrekt, men bedes ikke råde folk til at -Sy $package, det er forfærdeligt råd og fører bare til til brud .
  • faktisk godt punkt, redigeret
  • @Fredszaq Mange tak for dit svar, det reddede mig fra s alvorlige problemer. Stadig forstår jeg ikke ' hvad der gik galt i mit tilfælde, da kommandoen pacman -Syu løb uden konflikter, før jeg ikke kunne starte . Måske er der noget galt med min opsætning. Hvis du kan, kan du tjekke min pacman.log og fortælle mig, om jeg ' mangler noget? link til fil, hvis du kan: ix.io/2s1w

Svar

Teksten can"t access tty: job control turned off er bare en besked fra skallen om, at jobkontrol ikke fungerer, det betyder, at du ikke kan stoppe et program med Ctrl + C eller Ctrl + Z .

Problemet er synligt i linjerne ovenfor, og måske hvad der er over disse linjer:

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

It det ser ud til, at kernemodulerne ikke findes, og at der derfor ikke er noget modul ext4, og derfor ikke monteres ext4 rodfilsystemet.

De fleste distributioner sletter ikke den gamle kerne, hvis der er noget galt med den nye, så prøv at starte den forrige kerne.

Hvis det ikke virker, skal du starte et live system og enten installere den forrige kerne med matchende moduler, eller den nye eller en hvilken som helst kerne, der fungerer.

Det er også muligt, at der bare var noget galt med oprettelsen af initrd-filsystemet, at blev ikke medtaget af nogle grunde. I dette tilfælde kan du starte et live system, genskabe initrd med ext4 og genstarte.

Kommentarer

  • Arch fjerner den gamle kerne. OP ' s problem er, at / boot ikke var ' t monteret under denne opgradering, så de installerede moduler ikke matcher kernen.
  • @jasonwryan Hvis / boot ikke var monteret, skulle den matchende kerne og initrd være i rodfilsystemet, så det skulle være muligt at indlæse dem derfra.
  • Ikke nødvendigvis; faktisk / boot kan blive monteret over toppen, ellers kan initrd blive beskadiget. Den eneste sikre tilgang er at skære og rette det.

Svar

kommandoen nedenfor frigør mig,

mdev -s 

min qemu-kommando 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 tilføjer mdev -s i min /init -fil.

Jeg håber, det hjælper.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *