A probléma után a rendszerem frissítése a pacman -Syu
segítségével.
A frissítés során egy python csomagütközésbe ütköztem, ami megszakította a frissítési tranzakciót. Tehát megoldottam a konfliktust: a python csomag eltávolítása pip uninstall pkg_name
által, majd újra megpróbáltam pacman -Syu
. Ezúttal nincs több hiba.
Ezután újraindítottam a rendszeremet, és felmerült a probléma:
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: Mint figyelmeztetés jelzi, a 4.18-as rendszermagot frissítette 4.19-re.
Megjegyzések
Válasz
Ha a frissítést megszakították, és a kern frissítése folyamatban volt, akkor valószínűleg még mindig a régi kernel initramf-jei vannak a /boot
miközben az új kernel telepítve van, ami megakadályozhatja az indítást. Ez egy frissen telepített rendszeren is előfordulhat, ha elfelejtette megfelelően felhelyezni a /boot
partíciót.
Ennek legegyszerűbb megoldása az archlinux-tal történő indítás lenne telepítési adathordozót, hajtson végre egy chroot
fájlt, és telepítse újra a kernelt a 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
A módosítandó fájlok /boot/initramfs-linux.img
és /boot/initramfs-linux-fallback.img
, így valószínűleg nem kell csatlakoztatnia az EFI partíciót
Ha valamilyen oknál fogva nem tudja használni a pacman
szolgáltatást, akkor a mkinitcpio
fájlt kézzel is elindíthatja a használni kívánt initramf fájlok regenerálására. az új kernel
Megjegyzések
- A válaszod helyes, de kérlek, ne tanácsold az embereket, hogy
-Sy $package
, ez szörnyű tanács, és csak t vezet a töréshez . - valóban jó pont, szerkesztve
- @Fredszaq Nagyon köszönöm a válaszodat, ez mentett meg s-től nagy baj. Ennek ellenére nem értem ', hogy mi történt rosszul az én esetemben, mivel a
pacman -Syu
parancs ütközés nélkül futott, mielőtt nem tudtam elindítani . Lehet, hogy valami nincs rendben a beállításommal. Ha tudsz, kérlek, nézd meg a pacman.log-ot, és mondd meg, ha hiányzik-e valamim? link fájlra, ha megteheti: ix.io/2s1w
Válasz
A szöveg can"t access tty: job control turned off
csak a shell által küldött értesítés arról, hogy a jobvezérlés nem működik, ez azt jelenti, hogy a Ctrl + C vagy a Ctrl + billentyűkombinációval nem lehet leállítani a programot Z .
A probléma látható a fenti sorokban, és talán mi is van e sorok felett:
Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4"
Úgy tűnik, hogy a kernelmodulok nem találhatók, és ezért nincs modul ext4
, és ezért nincs csatlakoztatva a ext4
gyökér fájlrendszer.
A legtöbb disztribúció nem törli a régi kernelt, ha valami nem stimmel az újval, ezért próbáld meg elindítani az előző kernelt.
Ha ez nem működik, indíts el egy élő rendszert, és vagy telepítse az előző kernelt megfelelő modulokkal, vagy az újat, vagy bármelyik működő kernelt.
Az is lehetséges, hogy valami baj volt az initrd fájlrendszer létrehozásával, hogy bizonyos okokból nem került be. Ebben az esetben indíthat egy élő rendszert, újra létrehozhatja az initrd-et a ext4
paranccsal, és újraindíthatja.
Megjegyzések
- Arch eltávolítja a régi kernelt. Az OP ' probléma az, hogy a / boot was ' t a frissítés során csatlakoztatták, így a telepített modulok nem egyeznek a kernellel.
- @jasonwryan Ha a / boot nem volt csatlakoztatva, akkor az egyező kernelnek és az initrd-nek a gyökér fájlrendszerben kell lennie, így lehetővé kell tenni, hogy onnan töltsék be őket.
- Nem feltétlenül; A tényleges / boot tetejére kerülhet, vagy az initrd megsérülhet. Az egyetlen biztonságos megközelítés a chroot és a javítás.
Answer
az alábbi parancs felszabadít,
mdev -s
a qemu parancsom
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
és hozzáadom a mdev -s
a /init
fájlomban.
Remélem, hogy segít.
pacman -Q linux && uname -r
kimenettel.Warning
blokkolt. Arra azonban emlékszem, hogy a legutóbbi újraindítás előtt végrehajtottam auname -r
fájlt, és az ouput kernel verziója továbbra is 4.18.xxx volt./
és/boot
fel van szerelve, majd újratelepítik a linuxot.