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 rootwait
en 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/sdX
dispositivo 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 drive
BIOS 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 rootwait
y no tuve suerte tratando de usar otros.
El proceso de arranque es así ( es bastante similar en Windows ):
- El BIOS elige el dispositivo de arranque y carga lo que sea su MBR (que resulta ser grub stage-1).
- 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. - Grub carga e inicia un kernel (sigue siendo la misma numeración, por lo que puedo
(hd0,0)
volver a usarlo ). - Kernel inicializa todos los dispositivos integrados (
rootwait
ahora es mágico). - Kernel monta la partición por la que se pasó
root
(este es un parámetro de kernel, no un parámetro de grub). init.d
inicia el proceso de inicio del usuario, incluido el montaje de elementos desde/etc/fstab
.
La parte 5 es la que me da problemas.
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.
fuente
Puedes usar:
fuente