Я хочу сравнить содержимое двух образов дисков. (Например, два образа диска с бесстрашным и дерзким видом) Есть ли прямая команда для этого в Unix?
Чтобы сравнить образы дисков побайтно и перечислить все отличающиеся байты, вы можете запустить
cmp -l /path/to/first.img /path/to/second.img
Это будет сравнивать все, включая любое незанятое пространство. Если это образы файловой системы, и вы хотите сравнить файл с файлом, вам необходимо смонтировать их, а затем использовать инструмент сравнения файлов, такой как diff или rsync.
rsync --delete -n -aPc /disk1/ /disk2/
Это не будет копировать файлы на disk2 и не удалять файлы с disk1 благодаря -n
, но он покажет вам любые файлы, которые различаются между двумя файловыми системами.
Вот команда, которая сравнивает / dev / sda1 с / dev / sdb1, с графическим интерфейсом для отображения прогресса; разделы, как правило, являются большими входными данными, поэтому приятно знать, как долго вам нужно ждать завершения. Команда предназначена для конкретного диска емкостью 6 терабайт, данные о ходе выполнения будут настолько хороши, насколько хорош ваш приблизительный размер.
gprog --size-estimate 6001173463040 < /dev/sda1 | cmp - /dev/sdb1
gprog доступен из http://stromberg.dnsalias.org/~strombrg/gprog/ Я автор.
Вы могли бы сделать что-то подобное с pv, хотя я не уверен, что он будет делать с любым выводом из cmp.