Reinstalar un kernel desde un chroot

Reinstalar un kernel desde un chroot

Por error borré uno de los vmlinuzarchivos de mi /bootdirectorio. Sin embargo, hice una copia de seguridad del /bootinterior /tmp, sólo para estar seguro.

En consecuencia, no puedo iniciar porque aparece el error de archivo vmlinuz que falta. Entonces inicié usando un USB activo, pero cuando entré al /bootdirectorio de mi disco duro (sda5), estaba completamente vacío. Si copio los archivos /tmp/boota ese /bootdirectorio, todavía no puedo iniciar.

¿Cómo puedo restaurar esos archivos en el directorio apropiado?

Respuesta1

vmlinuzes la imagen del kernel de Linux en sí (la z indica que está comprimida).

Reinstalar el paquete del kernel al que actualmente hace referenciaimagen-genérica-de-linux(o tunúcleo HWE) y probablementelinux-imagen-grabada-genéricaen entornos de arranque seguro UEFI debería resolver su problema.

Reinstalar un kernel desde un chroot

Preferiblemente inicie live media de la misma versión y monte la partición de su instalación (puede hacerlo con Nautilus, será algo así /media/ubuntu/…) o su /bootpartición (esto será un poco más complejo). Esto estará ${my_installation}en las siguientes instrucciones.

Busque /lib/modules/en su instalación ( ${my_installation}/lib/modules/) las versiones particulares del kernel que se instalaron y elija el número de versión más reciente que pueda encontrar; se hace referencia a esto ${kernel_ver}en las siguientes instrucciones; en mi máquina virtual de prueba era 3.16.0-46.

Como dije en un comentario anterior, el procedimiento es muy similar a reinstalar Grub en chroot, así que permítanme citaresta respuestacon algunas ligeras modificaciones:

  1. Vincular montar algunas otras cosas necesarias:

     for i in /sys /proc /run /dev; do sudo mount --bind "$i" "${my_installation}$i"; done
    
  2. chrooten su instalación de Ubuntu:

     sudo chroot ${my_installation}
    
  3. En este punto, estás en tu instalación, no en la sesión en vivo, y estás ejecutándolo como root. …

Ahora reinstale su kernel (elsignedEl paquete es para arranque seguro UEFI):

apt-get install --reinstall linux-image-${kernel_ver}-generic linux-signed-image-${kernel_ver}-generic

Verifique el /bootdirectorio si initrdaún falta el archivo para este kernel. Para generarlo manualmente ejecute:

mkinitramfs -o /boot/initrd.img-${kernel_ver}-generic ${kernel_ver}-generic

Mi ejemplo:

mkinitramfs -o /boot/initrd.img-3.16.0-46-generic 3.16.0-46-generic

Luego ejecute update-grubcomo en la respuesta citada para estar seguro de que el "nuevo" kernel y el initrd están incluidos.

Si también necesita reinstalar Grub, puede seguir los pasos restantes. Recuerde que estas instrucciones fueron escritas para MBR, si tiene UEFI (donde los cargadores de arranque de diferentes sistemas operativos no deben sobrescribirse entre sí), debe verificar que grub-efi-amd64-binesté instalado antes de reinstalar Grub.


información relacionada