Erstellen einer Wiederherstellungspartition in Embedded Linux

Erstellen einer Wiederherstellungspartition in Embedded Linux

Ich habe ein Atmel SAM9X-System mit Angstrom. Ich versuche, eine Wiederherstellungspartition zu erstellen, sodass die Wiederherstellungspartition gestartet wird, wenn ein Benutzer während des Bootvorgangs eine Taste gedrückt hält.

Ich habe den Bootstrap so geändert, dass beim Gedrückthalten einer Taste beim Hochfahren ein alternativer Linux-Kernel geladen wird. Ich möchte, dass der alternative Kernel Linux von der Wiederherstellungs-Bootpartition lädt, nicht von der normalen Hauptpartition.

Ist das überhaupt möglich? Oder kann ich die Wiederherstellungspartition laden, ohne zwei Kernel zu verwenden?

Der Grund hierfür ist, dass sich bei einer Beschädigung der bootfähigen Hauptpartition die Wiederherstellungspartition selbst auf die Hauptpartition kopiert (ähnlich wie bei den Windows-Rechnern von Dell oder HP mit der Wiederherstellungspartition) und die bootfähige Hauptpartition wiederhergestellt wird.

Bearbeiten:
Giles Vorschlag hat es geschafft. Der Bootstrap hat das Kernel-Befehlszeilenargument festgelegt, ich habe einfach root=/dev/mmcblk0p3(Booten von der 3. SD-Partition) hinzugefügt und es hat von der gewünschten Partition gebootet!

Antwort1

Der Kernel enthält eine Standardeinstellung für die Root-Partition, die zur Kompilierungszeit festgelegt wird (Sie können sie im Binärabbild mit dem rdevBefehl ändern). Sie können ein Argument in der Kernel-Befehlszeile übergeben, um diese Standardeinstellung beim Booten zu überschreiben, z. B. root=/dev/mmcblk9p42um von MMC-Gerät 9, Partition 42 statt der Standardeinstellung zu booten. Die Befehlszeile wird vom Bootloader an den Kernel übergeben, daher müssen Sie Ihre Bootloaderkonfiguration ändern.

Wenn ein initrd oder initramfs vorhanden ist, kann dies die Root-Partition überschreiben, die einkompiliert oder vom Bootloader übergeben wurde.

verwandte Informationen