Apakah ada utilitas (atau beberapa shell magic) yang memungkinkan saya untuk membandingkan dua perangkat blok?
Detail: Saya memiliki satu perangkat RAID besar (0,5 TB) yang telah saya cadangkan ke perangkat SATA yang sedikit lebih besar menggunakan dd. Perangkat memiliki beberapa partisi di atasnya, namun saya menyalin dari perangkat 'induk' dan bukan node perangkat dipartisi (misalnya, saya menyalin / dev / hda dan bukan / dev / hda1 misalnya).
Saya ingin memverifikasi bahwa cadangan baik / benar.
Saya telah berpikir tentang menjalankan md5sum di setiap perangkat, namun itu tidak akan memberi saya hasil yang akurat karena perangkat kedua sedikit lebih besar dari yang pertama dan dengan demikian byte tambahan akan mengubah hash.
sumber
info cmp
: "Perintah 'cmp' membandingkan dua file, dan jika mereka berbeda, memberi tahu byte pertama dan nomor baris di mana mereka berbeda."--bytes=LIMIT
opsi, mengaturLIMIT
nilai ke bytesize dari perangkat yang lebih kecil untuk berhenti di akhir drive yang lebih kecil (atau batas partisi) tanpa haruscmp
keluar dengan status bukan nol.Bergantung pada seberapa penuh drive sebenarnya, mungkin lebih cepat untuk me-mount sistem file dan melakukan
Kalau tidak, saya akan mengatakan sesuatu seperti ini:
Jelas mencari tahu seberapa besar Anda perlu membuat
bs
dancount
berhenti di (atau sebelum itu jika jauh lebih nyaman) ujung drive yang lebih kecil.Atau, berkat komentar enzotib, sepertinya Anda bisa menggunakan
cmp
, tetapi Anda akan memerlukan-n
bendera untuk membatasi jumlah byte ke yang lebih pendek dari dua drive.sumber
diff
subkulit tidak akan membaca seluruh perangkat sebelum menulisnya.dd
menulisbs
byte segera setelah membacanya (atau memproses jika ditentukan, tidak di sini), dan mereka menulis kefifo
s, yang memblokir sampai mereka dibaca.Anda mencari perangkat lunak biner
rdiff
dirancang untuk backup dan transmisi jaringan, lihat rdiff-backup dan dupity untuk backup propuse
xdelta3
adalah sumber biner diferensial, alat kompresi diferensial, kompresi delta VCDIFF (RFC 3284).
bsdiff
juga !! haus memori, tidak cocok untuk perangkat blok.
sumber
Ada sebuah utilitas bernama bsdiff , yang melakukan hal semacam ini. Itu benar-benar cepat, dan dapat menghasilkan tambalan biner, jika Anda perlu.
Lihat posting ini untuk penjelasan di sekitarnya.
sumber
bsdiff
Pekerjaan lebih kompleks daripada hanya membandingkan dua file, jadi saya ragu itu bisa lebih cepat daripada yang lebih sederhanacmp
.Anda dapat membandingkan dua perangkat blok berukuran berbeda menggunakan
md5sum
seperti ini:(dengan asumsi perangkat yang lebih kecil
/dev/sda
)sumber
Pertimbangkan berjalan
fsck
di cadangan. Anda mungkin perlu memainkan beberapa triklosetup
untuk mendapatkan perangkat loopback diatur pada partisi yang tertanam dalam cadangan, tetapi jika pemeriksaan file mengatakan struktur file konsisten, data itu sendiri kemungkinan bagus.Jika Anda menginginkan checksum lengkap, Anda dapat menggunakan perangkat loopback dengan offset untuk melihat 'partisi' internal masing-masing dari cadangan dan md5sum secara terpisah, tetapi yang dipaksakan
fsck
mungkin memberi Anda ide dasar yang jauh lebih cepat daripada perbandingan byte demi byte atau perhitungan checksum.sumber