GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkloning disk dengan perintah Linux dd

Dalam tutorial ini kita akan merujuk pada contoh praktis perintah dd Linux yang dapat digunakan oleh administrator sistem untuk memigrasi atau mengkloning Sistem Operasi Windows atau OS Linux dari HDD yang lebih besar yang dipartisi dalam gaya tata letak MBR atau GPT ke SSD yang lebih kecil. Dalam kutipan ini kita akan menggunakan sebagai contoh sistem Windows yang diinstal pada hard disk dengan banyak partisi. Metode ini bisa menjadi sangat rumit jika HDD dipartisi dalam skema MBR dan berisi partisi extended dengan beberapa partisi logis atau partisi rusak. Saya sarankan Anda tidak menggunakan metode ini jika itu masalahnya. Dalam kasus seperti itu, lebih aman menggunakan ddrescure yang dapat mengkloning seluruh tata letak disk Anda (tabel partisi dan blok bekas di dalam setiap partisi) tanpa benar-benar mentransfer ruang kosong. DDrescure dapat diperoleh dengan menginstal paket gddrescue dari repositori utama Ubuntu.

LANGKAH SATU - Kecilkan Partisi

Anda dapat mengubah ukuran partisi Linux atau Windows (menyusut) ke ukuran minimal menggunakan distribusi Linux langsung seperti Gparted atau menjalankan utilitas GUI gparted dari image Ubuntu Desktop Live ISO. Distribusi Linux berbayar lainnya yang dapat Anda gunakan untuk memanipulasi ukuran sistem file partisi disk (ext2, ext4, NTFS, xfs) adalah Partition Wizard atau Parted Magic. Anda juga dapat menggunakan utilitas diskmgmt.msc Microsoft Windows untuk mengecilkan partisi NTFS. Dengan mengecilkan ruang kosong dari sebuah partisi, waktu yang diperlukan dd untuk menyalin blok disk yang tidak digunakan, jika ada partisi yang besar, akan berkurang secara drastis. Dalam kasus partisi besar dengan hanya sebagian kecil dari ruang yang digunakan, disarankan untuk mengecilkan sistem file karena utilitas dd juga akan menyalin ruang yang tidak digunakan dalam proses (dd juga akan menyalin semua blok bebas dari partisi 100GB atau 1 TB yang memiliki kurang dari 10% dari ruang yang digunakan).

LANGKAH KEDUA - Disk Kloning

Setelah partisi diubah ukurannya menjadi minimal, secara fisik tancapkan disk atau SSD kedua ke pengontrol mesin SATA/SCSI dll dan boot mesin dengan distribusi Live Linux. Setelah distribusi Linux langsung dimuat ke dalam RAM, buka konsol Linux dan jalankan fdisk -l /dev/sda (assunig bahwa /dev/sda adalah disk instalasi windows Anda atau drive C:di lingkungan windows) dan catat " Sektor akhir" (44898303 seperti yang ditunjukkan pada contoh di bawah):

- Contoh Satu - Mengkloning disk MBR (OS Windows diinstal pada partisi kedua)

Dalam kutipan ini disk dibalik, jadi /dev/sdb mewakili instalasi Windows disk dan /dev/sda mewakili SSD kosong.

Kemudian jalankan perintah berikut dengan hak akses root untuk mengkloning disk instalasi Windows dari HDD (/ dev/sdb) ke SSD (/ dev/sda). utilitas pv tidak diinstal secara default di Ubuntu. Anda dapat menginstalnya dengan menjalankan:

sudo apt install pv

Kemudian mulailah proses kloning dengan mengeluarkan perintah di bawah ini:

sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sda

PERHATIAN:disk target harus setidaknya berukuran total ruang yang ditempati oleh semua partisi hingga partisi Windows dari disk sumber, termasuk partisi Windows.

Menjelaskan perintah yang digunakan pada contoh di atas:

dd - dd singkatan dari "Salin dan Konversi". Beberapa orang mungkin mengatakan itu adalah singkatan dari 'Data Destroyer' (jika Anda menyesatkan perintah, beberapa kerusakan serius dapat terjadi) atau Duplikat Data atau Deskripsi Data. Gunakan deskripsi apa pun yang sesuai dengan kebutuhan Anda!

if - disk sumber (file masuk/input)

bs - Nilai ukuran sektor dari keluaran fdisk (Ukuran Blok atau jumlah byte yang akan dibaca/ditulis satu kali)

count - Sektor "Akhir" terakhir dari keluaran fdisk bertambah satu bilangan bulat (+1) - Berapa banyak 512 blok ukuran yang harus disalin sebelum berhenti. Di sini, ia harus mentransfer 44099584 sektor berukuran 512 byte.

conv=sync,noerror - sinkronkan I/O dan jangan berhenti jika Anda menemukan kesalahan blokir pada disk sumber

| - Pipa Linux (saluran komunikasi antarproses di Linux atau FIFO)

pv -s 21GB - pantau kemajuan kloning - Sekitar 21GB harus ditransfer melalui pipa

dari - disk target tempat data yang disalurkan sebenarnya ditulis (file keluaran/keluaran)

Jika Anda ingin beroperasi dengan Ukuran Blok yang lebih besar daripada ukuran blok disk standar (512), katakanlah hingga empat kali ukuran blok standar (2048), untuk mempercepat, Anda dapat melakukan beberapa matematika sederhana dan mengalikan dengan empat ukuran blok standar disk (512x4) dan kemudian bagi jumlah total blok +1 dari partisi terakhir dengan empat.

Contoh:

Dalam contoh ini "End" dari sda2 :44898303+1 dibagi 4. dd akan beroperasi dengan ukuran blok 2048 byte.

sudo dd if=/dev/sda bs=2048 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sdb

Setelah proses selesai (tergantung pada ukuran dan kecepatan disk Anda, dapat memakan waktu sepuluh menit atau bahkan berjam-jam) verifikasi disk target menggunakan perintah sfdisk yang sama dan bandingkan output dari kedua disk. Hasilnya harus serupa.

- Contoh Dua - Mengkloning disk GPT (OS Windows diinstal pada partisi keempat)

Dalam kutipan ini, dd akan beroperasi dengan ukuran blok hingga delapan kali ukuran blok standar (4096) untuk mentransfer lebih banyak blok sekaligus. OS Windows berada di partisi keempat hard disk. Semua partisi Windows sebelumnya juga harus dikloning. Disk akan disalin sepenuhnya hingga sektor 19855359 terakhir, yang merupakan akhir dari batas partisi Windows. Data yang mengikuti sektor 19855359+1 mewakili partisi D:di Windows, jadi partisi ini tidak menarik bagi kami karena kami hanya ingin mengkloning partisi sistem operasi.

Kalikan dengan delapan ukuran blok standar disk (512x8) dan kemudian bagi jumlah total blok +1 dari partisi terakhir dengan delapan seperti yang diilustrasikan pada gambar di bawah. "End" dari sda4 yang mewakili partisi Windows adalah 19855359+1 dibagi 8. dd beroperasi dengan ukuran blok 4096 byte.

sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G |sudo dd of=/dev/sdb

Dalam contoh ini, karena kami hanya menyalin OS Windows dan bukan seluruh data disk yang mengikuti partisi keempat, kami perlu menghapus partisi terakhir. Kita dapat menghapusnya dengan menjalankan utilitas baris perintah cgdisk langsung dari konsol seperti yang diilustrasikan pada tangkapan layar berikut

Verifikasi perbedaan tabel partisi pada kedua disk dengan mengeluarkan perintah fdisk. Tabel partisi harus serupa, kecuali partisi ke-5 dari /dev/sda yang harus dihapus dari disk kloning (/dev/sdb ).

LANGKAH KETIGA - Uji Disk Kloning

Terakhir, matikan mesin, cabut hard disk lama dan nyalakan komputer hanya dengan disk kloning baru. Seharusnya boot-up di sistem operasi Anda dalam waktu singkat. Jika mesin menolak untuk boot, verifikasi secara fisik konektor SATA pada motherboard dan coba balikkan atau buka pengaturan BIOS/UEFI dan pastikan disk yang sesuai diaktifkan dalam urutan booting.

Cobalah untuk tidak mem-boot mesin dengan kedua disk terpasang karena dapat membingungkan bootloader, membuat mesin Anda tidak mungkin memulai sistem operasi. Setelah Anda mendapatkan konfirmasi bahwa sistem operasi Anda melakukan boot-up secara normal, gunakan alat yang sama seperti untuk mengecilkan sistem file untuk memperluas partisi kloning dengan menambahkan ruang yang tidak terisi.

Dengan menggunakan metode dd ini, Anda dapat mentransfer varian OS Windows atau Linux apa pun dengan semua pengaturan khusus, program dan file yang diinstal dari HDD yang lebih besar ke SSD yang lebih kecil, tanpa beban untuk menginstal OS dari awal dan menghabiskan banyak waktu untuk menyesuaikannya .


Linux
  1. Cara Mencadangkan atau Mengkloning Partisi Linux Menggunakan Perintah 'cat'

  2. Cara Setup ZFS Filesystem di Linux dengan Contoh Perintah zpool

  3. Cara Mengkloning partisi disk Linux melalui jaringan menggunakan dd

  1. Cara mempartisi disk di Linux

  2. Cara Menggunakan Perintah IP di Linux dengan Contoh

  3. Kelola disk dengan DiskPart

  1. Cara Menghapus Partisi di Linux

  2. Cara Membuat Partisi di Linux

  3. Perintah alias Linux:Cara Menggunakannya Dengan Contoh