組み込みLinuxでリカバリパーティションを作成する

組み込みLinuxでリカバリパーティションを作成する

私は Angstrom を実行している Atmel SAM9X システムを持っています。起動中にユーザーがボタンを押したときにリカバリ パーティションが起動するようにリカバリ パーティションを作成しようとしています。

ブートストラップを変更したので、起動時にボタンを押し続けると、代替 Linux カーネルがロードされます。私が望んでいるのは、代替カーネルが通常のメイン パーティションではなく、リカバリ ブート パーティションから Linux をロードすることです。

これは本当に可能なのでしょうか? または、2 つのカーネルを使用せずにリカバリ パーティションをロードできますか?

これが必要な理由は、メインの起動可能なパーティションが破損した場合に、回復パーティションがメイン パーティションにコピーされ (回復パーティションを備えた Dell または HP Windows マシンと同様)、メインの起動可能なパーティションが復元されるためです。

編集:
Giles の提案で解決しました。ブートストラップはカーネルのコマンド ライン引数を設定していましたが、root=/dev/mmcblk0p3それに (3 番目の SD パーティションからブート) を追加したところ、目的のパーティションからブートしました。

答え1

カーネルには、コンパイル時に決定されるデフォルトのルート パーティション設定が含まれています (コマンドを使用してバイナリ イメージで変更できますrdev)。カーネル コマンド ラインに引数を渡すと、ブート時にこのデフォルトを上書きできます (たとえば、root=/dev/mmcblk9p42デフォルトではなく MMC デバイス 9 パーティション 42 からブートできます)。コマンド ラインはブートローダによってカーネルに渡されるため、ブートローダの設定を変更する必要があります。

initrd または initramfs がある場合、コンパイルされたルート パーティションまたはブートローダによって渡されたルート パーティションが上書きされる可能性があります。

関連情報