Archlinux kunde inte starta: kan ' t åtkomst tty: jobbkontroll avstängd

Jag stötte på problemet efter uppgradera mitt system genom pacman -Syu.

Under uppgraderingen stötte jag på en pythonpaketkonflikt som orsakade att uppgraderingstransaktionen avbröts. Så jag löste konflikten: tog bort pythonpaketet med pip uninstall pkg_name och försökte sedan igen pacman -Syu. Den här gången inga fler fel.

Sedan startade jag om mitt system och problemet uppstod:

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 varningen indikerar jag uppgraderade kärnan 4.18 till 4.19

Kommentarer

  • Redigera din fråga med utdata från pacman -Q linux && uname -r.
  • @jasonwryan Tyvärr kan jag inte '. Sedan den senaste omstarten kan jag inte längre logga in i mitt system, blockerat av Warning som publicerats ovan. Men jag kommer ihåg att innan den senaste omstarten körde jag uname -r och ouput-kärnversionen var fortfarande 4.18.xxx
  • Du måste chroot in, se till att / och /boot är monterade och installerar sedan om Linux.

Svar

Om uppdateringen avbröts och kärnan håller på att uppdateras har du förmodligen fortfarande initramfs för den gamla kärnan i din /boot samtidigt som den nya kärnan har installerats vilket kan förhindra uppstart. Detta kan också hända på ett nyinstallerat system om du har glömt att montera /boot -partitionen ordentligt.

Det enklaste sättet att fixa detta skulle vara att starta med en archlinux installationsmedia, utför en chroot och installera om kärnan 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 

Filerna som ska ändras är /boot/initramfs-linux.img och /boot/initramfs-linux-fallback.img så du behöver antagligen inte montera EFI-partitionen

Om du av någon anledning inte kan använda pacman, kan du också starta mkinitcpio för att återskapa initramfs som ska användas den nya kärnan

Kommentarer

  • Ditt svar stämmer, men råd inte människor att -Sy $package, det är fruktansvärt råd och leder bara till till brott .
  • verkligen bra punkt, redigerad
  • @Fredszaq Stort tack för ditt svar, det räddade mig från s allvarliga problem. Ändå förstår jag inte ' vad som gick fel i mitt fall, eftersom kommandot pacman -Syu sprang utan konflikter innan jag inte kunde starta . Kanske är det något fel med min inställning. Om du kan, skulle du snälla kolla in min pacman.log och berätta för mig om jag ' saknar något? länk till filen om du kan: ix.io/2s1w

Svar

Texten can"t access tty: job control turned off är bara ett meddelande från skalet om att jobbkontroll inte fungerar, det betyder att du inte kan stoppa ett program med Ctrl + C eller Ctrl + Z .

Problemet syns i raderna ovan, och kanske vad som ligger ovanför dessa rader:

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

Det verkar kärnmodulerna inte hittas och därför finns ingen modul ext4, och därför monteras inte ext4 rotfilsystemet.

De flesta distributioner raderar inte den gamla kärnan om det är något fel med den nya, så försök starta den tidigare kärnan.

Om det inte fungerar, starta ett live-system och antingen installera den tidigare kärnan med matchande moduler, eller den nya eller någon kärna som fungerar.

Det är också möjligt att det bara var något fel med skapandet av initrd-filsystemet, att ingick inte av några anledningar. I det här fallet kan du starta ett live-system, återskapa initrd med ext4 och starta om.

Kommentarer

  • Arch tar bort den gamla kärnan. OP ' problemet är att / boot inte var ' t monterad under den uppgraderingen så att de installerade modulerna inte matchar kärnan.
  • @jasonwryan Om / boot inte var monterad, skulle den matchande kärnan och initrd vara i rotfilsystemet, så det skulle vara möjligt att ladda dem därifrån.
  • Inte nödvändigtvis; actual / boot kan monteras överst eller annars kan initrd skadas. Det enda säkra tillvägagångssättet är att krossa och fixa det.

Svar

kommandot nedan frigör mig,

mdev -s 

mitt qemu-kommando är

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 

och jag lägger till mdev -s i min /init -fil.

Jag hoppas att det hjälper.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *