Fazendo uma partição de recuperação no Linux embarcado

Fazendo uma partição de recuperação no Linux embarcado

Eu tenho um sistema Atmel SAM9X rodando Angstrom. Estou tentando criar uma partição de recuperação para que, quando um usuário segura um botão durante a inicialização, a partição de recuperação seja inicializada.

Eu modifiquei o bootstrap para que quando um botão for pressionado durante a inicialização, um kernel Linux alternativo seja carregado. O que eu quero é que o kernel alternativo carregue o Linux a partir da partição de inicialização de recuperação e não da partição principal normal.

Isso é possível? Ou posso carregar a partição de recuperação sem usar dois kernels?

A razão pela qual eu quero isso é que se a partição inicializável principal for corrompida, a partição de recuperação se copiará para a partição principal (semelhante às máquinas Windows Dell ou HP com a partição de recuperação) e a partição inicializável principal será restaurada.

Editar:
A sugestão de Giles fez isso. O bootstrap estava configurando o argumento da linha de comando do kernel, acabei de adicionar root=/dev/mmcblk0p3(inicialização da 3ª partição SD) a ele e ele inicializou a partir da partição desejada!

Responder1

O kernel contém uma configuração de partição raiz padrão, determinada em tempo de compilação (você pode alterá-la na imagem binária com o rdevcomando). Você pode passar um argumento na linha de comando do kernel para substituir esse padrão no momento da inicialização, por exemplo, root=/dev/mmcblk9p42para inicializar a partir da partição 42 do dispositivo MMC 9 em vez do padrão. A linha de comando é passada para o kernel pelo bootloader, então você precisa alterar a configuração do seu bootloader.

Se houver um initrd ou initramfs, ele poderá substituir a partição raiz que foi compilada ou passada pelo gerenciador de inicialização.

informação relacionada