GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo arrancar en Arch Linux usando Initramfs, en Ubuntu's Grub?

Tengo dos discos duros, con dos Grubs correspondientes. Uno es de Arch Linux y el otro es de Ubuntu. Usando el grub de Arch, puedo iniciar cualquier distribución. Sin embargo, al usar el grub de Ubuntu, puedo ver Arch y Ubuntu, pero no puedo iniciar Arch. Me sale el error:

Kernel offset
End kernel panic. Not syncing: VFS.
Unable to mount root fs on unknown-block.

Comparé grub.cfg para ambas distribuciones. En el grub de Ubuntu, puedo ver una entrada para Arch, con la siguiente línea.

initrd /boot/intel-ucode.img

Lo cambié para seguir el grub.cfg de Arch. :

initrd /boot/intel-ucode.img /boot/initramfs-linux.img

Ahora puedo iniciar Arch desde el grub de Ubuntu. Parece que Ubuntu no agrega esta opción requerida de manera predeterminada. ¿Cómo puedo hacer que Ubuntu cree automáticamente la entrada correcta?

Editar

Estoy actualizando el grub de Arch con grub-mkconfig -o /boot/grub/grub.cfg . En Ubuntu, probé tanto update-grub y el comando sin formato anterior (al que se le asigna un alias).

Editar 2

Las líneas no comentadas de /etc/default/grub

GRUB_DEFAULT="saved"
GRUB_SAVEDEFAULT="true"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="3"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

Respuesta aceptada:

En realidad, hay dos archivos que deben modificarse para resolver este problema. He probado esto en mi Lubuntu 16.04.1 y Manjaro Linux.

En Ubuntu:

1) Archivo /usr/lib/linux-boot-probes/mounted/40grub2 hay una función parse_grub_menu que no maneja todos los parámetros de initrd. Debe modificar 'caso "$1" en... initrd) ':

a) eliminar asignación

initrd="$(echo "$2" ...)"

b) agregue dos líneas en lugar de la eliminada:

shift 1
initrd="$(echo "[email protected]" | sed 's/(.*)//')"

2) Archivo /etc/grub.d/30_os-prober dentro de un ciclo for corrige la asignación de LINITRD:

for LINUX in ${LINUXPROBED}; do
...
    LINITRD="`echo ${LINUX} | cut -d ':' -f 5 | tr '^' ' '`"

La primera solución tiene en cuenta toda la información initrd disponible para Manjaro. La segunda solución limpia la línea initrd generada cambiando algunos caracteres '^' a espacios.


Ubuntu
  1. Ubuntu:¿cómo evitar que Grub use o inicie cualquier interfaz de usuario gráfica?

  2. ¿Cómo Arrancar Ubuntu Server 14.04 en Red con Pxe Usando Nfs?

  3. ¿Cómo Arrancar Dual Ubuntu y Linux Mint?

  4. Cómo arrancar en modo consola (texto) con Debian/Ubuntu, Fedora, Arch Linux/Manjaro y más

  5. Cómo iniciar Ubuntu en modo de recuperación

Cómo actualizar Grub en Ubuntu y otras distribuciones de Linux

Cómo instalar el navegador web Falkon en Ubuntu Linux

Cómo crear un archivo en Ubuntu Linux usando comando y GUI

Cómo iniciar en modo de rescate o modo de emergencia en Ubuntu 20.04/18.04

Cómo iniciar en modo de rescate o modo de emergencia en Ubuntu

Cómo instalar WordPress usando Nginx en Ubuntu Linux