Archlinux se nepodařilo spustit: nelze ' t přistupovat k tty: řízení úloh vypnuto

Na problém jsem narazil poté upgradovat svůj systém pomocí pacman -Syu.

Během upgradu jsem narazil na konflikt balíčků pythonu, který způsobil zrušení transakce upgradu. Konflikt jsem tedy vyřešil: odstranění balíčku pythonu pomocí pip uninstall pkg_name a poté opakování pacman -Syu. Tentokrát už žádné chyby.

Poté jsem restartoval svůj systém a nastal problém:

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: Jako varování označující I upgradoval jádro 4.18 na 4.19

Komentáře

  • Upravte svoji otázku s výstupem pacman -Q linux && uname -r.
  • @jasonwryan Omlouvám se ' to nezvládnu. Od posledního restartu se již nemohu přihlásit do svého systému, blokováno výše uvedeným Warning. Pamatuji si však, že před posledním restartem jsem provedl uname -r a verze jádra výstupu byla stále 4.18.xxx
  • Musíte provést chroot, ujistěte se / a /boot jsou připojeny a poté přeinstalují linux.

Odpovědět

Pokud byla aktualizace přerušena a jádro se právě aktualizuje, pravděpodobně stále máte ve svém /boot zatímco má nainstalované nové jádro, což může zabránit bootování. To se může také stát na čerstvě nainstalovaném systému, pokud jste zapomněli správně připojit oddíl /boot.

Nejjednodušší způsob, jak to opravit, je zavádění pomocí archlinuxu instalační médium, proveďte chroot a znovu nainstalujte jádro pomocí 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 

Soubory, které by měly být upraveny, jsou /boot/initramfs-linux.img a /boot/initramfs-linux-fallback.img, takže pravděpodobně nebudete muset připojit oddíl EFI

Pokud z nějakého důvodu nemůžete použít pacman, můžete také ručně spustit mkinitcpio a regenerovat initramfs, které chcete použít nové jádro

Komentáře

  • Vaše odpověď je správná, ale nedoporučujte lidem, aby -Sy $package, je to hrozná rada a vede k rozbití .
  • opravdu dobrý bod, upraveno
  • @Fredszaq Mnohokrát děkuji za odpověď, zachránilo mě to před s vážný problém. Přesto ' nerozumím tomu, co se v mém případě pokazilo, protože příkaz pacman -Syu běžel bez konfliktů, než jsem nemohl spustit . Možná je s mým nastavením něco špatně. Pokud můžete, podívejte se prosím na můj pacman.log a řekněte mi, jestli mi něco ' chybí? odkaz na soubor v případě, že můžete: ix.io/2s1w

odpověď

Text can"t access tty: job control turned off je pouze upozornění prostředí, že řízení úloh nefunguje, to znamená, že nemůžete zastavit program pomocí Ctrl + C nebo Ctrl + Z .

Problém je viditelný ve výše uvedených řádcích a možná i nad nimi:

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

Je Zdá se, že moduly jádra nebyly nalezeny, a proto neexistuje žádný modul ext4 a proto není připojeno ext4 kořenový souborový systém.

Většina distribucí staré jádro nevymaže, pokud s novým není něco v pořádku, proto zkuste spustit předchozí jádro.

Pokud to nefunguje, spusťte živý systém a buď nainstalujte předchozí jádro se shodnými moduly, nebo nové nebo jakékoli fungující jádro.

Je také možné, že s vytvořením souborového systému initrd něco nebylo v pořádku, že nebyl z nějakých důvodů zahrnut. V takovém případě můžete spustit živý systém, znovu vytvořit initrd pomocí ext4 a restartovat.

Komentáře

  • Arch odstraní staré jádro. OP ' s problémem je, že / boot nebyl během této aktualizace ' připojen, takže nainstalované moduly neodpovídají jádru.
  • @jasonwryan Pokud / boot nebyl připojen, pak by odpovídající jádro a initrd měly být v kořenovém systému souborů, takže by mělo být možné je odtud načíst.
  • Ne nutně; actual / boot se může připojit přes horní část nebo může dojít k poškození initrd. Jediným bezpečným přístupem je chroot a oprava.

Odpověď

níže uvedený příkaz mě osvobodí,

mdev -s 

můj příkaz qemu je

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 

a přidám mdev -s v mém /init souboru.

Doufám, že to pomůže.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *