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

4

Eu tenho um sistema Atmel SAM9X executando o Angstrom. Eu estou tentando fazer uma partição de recuperação assim quando um usuário segura um botão durante a inicialização, a partição de recuperação é inicializada.

Eu modifiquei o bootstrap assim quando um botão é mantido na inicialização, um kernel Linux alternativo é carregado. O que eu quero é o kernel alternativo para carregar o Linux a partir da partição de inicialização de recuperação não a partição principal normal.

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

O motivo pelo qual eu quero isso é 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 da 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 definindo o argumento da linha de comando do kernel, eu acabei de adicionar root=/dev/mmcblk0p3 (boot da terceira partição sd) para isso e ele foi inicializado a partir da partição desejada!

    
por RMDS 25.04.2013 / 00:04

1 resposta

2

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 comando rdev ). 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/mmcblk9p42 para inicializar a partir do dispositivo MMC 9 partição 42 em vez do padrão. A linha de comando é passada para o kernel pelo bootloader, então você precisa mudar a configuração do gerenciador de inicialização.

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

    
por 30.04.2013 / 03:18