Problem napotkałem później uaktualnianie systemu przez pacman -Syu.
Podczas aktualizacji napotkałem konflikt pakietu Pythona, który spowodował przerwanie transakcji aktualizacji. Rozwiązałem więc konflikt: usunąłem pakiet Pythona przez pip uninstall pkg_name, a następnie ponowiłem próbę pacman -Syu. Tym razem żadnych więcej błędów.
Następnie ponownie uruchomiłem system i wystąpił problem:
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] #
Przy okazji: zgodnie z ostrzeżeniem aktualizował jądro 4.18 do 4.19
Komentarze
Odpowiedź
Jeśli aktualizacja została przerwana, a jądro było w trakcie aktualizacji, prawdopodobnie nadal masz initramfs starego jądra w swoim /boot z zainstalowanym nowym jądrem, co może uniemożliwić uruchomienie. Może się to również zdarzyć w świeżo zainstalowanym systemie, jeśli zapomniałeś poprawnie zamontować partycję /boot.
Najłatwiejszym sposobem naprawienia tego byłoby uruchomienie z archlinux nośnik instalacyjny, wykonaj chroot i ponownie zainstaluj jądro, używając 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
Pliki, które powinny zostać zmodyfikowane, to /boot/initramfs-linux.img i /boot/initramfs-linux-fallback.img, więc prawdopodobnie nie musisz montować partycji EFI
Jeśli z jakiegoś powodu nie możesz użyć pacman, możesz również uruchomić mkinitcpio ręcznie, aby ponownie wygenerować initramfs do użycia nowe jądro
Komentarze
- Twoja odpowiedź jest poprawna, ale proszę nie radzić ludziom
-Sy $package, to okropna rada, która prowadzi do zerwania . - rzeczywiście dobra uwaga, zredagowana
- @Fredszaq Wielkie dzięki za odpowiedź, uratowała mnie przed s wielkie kłopoty. Mimo to nie ' nie rozumiem, co poszło nie tak w moim przypadku, ponieważ polecenie
pacman -Syudziałało bez konfliktów, zanim nie mogłem uruchomić . Może coś jest nie tak z moją konfiguracją. Jeśli możesz, czy możesz sprawdzić mój pacman.log i powiedzieć, czy ' coś mi brakuje? link do pliku na wypadek, gdybyś mógł: ix.io/2s1w
Odpowiedź
Tekst to po prostu powiadomienie powłoki, że kontrola zadań nie działa, co oznacza, że nie można zatrzymać programu za pomocą Ctrl + C lub Ctrl + Z .
Problem jest widoczny w wierszach powyżej i być może w tym, co jest powyżej:
Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4"
To wygląda na to, że moduły jądra nie zostały znalezione, a zatem nie ma modułu ext4, a tym samym nie ma montowania głównego systemu plików ext4.
Większość dystrybucji nie usuwa starego jądra na wypadek, gdyby coś było nie tak z nowym, więc spróbuj uruchomić poprzednie jądro.
Jeśli to nie zadziała, uruchom system na żywo i albo zainstaluj poprzednie jądro z pasującymi modułami, albo nowe, lub jakiekolwiek działające jądro.
Jest również możliwe, że coś było nie tak z tworzeniem systemu plików initrd, że nie zostało uwzględnione z pewnych powodów. W takim przypadku możesz uruchomić system live, odtworzyć initrd za pomocą ext4 i zrestartować.
Komentarze
- Arch usuwa stare jądro. Problem OP ' polega na tym, że / boot nie był ' nie zamontowany podczas tej aktualizacji, więc zainstalowane moduły nie pasują do jądra.
- @jasonwryan Jeśli / boot nie został zamontowany, to zgodne jądro i initrd powinny znajdować się w głównym systemie plików, więc powinno być możliwe ich załadowanie stamtąd.
- Niekoniecznie; rzeczywisty / boot może zostać zamontowany na górze lub initrd może być uszkodzony. Jedynym bezpiecznym podejściem jest chroot i naprawienie go.
Odpowiedz
poniżej polecenie uwolnij mnie,
mdev -s
moje polecenie qemu to
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
i dodaję mdev -s w moim /init pliku.
Mam nadzieję, że to pomoże.
pacman -Q linux && uname -r.Warningzamieszczony powyżej. Pamiętam jednak, że przed ostatnim restartem wykonałemuname -r, a wersja jądra wyjściowego była nadal 4.18.xxx/i/bootsą montowane, a następnie ponownie instalowane Linux.