Me encontré con el problema después actualizando mi sistema a través de pacman -Syu
.
Durante la actualización, encontré un conflicto de paquete de Python que provocó que la transacción de actualización se cancelara. Entonces resolví el conflicto: quitando el paquete de Python por pip uninstall pkg_name
, luego intenté pacman -Syu
. Esta vez no más errores.
Luego reinicié mi sistema y se produjo el problema:
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] #
Por cierto: como indica la advertencia, estaba actualizando el kernel 4.18 a 4.19
Comentarios
Respuesta
Si la actualización fue abortada y el kernel estaba en proceso de actualización, probablemente todavía tenga el initramfs del kernel anterior en su /boot
mientras tiene instalado el nuevo kernel, lo que puede evitar el arranque. Esto también puede suceder en un sistema recién instalado si olvidó montar correctamente la partición /boot
.
La forma más fácil de solucionar esto sería arrancar con un archlinux medios de instalación, realice un chroot
y reinstale el kernel usando 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
Los archivos que deben modificarse son /boot/initramfs-linux.img
y /boot/initramfs-linux-fallback.img
, por lo que probablemente no necesite montar la partición EFI
Si por alguna razón no puede «usar pacman
, también puede ejecutar mkinitcpio
a mano para regenerar los initramfs para usar el nuevo kernel
Comentarios
- Su respuesta es correcta, pero por favor no aconseje a la gente que
-Sy $package
, es un consejo terrible y solo lleva a la rotura . - De hecho, buen punto, editado
- @Fredszaq Muchas gracias por tu respuesta, me salvó de s problema serio. Aún así, ' no entiendo muy bien qué salió mal en mi caso, ya que el comando
pacman -Syu
se ejecutó sin conflictos antes de que no pudiera arrancar. . Quizás haya algún problema con mi configuración. Si puede, ¿podría consultar mi pacman.log y decirme si ' me falta algo? enlace al archivo en caso de que pueda: ix.io/2s1w
Responder
El texto can"t access tty: job control turned off
es solo una notificación del shell de que el control de trabajo no funciona, eso significa que no puede detener un programa con Ctrl + C o Ctrl + Z .
El problema es visible en las líneas de arriba, y tal vez lo que está arriba de esas líneas:
Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4"
Se parece que no se encuentran los módulos del kernel y, por lo tanto, ningún módulo ext4
y, por lo tanto, no se monta el sistema de archivos raíz ext4
.
La mayoría de las distribuciones no eliminan el kernel anterior en caso de que haya algún problema con el nuevo, así que intente iniciar el kernel anterior.
Si eso no funciona, inicie un sistema en vivo y instale el kernel anterior con los módulos correspondientes, o el nuevo, o cualquier kernel que funcione.
También es posible que haya algo mal con la creación del sistema de archivos initrd, que no se incluyó por algunas razones. En este caso, puede iniciar un sistema en vivo, volver a crear initrd con ext4
y reiniciar.
Comentarios
- Arch sí elimina el núcleo antiguo. El problema de OP ' es que / boot no estaba ' t montado durante esa actualización, por lo que los módulos instalados no coinciden con el kernel.
- @jasonwryan Si / boot no estaba montado, entonces el kernel y el initrd coincidentes deberían estar en el sistema de archivos raíz, por lo que debería ser posible cargarlos desde allí.
- No necesariamente; actual / boot puede montarse en la parte superior o el initrd podría estar dañado. El único método seguro es hacer un chroot y arreglarlo.
Responder
comando de abajo libérame,
mdev -s
mi comando qemu es
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
y agrego mdev -s
en mi /init
archivo.
Espero que ayude.
pacman -Q linux && uname -r
.Warning
publicado arriba. Sin embargo, sí recuerdo que antes del último reinicio ejecutéuname -r
y la versión del kernel de salida aún era 4.18.xxx/
y/boot
se montan y luego se reinstalan Linux.