GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menyalin Tata Letak Partisi Disk Utuh Menggunakan Alat Standar?

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 .


Linux
  1. Cara Membuat Partisi di Linux untuk Ukuran 2TB menggunakan Parted GPT

  2. Bagaimana cara mengacak baris dalam file menggunakan alat standar di Red Hat Linux?

  3. Menggunakan perintah cp di shell linux, bagaimana cara menyalin seluruh direktori ke direktori lain?

  1. Cara mempartisi disk di Linux

  2. Menggunakan perintah mkfs di Linux untuk Memformat Sistem File pada Disk atau Partisi

  3. Cara Mengkloning partisi disk Linux melalui jaringan menggunakan dd

  1. Cara Menghapus Partisi Disk menggunakan Parted Command

  2. Cara menyalin file ke banyak direktori menggunakan perintah gnu cp

  3. Bagaimana cara mengetahui apa yang menghabiskan semua ruang di partisi / saya?