¿Cómo debo configurar grub para arrancar el kernel de Linux desde un disco duro USB?


17

Tengo un disco duro para computadora portátil en un gabinete externo que uso como un gran pendrive. Para darle un giro adicional, he instalado Linux en él, para poder arrancar cualquier máquina con mi distribución de elección (por ejemplo, para la recuperación de datos o la reparación de un sistema defectuoso o simplemente usando una computadora portátil prestada sin destruir el Windows preinstalado). El problema es que, dependiendo de la configuración del hardware, el disco duro USB puede verse bajo diferentes rutas. Para la configuración de grub, solo lo uso (hda0,0)ya que es relativo al dispositivo desde el que se inició grub. Tengo entradas de UUID en /etc/fstab. También especifico rootwaiten los parámetros del kernel para que espere a que el subsistema USB se estabilice antes de intentar montar el dispositivo.

¿Qué debo pasar al kernel como root=? Actualmente, inicie desde el pendrive una vez, verifique los mensajes de depuración para ver qué /dev/sdXdispositivo ha sido asignado al disco USB por el núcleo, luego reinicie y edite la configuración de grub. No puedo cambiar nada en la PC además de habilitar el Boot from USB hard driveBIOS y configurarlo con mayor prioridad que los discos duros internos.

Hay varios scripts de generación de initrd que incluyen soporte para UUID en la ruta del dispositivo raíz, desafortunadamente el nativo de Gentoo (genkernel) no es compatible rootwaity no tuve suerte tratando de usar otros.

El proceso de arranque es así ( es bastante similar en Windows ):

  1. El BIOS elige el dispositivo de arranque y carga lo que sea su MBR (que resulta ser grub stage-1).
  2. Grub carga su configuración y los archivos de la etapa 2 desde el dispositivo que ha configurado root, utilizando (hd0)para el dispositivo desde el cual fue cargado por BIOS.
  3. Grub carga e inicia un kernel (sigue siendo la misma numeración, por lo que puedo (hd0,0)volver a usarlo ).
  4. Kernel inicializa todos los dispositivos integrados ( rootwaitahora es mágico).
  5. Kernel monta la partición por la que se pasó root(este es un parámetro de kernel, no un parámetro de grub).
  6. init.dinicia el proceso de inicio del usuario, incluido el montaje de elementos desde /etc/fstab.

La parte 5 es la que me da problemas.

Respuestas:


6

Creo que la respuesta debería ser usar cualquiera root=LABEL=...oroot=UUID=...

Pero usted indica que esto no funciona para usted. Sugeriría investigar si hay algún problema con las acciones de su initrd.


No tengo un initrd, ese es todo el problema. genkernel no admite la opción "rootwait" y otras no funcionan con Gentoo.
skolima

2

Podría estar equivocado o posiblemente solo malinterpretarlo, pero ¿no es la elección del dispositivo de arranque algo que se configuraría desde el BIOS de la máquina que está iniciando?

Creo que sería una cuestión de elegir la unidad USB, que tendría GRUB instalado como su gestor de arranque, y luego elegir qué distribución desea iniciar desde el menú de GRUB.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.