Chci vytvořit zálohu celého rozvržení oddílu pevného disku, včetně logických jednotek, abych mohl toto rozložení obnovit na jiný disk. Ne chcete zkopírovat obsah oddílů, pouze rozložení. Pro primární a rozšířené oddíly je to snadné:
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
Ale pokud jde o rozložení logických oddílů, zajímalo by mě, jestli mezi standardními nástroji existuje podobný způsob uložení rozložení? Myslím, že hlavním problémem je najít offsety k umístěním EBR, protože s tím dd
udělá zbytek. Mějte na paměti, že musím být schopen vrátit vše zpět na (možná) prázdný disk a tím obnovit stejné rozložení. Pomocí rozdělovacích nástrojů jako fdisk
nebo parted
je v pořádku, ale musím být schopen automatizovat jejich použití (skriptování) a neměly by záviset na žádných balíčcích souvisejících s X – pouze příkazový řádek.
Můj plán zálohování to dělá ručně v malém python skriptu pomocí modulu struct, ale spíše jsem doufal, že existuje jednodušší způsob.
Přijatá odpověď:
Pro tuto úlohu můžete použít sfdisk i na GPT rozdělených discích*.
Uložit:
sfdisk -d /dev/sdX > part_table
Obnovte se zachováním stejných ID disků a oddílů**:
sfdisk /dev/sdX < part_table
Obnovit generování nových ID disků a oddílů**:
grep -v ^label-id part_table | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdY
Poznámky
*:Pro tabulky oddílů GPT , to vyžaduje sfdisk
z util-linux 2.26 nebo novější. Byl přepsán od začátku na libfdisk.
**:ve výchozím nastavení sfdisk
zkopíruje ID disku a diskového oddílu beze změny, namísto generování nových. Nový disk tedy bude klonem původního, nikoli jen dalším diskem se stejným rozložením. Všimněte si, že /dev/disk/by-uuid/
Linuxu podívá se však na UUID souborového systému, nikoli na UUID v tabulce oddílů. sfdisk
vygeneruje nové UUID, pokud smažete odkazy na ID oddílů (, uuid=...
) a odkaz na ID disku (label-id: ...
) z výpisu .