Saya ingin mengambil cadangan seluruh tata letak partisi dari hard drive, termasuk drive logis, sehingga saya dapat mengembalikan tata letak itu ke disk lain. Saya tidak ingin menyalin isi partisi, hanya tata letak. Untuk partisi primary dan extended, caranya mudah:
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
Tetapi ketika datang ke tata letak partisi logis, saya bertanya-tanya apakah ada di antara alat standar cara yang serupa untuk menyimpan tata letak? Saya kira masalah utamanya adalah menemukan offset ke lokasi EBR, karena dengan itu, dd
akan melakukan sisanya. Ingatlah bahwa saya harus dapat mengembalikan semuanya ke (mungkin) disk kosong dan dengan demikian mengembalikan tata letak yang sama. Menggunakan alat partisi seperti fdisk
atau parted
baik-baik saja, tetapi saya harus dapat mengotomatiskan penggunaannya (scripting) dan mereka tidak boleh bergantung pada paket terkait-X — hanya baris perintah.
Rencana pencadangan saya melakukannya secara manual dalam skrip python kecil menggunakan modul struct, tetapi saya lebih berharap ada cara yang lebih mudah.
Jawaban yang Diterima:
Anda dapat menggunakan sfdisk untuk tugas ini bahkan dalam disk yang dipartisi GPT*.
Simpan:
sfdisk -d /dev/sdX > part_table
Pulihkan dengan menyimpan ID disk &partisi yang sama**:
sfdisk /dev/sdX < part_table
Pulihkan membuat ID disk &partisi baru**:
grep -v ^label-id part_table | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdY
Catatan
*:Untuk tabel partisi GPT , ini membutuhkan sfdisk
dari util-linux 2.26 atau lebih baru. Itu ditulis ulang dari awal di atas libfdisk.
**:secara default sfdisk
akan menyalin ID disk dan partisi tidak berubah, daripada membuat yang baru. Jadi disk baru akan menjadi tiruan dari yang asli, bukan hanya disk lain dengan tata letak yang sama. Perhatikan bahwa /dev/disk/by-uuid/
Linux Linux melihat UUID sistem file, bukan UUID di tabel partisi. sfdisk
akan menghasilkan UUID baru jika Anda menghapus referensi ke id partisi (, uuid=...
) dan referensi ke id disk (label-id: ...
) dari tempat sampah .