dd adalah salah satu perintah terpenting di Linux, kebanyakan digunakan untuk membackup hard disk dan partisi. Ketika digunakan dengan benar, dd dapat menjadi alat yang ampuh untuk menulis data dari satu partisi ke partisi lainnya dan melakukan tugas yang berbeda dengan file. Di sini kami tunjukkan cara menggunakan perintah dd dengan baik.
Kisah dd
Perintah tersebut awalnya dikembangkan di AT&T Bell Laboratories pada tahun 1970-an oleh seorang ilmuwan komputer bernama Ken Thompson. Itu dikembangkan untuk sistem berbasis Unix dan diberi nama yang dipilih sebagai referensi untuk pernyataan yang ditemukan dalam Bahasa Kontrol Pekerjaan IBM, yang disebut “DD.” Dapat dicatat bahwa sintaks perintah sangat mirip dengan pernyataan dalam Bahasa Kontrol Pekerjaan.
Perintah tersebut awalnya dirancang untuk menjadi utilitas untuk mengubah ASCII menjadi EBCDIC dan sebaliknya. Ini pertama kali terintegrasi dengan versi Unix pada tahun 1974, dengan dirilisnya sistem operasi Edisi ke-5.
dd disebut sebagai “penghancur disk” sebagai lelucon di komunitas Unix karena kemampuannya untuk menghancurkan data di hard disk jika digunakan secara tidak benar.
Operan Dasar
Sekarang setelah Anda mengetahui sedikit tentang latar belakang perintah dan kemampuan destruktifnya saat digunakan secara tidak benar, saatnya mempelajari cara memanfaatkan semua yang ditawarkannya kepada pengguna dari berbagai distribusi Linux.
Pertama, lihat manual menggunakan flag –help :
DD –membantu
Ada dua operan untuk perintah yang paling sering digunakan. Mereka adalah if dan of , yang masing-masing berdiri untuk “file input” dan “file output”. Operan if digunakan untuk mewakili lokasi sumber, sedangkan operan of digunakan untuk mewakili lokasi tempat Anda ingin menyimpan data dari lokasi input.
DD jika = < masukan file > dari = < berkas keluaran >
Lokasi sumber dan keluaran yang paling umum mencakup hard disk, partisi, dan image disk.
Sebelum menggunakan perintah, sebaiknya gunakan utilitas fdisk untuk melihat partisi di sistem Anda. Ini dapat dengan mudah dilakukan dengan menggunakan flag perintah -l :
sudo fdisk -l
Dalam hal ini, if digunakan untuk mewakili drive “/dev/sdaâ€, dan of mewakili drive “/dev/sdbâ€, tempat data dari “/dev/sda†akan disimpan ke:
DD jika = / dev / sda dari = / dev / sdb
Membuat Gambar Disk
Salah satu kasus penggunaan terbaik untuk perintah tersebut adalah membuat image disk dalam format file “.imgâ€. Ini sangat berguna untuk mencadangkan data pada sistem berbasis Linux Anda dan kemungkinan merupakan cara tercepat dan termudah untuk mencadangkan seluruh hard disk.
Logika di sini pada dasarnya sama dalam kasus ini, dengan operan if mewakili drive “/dev/sda” dan operan of mewakili file “.img”, tempat data dari hard disk akan disimpan ke:
DD jika = / dev / sda dari = / tmp / image.img
Menyimpan Gambar Disk ke Partisi
Membuat gambar disk dengan perintah cukup mudah, tetapi begitu juga dengan versi terbalik dari proses itu.
Dalam skenario ini, file image disk kami bertindak sebagai file input, dan partisi baru kami bertindak sebagai file output. Utilitas menyimpan data dari gambar disk kami ke partisi “/ dev/sdb” kami:
DD jika = / tmp / image.img dari = / dev / sdb
Membuat Gambar Disk Terkompresi
Jika Anda membuat gambar disk dari hard disk ukuran penuh, Anda dapat membayangkan bahwa ukuran file dari gambar disk akhir kemungkinan besar akan cukup besar. Untuk alasan ini, utilitas dd memiliki fitur yang membuat image disk terkompresi.
Gambar disk terkompresi dapat dibuat dengan menggunakan pipa | memerintah. Dalam hal ini, ini digunakan untuk mengambil konten dari file input dan menjalankan perintah gzip dengan tanda -c , dengan konten yang dikemas ke dalam file “.gz”:
DD jika = / dev / sda | gzip -C > /tmp/gambar.gz _ _ _
Menentukan Ukuran Blok
Anda juga bisa bermain-main dengan kecepatan operasi perintah dd. Ini dapat dicapai dengan menggunakan operan bs , yang digunakan untuk mewakili ukuran blok. Ukuran blok mewakili jumlah byte dd salinan ke file keluaran dalam satu contoh. Itu direpresentasikan menggunakan kelipatan 1024 byte, dan nilai default diatur ke 512 byte. Semakin tinggi ukuran blok, semakin cepat data disimpan ke file keluaran.
Dalam hal ini, kami menyetel ukuran blok ke 2048:
DD jika = / dev / sda dari = / tmp / image.img bs = 2048
Ukuran blok juga dapat ditentukan dalam kilobyte:
DD jika = / dev / sda dari = / tmp / image.img bs =2K
Menghapus Hard Disk
dd juga dapat digunakan untuk menghapus hard disk Anda. Ini dilakukan dengan membaca angka nol atau karakter acak dari “/dev/zero” atau “/dev/urandom” dan menyimpannya ke hard disk/partisi, yang menimpa data di dalamnya. Ini sangat berguna ketika Anda ingin memastikan data Anda tidak dapat diambil dengan mudah setelah Anda menjual atau membuang hard disk Anda.
Menimpa hard disk menggunakan angka nol:
DD jika = / dev / nol dari = / dev / sdb
Anda juga dapat menimpa perangkat dengan menggunakan karakter acak:
DD jika = / dev / urandom dari = / dev / sdb
Membuat Drive USB yang Dapat Di-boot
Pembuatan GB yang dapat di-boot
Mengkloning Partisi Tertentu menggunakan dd
Penggunaan brilian lainnya untuk dd adalah mengkloning partisi aktif di sistem Linux Anda. Tidak seperti file IMG, kloning memungkinkan Anda membuat salinan persis dari partisi tertentu dan segera menggunakannya. Ini dapat berguna jika Anda memiliki pengaturan multi-disk dan Anda ingin membuat partisi yang berlebihan untuk sistem Anda.
Untuk mengkloning partisi dari “/dev/sda4†ke “/dev/sdd1â€.
DD jika = / dev / sda4 dari = / dev / sdb1 conv = tidak ada kesalahan, sinkronkan
Parameter conv memungkinkan Anda menyertakan opsi tambahan untuk mengubah perilaku dd. Ini bisa sesederhana mengubah nama file menjadi huruf besar atau sesuatu yang rumit seperti mengubah properti blok. Dalam hal ini, saya menggunakan noerror dan sync :
- Opsi “noerror” memberi tahu dd untuk terus menyalin melalui file perangkat meskipun melaporkan kesalahan perangkat. Ini dapat membantu jika perangkat tempat partisi Anda sudah rusak, karena “noerror” memastikan bahwa dd akan menyalin semua data yang dapat dipulihkan di partisi itu.
- Opsi “sinkronisasi” memberi tahu dd untuk mengisi setiap blok data yang masuk ke buffer salinan. Artinya, dd akan memastikan bahwa setiap bit data yang dapat disalin sama persis antara sumber dan tujuan. Ini untuk memastikan integritas data partisi yang Anda kloning.
Membuang Isi CD menggunakan dd
Dimungkinkan juga untuk menggunakan dd sebagai alat dumping untuk konten disk. Mirip dengan file IMG, Anda dapat melakukannya dengan menggunakan disk drive sebagai input dan ekstensi .ISO sebagai output. Pertimbangkan contoh berikut:
DD jika = / dev / cdrom dari = / tmp / dump.iso conv = tidak ada kesalahan, sinkronkan
Perintah ini akan memberitahu dd untuk memuat perangkat CD-ROM dan menyalin isinya ke file ISO.
Setelah selesai, Anda dapat menggunakan perintah file untuk memverifikasi apakah file yang dibuang berukuran GB
Pertanyaan yang Sering Diajukan
Apakah mungkin untuk melihat kemajuan operasi dd?
Ya! Sangat mudah untuk melihat kemajuan operasi dd. Untuk melakukan ini, yang perlu Anda lakukan hanyalah memasukkan parameter status di akhir perintah dd Anda:
dd if=/dev/sda4 of=/dev/sdd1 conv=noerror, sync status=progress
Opsi “kemajuan” memberi tahu dd untuk mencetak blok yang sedang disalin ke keluaran standar, yang secara efektif memungkinkan Anda untuk melihat kemajuan perintah. Selain opsi “kemajuanâ€, parameter status juga menerima dua nilai tambahan:
- Noxfer : Nilai “noxfer” mirip dengan “kemajuan” tetapi tidak mencetak informasi transfer keseluruhan di akhir perintah. Ini bisa berguna jika Anda menggunakan perintah dd sebagai bagian dari pipa UNIX yang besar.
- Tidak ada : Nilai “tidak ada” memberi tahu dd untuk tidak mencetak informasi apa pun kecuali kesalahan saat dijalankan. Ini berguna jika Anda menjalankan tugas dd terjadwal seperti membuat file IMG cadangan untuk partisi yang sedang aktif.
Bolehkah selalu menyetel ukuran blok tinggi untuk mempercepat transfer?
Tidak. Meskipun menyetel ukuran blok yang tinggi pasti akan mempercepat kecepatan transfer dd, melakukan hal ini tidak akan memastikan bahwa perangkat yang Anda tuju akan diinisialisasi dengan benar. Misalnya, menyetel ukuran blok tinggi untuk media optik seperti CD-ROM atau DVD-ROM dapat menyebabkan disk tidak terbaca saat diputar di pemutar disk.
Aturan praktis yang baik adalah menggunakan ukuran blok yang tinggi hanya saat membuang dari media seperti disk dan flash drive. Lebih lanjut, ini juga merupakan praktik yang baik untuk mengatur ukuran blok maksimum menjadi 2048 kilobyte saja. Melakukan hal ini akan memastikan bahwa Anda masih dapat mengembalikan konten disk ke CD atau DVD.
Saya mencoba membuat drive USB yang dapat di-boot tetapi tidak bisa boot. Apakah dd tidak berfungsi?
TIDAK! Alasan yang paling mungkin mengapa tidak bisa boot adalah karena file yang disalin dd ke drive USB bukanlah file yang dapat di-boot. Misalnya, menulis penginstal CD ke drive USB tidak akan menetapkan tanda yang tepat untuk membuatnya dapat di-boot.
Salah satu cara untuk memastikan bootable adalah dengan memeriksa propertinya melalui program file . Misalnya:
file /Downloads/ubuntu-21.10.iso
Dari sana, Anda perlu melihat properti yang dicetak di keluaran standar. File yang dapat di-boot harus berupa gambar disk atau file hibrid ISO.
Kredit Gambar: Hapus percikan