Mengikuti instruksi pada halaman ini , halaman menunjukkan dd
perintah dan sync
opsi di akhir. Perintahnya adalah sebagai berikut:
xzcat ~/ubuntu.img.xz | sudo dd of=/dev/sdX bs=32M sync
Saya tahu apa itu dd
dan bagaimana cara kerjanya tetapi saya belum pernah mendengar atau menggunakan sync
opsi dengannya dan entri halaman manualnya seperti:
sync pad every input block with NULs to ibs-size; when used with
block or unblock, pad with spaces rather than NULs
Apa NUL
dan mengapa itu padded ke ibs-size
, dan mengapa repot-repot mengisi blok data dan menggunakan sync
opsi dengan dd
perintah? Mengapa tidak menjaganya agar tetap sederhana dan mudah?
Ketika saya mencoba menjalankan sync
dengan perintah karena dengan lokasi dan nilai yang sesuai saya mendapatkan kesalahan berikut:
dd: unrecognized operand ‘sync’
Try 'dd --help' for more information.
dd ... conv=sync
argumen.conv=sync
opsi, tampaknya cukup jelas mengapa tidak digunakan untuk ini. Paling-paling itu tidak akan melakukan apa-apa, paling buruk itu akan merusak gambar selama penyalinan.oflag=fsync
(yang flushes output dd telah menulis) daripadasync
perintah (yang flushes semuanya pada sistem.sync
adalah argumen untuk keduanyaconv
dan opsiiflag
atauoflag
.Secara default, dd akan membaca dalam data satu blok pada suatu waktu, mungkin membaca dalam blok yang lebih pendek dari yang ditentukan pengguna, baik di akhir file atau karena perilaku perangkat sumber; ini disebut catatan parsial . Ini kemudian akan menulis blok yang ukurannya sama dengan jumlah yang dibaca.
Dd akan mengulangi ini sampai jumlah yang ditentukan tercapai, atau ia melihat bukti pada input, atau kesalahan pada input atau output. Ketika selesai, dd melaporkan jumlah catatan penuh dan sebagian yang dibaca dan ditulisnya.
Perilaku ini baik untuk menyalin file biasa dalam sistem file atau melalui koneksi jaringan TCP, karena itu dianggap sebagai aliran byte. Tetapi objek sistem file lain, seperti DVD mentah dan pita magnetik, memerlukan ukuran tulis yang berada dalam rentang tertentu dan merupakan kelipatan bulat dari sejumlah jumlah (seperti 512 atau 2048 byte). Misalnya, jika Anda memiliki gambar disk yang 255 lagu dari 63 sektor byte-byte, dan ingin menulis ke kaset yang membutuhkan ukuran blok 1024 byte, Anda harus melakukan sesuatu seperti
untuk memastikan bahwa dd tidak mencoba untuk menulis blok 512-byte di akhir. Blok yang lebih pendek di ujungnya akan diisi dengan nol atau kosong. Padding dengan nol adalah pilihan umum yang aman. Opsi untuk dd to pad dengan blank berguna dalam situasi yang berbeda - mengonversi file yang memiliki garis panjang variabel ke file dengan garis panjang tetap.
sumber
Saya telah menemukan bahwa sistem linux, bukan dd, cache buffer. Karena itu, ketika perintah dd telah selesai, saya menjalankan sinkronisasi sebagai
Saya belum menggunakan opsi dd internal apa pun untuk menyebabkan buffer flushing. Namun biasanya, ketika saya membuat versi USB dari distribusi, saya adalah satu-satunya di komputer, jadi saya tidak punya keraguan tentang perintah yang saya posting yang membahayakan. Karena saya menjalankan sinkronisasi sebagai &&, sinkronisasi dilakukan dengan hak sudo dan saya yakin bahwa USB yang saya buat sudah lengkap.
sumber
Anda dapat menggunakan
sync
opsi untuk keluaran, yang termasuk dalamdd
perintah, denganoflag
simbol:sumber