Hacer una partición de recuperación en Linux integrado

Hacer una partición de recuperación en Linux integrado

Tengo un sistema Atmel SAM9X que ejecuta Angstrom. Estoy intentando crear una partición de recuperación para que cuando un usuario mantenga presionado un botón durante el inicio, la partición de recuperación se inicie.

Modifiqué el programa de arranque para que cuando se mantenga presionado un botón durante el arranque, se cargue un kernel de Linux alternativo. Lo que quiero es que el kernel alternativo cargue Linux desde la partición de inicio de recuperación, no desde la partición principal normal.

¿Es esto siquiera posible? ¿O puedo cargar la partición de recuperación sin utilizar dos núcleos?

La razón por la que quiero esto es que si la partición de arranque principal se daña, 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 logró. El programa de arranque estaba configurando el argumento de la línea de comando del kernel, simplemente root=/dev/mmcblk0p3le agregué (arranque desde la tercera partición SD) y arrancó desde la partición deseada.

Respuesta1

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 rdevcomando). Puede pasar un argumento en la línea de comando del kernel para anular este valor predeterminado en el momento del arranque, por ejemplo, root=/dev/mmcblk9p42para arrancar desde el dispositivo MMC 9, partición 42 en lugar del valor predeterminado. El gestor de arranque pasa la línea de comando al kernel, por lo que debe cambiar la configuración del gestor 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.

información relacionada