Estoy interesado en aprender cómo Linux trata con particiones de arranque separadas. Estoy no interesado en realidad hacer esto, pero me gustaría saber cómo funciona esto bajo el capó.
Considere un disco duro sda
, que tiene dos particiones sda1
y sda2
. Digamos que esa sda2
es la root
partición /
que contiene el sistema operativo Linux.
Tengo entendido que el gestor de arranque GRUB2
está montado en /boot
. Sin embargo, cuando el directorio /boot
está en una partición separada sda2
, ¿cómo es que esto puede suceder antes de /
que realmente se monte?
¿Cómo se produce con /boot
éxito la interacción entre el BIOS, el registro de arranque maestro y GRUB (o los archivos ) en este caso? ¿Es que los datos /boot
no están realmente montados en el /
sistema de archivos en esta etapa temprana?
Nota: esta pregunta trata sobre el montaje de la partición raíz, pero no trata sobre una partición de arranque separada.
/boot
no se refiere a un directorio montado en la partición raíz?run-init
cual elimina todos los archivos en initramfs, y luego los chroots en el sistema de archivos raíz.UEFI
que se vuelve más y más popurlar ;-) @strugeeNo creo que lo entiendas, aquí está. De la página de Wikipedia de GNU GRUB :
extracto
En GRUB versión 2 tiene lugar lo siguiente:
extracto
NOTA: Cuando vea el menú típico de GRUB2 en el que selecciona qué sistema operativo / núcleo arrancar, hace referencia al
/boot/grub
directorio del sistema en este momento.Referencias
fuente
Linux (el núcleo) no le importa cuántas particiones de arranque tenga. Cargar el kernel desde el disco es el trabajo del gestor de arranque (p
grub
. Ej .grub2
,lilo
) Y a estas herramientas tampoco les importa la cantidad de ubicaciones en las que se pueda ubicar un kernel. Solo les importa la ubicación específica.Como ejemplo, mi partición de arranque es
/dev/md1
, que es un espejo RAID mdadm respaldado por las particiones físicas/dev/sde1
y/dev/sdf1
. Puedo montarlos individualmente si quisiera y, como tal, técnicamente cuenta como tener dos particiones de arranque, aunque deberían contener los mismos datos.Tener dos particiones para / boot para mí es un problema de disponibilidad, pero igualmente podrían ser particiones / boot diferentes. El siguiente paso es cómo sabe el gestor de arranque. Aquí es cómo:
Este es un extracto de una
grub2
configuración y notará que las únicas diferencias sonroot=hd0,1
yroot=hd1,1
que establecen a qué partición de arranque hace referencia esa entrada.Ahora para caminar a través de una bota para que pueda comprender lo que está sucediendo aquí.
grub2
) está configurado para saber qué dispositivo y partición contiene su núcleo. Grub2 accede a esta partición directamente y carga su núcleo en la memoria.Al gestor de arranque no le importa cuántas particiones de arranque tiene, solo le importa dónde están y debe decirle esa información.
Al núcleo no le importa cuántas particiones de arranque tenga, porque nunca necesita verlas (solo necesita tenerlo disponible para agregar nuevos núcleos, por ejemplo).
fuente