Ho un sistema Atmel SAM9X che esegue Angstrom. Sto cercando di creare una partizione di ripristino in modo che quando un utente tiene premuto un pulsante durante l'avvio, la partizione di ripristino si avvia.
Ho modificato il bootstrap in modo che quando si tiene premuto un pulsante all'avvio, viene caricato un kernel Linux alternativo. Quello che voglio è il kernel alternativo per caricare Linux dalla partizione di avvio di ripristino non dalla normale partizione principale.
È anche possibile? Oppure posso caricare la partizione di ripristino senza utilizzare due kernel?
Il motivo per cui lo voglio è che se la partizione di avvio principale viene danneggiata, la partizione di ripristino verrà copiata nella partizione principale (simile a quelle macchine Windows Dell o HP con la partizione di ripristino) e la partizione di avvio principale verrà ripristinata.
Modifica :
Il suggerimento di Giles l'ha fatto. Il bootstrap stava impostando l'argomento della riga di comando del kernel, ho appena aggiunto root=/dev/mmcblk0p3
(avvio dalla 3a partizione SD) a quello e si è avviato dalla partizione desiderata!
Risposta accettata:
Il kernel contiene un'impostazione predefinita della partizione di root, determinata in fase di compilazione (puoi cambiarla nell'immagine binaria con rdev
comando). Puoi passare un argomento sulla riga di comando del kernel per sovrascrivere questa impostazione predefinita all'avvio, ad es. root=/dev/mmcblk9p42
per eseguire l'avvio dalla partizione 42 del dispositivo MMC 9 invece dell'impostazione predefinita. La riga di comando viene passata al kernel dal bootloader, quindi è necessario modificare la configurazione del bootloader.
Se è presente un initrd o initramfs, potrebbe sovrascrivere la partizione di root che è stata compilata o passata dal bootloader.