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
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.
pacman -Q linux && uname -r
.Warning
. Pamatuji si však, že před posledním restartem jsem provedluname -r
a verze jádra výstupu byla stále 4.18.xxx/
a/boot
jsou připojeny a poté přeinstalují linux.