Ich möchte eine Sicherungskopie des gesamten Layouts der Partition erstellen einer Festplatte, einschließlich logischer Laufwerke, sodass ich dieses Layout auf einer anderen Festplatte wiederherstellen kann. Ich nicht den Inhalt der Partitionen kopieren möchten, nur das Layout. Für die primären und erweiterten Partitionen ist es einfach:
dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup
dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore
Aber wenn es um das Layout der logischen Partitionen geht, frage ich mich, ob es unter den Standardwerkzeugen eine ähnliche Möglichkeit gibt, das Layout zu speichern? Ich denke, das Hauptproblem besteht darin, die Offsets zu den Standorten der EBRs zu finden, denn damit dd
wird den Rest erledigen. Denken Sie daran, dass ich in der Lage sein muss, alles auf eine (möglicherweise) leere Festplatte zurückzusetzen und dadurch das gleiche Layout wiederherzustellen. Verwenden von Partitionierungstools wie fdisk
oder parted
ist in Ordnung, aber ich muss in der Lage sein, ihre Verwendung zu automatisieren (Scripting) und sie sollten nicht von X-bezogenen Paketen abhängen – nur von der Befehlszeile.
Mein Backup-Plan macht es manuell in einem kleinen Python-Skript mit dem struct-Modul, aber ich hatte eher gehofft, dass es einen einfacheren Weg gibt.
Akzeptierte Antwort:
Sie können sfdisk für diese Aufgabe sogar in GPT-partitionierten Festplatten verwenden*.
Speichern:
sfdisk -d /dev/sdX > part_table
Wiederherstellung unter Beibehaltung derselben Festplatten- und Partitions-IDs**:
sfdisk /dev/sdX < part_table
Wiederherstellung durch Generieren neuer Festplatten- und Partitions-IDs**:
grep -v ^label-id part_table | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdY
Notizen
*:Für GPT-Partitionstabellen , dies erfordert sfdisk
ab util-linux 2.26 oder höher. Es wurde von Grund auf auf libfdisk neu geschrieben.
**:standardmäßig sfdisk
kopiert die Datenträger- und Partitions-IDs unverändert, anstatt neue zu generieren. Die neue Festplatte ist also ein Klon des Originals, nicht nur eine weitere Festplatte mit demselben Layout. Beachten Sie, dass /dev/disk/by-uuid/
von Linux betrachtet jedoch Dateisystem-UUIDs, nicht UUIDs in der Partitionstabelle. sfdisk
generiert neue UUIDs, wenn Sie die Verweise auf Partitions-IDs löschen (, uuid=...
) und die Referenz auf die Disk-ID (label-id: ...
) aus dem Dump .