Bootloader sichern und wiederherstellen mit dd

I

Ivi

Jungspund
Hi,

im Netz gibt es einige Guides in denen beschrieben ist wie man mit dd den Bootloader, den gesamten MBR oder den MBR inkl. des versteckten Bereichs zwischen MBR und 1. Partition sichert. Leider klappte das bei mir nicht. Einmal davon abgesehen, ob das nun die "beste" Möglichkeit ist, frage ich mich nun warum das nicht geht. Die Sicherung eines Ubuntu auf einer SSD erfolgte mit

sudo dd if=/dev/sda of=mbr+grub_sicherung bs=1M count=1

die 1. Partition begann bei Sektor 2048, die Blockgröße war 512 Bytes. Genauso hab ich die Sicherung wiederhergestellt. Die Systempartition wurde auch per dd gesichert und wiederhergestellt. Eine extra Bootpartition gab es keine. Ein erster Bootversucht schlug fehl, leider weiß ich nicht mehr genau an welcher Stelle. Mit einer Live-CD konnte ich dann den BL einfach über die chroot-Methode neu schrieben.

Mich interessiert jetzt aber was evtl. bei dd falsch lief. Ich hatte vorher die Partition manuell (etwas größer als die Quellpartition) erstellt, auch Bootflag wurde gesetzt. Auch das Zielmedium war eine SSD. Mein erster Gedanke war, dass ich hätte die Partitionstabellen aus der Sicherung herauslassen müssen, also nur die ersten 446 Bytes zurückspielen und danach nur den verborgenen Bereich. Die neuen Partitonstabellen im MBR wurden ja durch die von der alten SSD ersetzt (auch wenn der Beginn gleich ist).

Könnte das die Lösung sein? Leider ist die SSD gerade in Verwendung und ich kann es nicht testen.
 
Es kommt ein wenig auf das "wie" in "es ging nicht" an - also die Fehlermeldung.

Ursache kann, je nach bestehender Konfiguration einiges sein - geändete GUIDs, Partitionstabelle passt nicht zur Partitionierung, lustige Firmwareeffekte innerhalb der SSD, ... - wobei die Hauptursachen meist GUIDs und Part.Tabelle ist.
 
Ich weiß die Fehlermeldung ja eben nicht mehr. Daher geht es mir in erster Linie darum wie man sowas richtigerweise gemacht hätte. Der Gedanke, die Partitionstabelle nicht zurückzusichern war wohl aber nicht sooo falsch?

Ich vermute mal, der genaue Startsektor der Systempartition spielt keine Rolle, da der Bootcode im MBR (da es keine Bootpartition gab) hier vermutlich auf weiteren Bootcode im verborgenen Bereich verweist, hier die Module für das Dateisystem lädt und dann in die Systempartition springt.
 
Hab das jetzt nochmal versucht und komischerweise bootet das System ohne Fehlermeldung. Ich hab die beiden Partitonen etwas größer erstellt als sie uusprünglich waren und den Inhalt per dd wiederhergestellt. Dann den ganzen MBR plus verborgenen Bereich mit 'dd if=input of=output bs=1M count=1' wiederhergestellt.

Komisch, dass es jetzt geht. Ich würde das ganze gern noch einmal testen. Um sicherzugehen, dass nichts mehr im Bootbereich ist, könnte man dendoch mit 'dd if=/dev/zero of=/dev/sdb bs=1M count=1' komplett mit Nullen überschrieben?
 
bootloader = 446byte
bootloader + partitons tabelle = 512byte

also erste bytes auf deiner platte, ausschließlich für mbr, bei gpt richtet sich das nach der größe der einzelnen partitionen.
 
Ist kein GPT.

Es geht mir nur im den Test. Mir ist schon klar, dass der Startsektor 512 Bytes groß ist. Es muss ja aber noch etwas im verborgenen Bereich liegen, wenn es keine Bootpartition gibt. Deshab der Gedanke, dass bs=1M den gesamten MBR plus den verborgenen Bereich KOMPLETT löscht, oder?
 

Ähnliche Themen

Der Bootvorgang mit Grub2

Sicherung der Systempartition inkl. Bootloader + ein paar Verständnisfragen

SSD auf einen (geringfügig) kleineren USB-Stick wiederherstellen

Fragen zu Partitions-Aufbau und Bootloader – und dem Sichern

Bootloader nach update weg

Zurück
Oben