Az Archlinux indítása sikertelen: nem tud ' hozzáférni a tty-hez: a munkavezérlés kikapcsolt

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

  • Szerkessze kérdését a pacman -Q linux && uname -r kimenettel.
  • @jasonwryan Sajnálom, hogy ' nem sikerül. A legutóbbi újraindítás óta már nem tudok bejelentkezni a rendszerembe, amelyet a fent közzétett Warning blokkolt. Arra azonban emlékszem, hogy a legutóbbi újraindítás előtt végrehajtottam a uname -r fájlt, és az ouput kernel verziója továbbra is 4.18.xxx volt.
  • Be kell lépnie, ellenőrizze, hogy a / és /boot fel van szerelve, majd újratelepítik a linuxot.

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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük