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 -Syu
dział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
.Warning
zamieszczony 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/boot
są montowane, a następnie ponownie instalowane Linux.