Tengo un sistema Atmel SAM9X con Angstrom. Estoy tratando de crear una partición de recuperación para que cuando un usuario mantenga presionado un botón durante el arranque, la partición de recuperación se inicie.
He modificado el arranque de modo que cuando se mantiene presionado un botón en el arranque, se carga un kernel de Linux alternativo. Lo que quiero es que el núcleo alternativo cargue Linux desde la partición de arranque de recuperación, no desde la partición principal normal.
¿Es esto posible? ¿O puedo cargar la partición de recuperación sin usar dos núcleos?
La razón por la que quiero esto es que si la partición de arranque principal se corrompe, la partición de recuperación se copiará a sí misma en la partición principal (similar a las máquinas Windows Dell o HP con la partición de recuperación) y la partición de arranque principal se restaurará.
Editar :
La sugerencia de Giles lo hizo. El arranque estaba configurando el argumento de la línea de comando del kernel, solo agregué root=/dev/mmcblk0p3
(arranque desde la tercera partición sd) a eso y arrancó desde la partición deseada!
Respuesta aceptada:
El kernel contiene una configuración de partición raíz predeterminada, determinada en el momento de la compilación (puede cambiarla en la imagen binaria con el rdev
dominio). Puede pasar un argumento en la línea de comando del kernel para anular este valor predeterminado en el momento del arranque, p. root=/dev/mmcblk9p42
para arrancar desde el dispositivo MMC 9 partición 42 en lugar de la predeterminada. El cargador de arranque pasa la línea de comando al núcleo, por lo que debe cambiar la configuración del cargador de arranque.
Si hay un initrd o initramfs, puede anular la partición raíz que fue compilada o pasada por el gestor de arranque.