GNU/Linux >> Znalost Linux >  >> Linux

Jak zkopírovat rozložení diskových oddílů celého disku pomocí standardních nástrojů?

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 .


Linux
  1. Použití příkazu mkfs v Linuxu k formátování systému souborů na disku nebo oddílu

  2. Jak odstranit diskový oddíl pomocí příkazu Parted

  3. Jak zkopírovat soubor do více adresářů pomocí příkazu gnu cp

  1. Jak rozdělit disk v Linuxu

  2. Jak zjistit, zda konkrétní systém potřebuje spouštěcí oddíl?

  3. Jak vytvořit oddíl v Linuxu pro velikost 2 TB pomocí Parted GPT

  1. Jak klonovat oddíl disku Linux přes síť pomocí dd

  2. Jak mohu randomizovat řádky v souboru pomocí standardních nástrojů v Red Hat Linuxu?

  3. Jak pomocí příkazu cp v linuxovém shellu zkopíruji celý adresář do jiného adresáře?