Answers:
我会使用命令
cmp /dev/hda /dev/hdb
它会停在第一个不同的字节上,写出它的偏移量,或者停在较短的字节上的EOF位置。
info cmp
:“'cmp'命令比较两个文件,如果它们不同,则告诉它们第一个字节和行号不同。”
--bytes=LIMIT
选项,将LIMIT
值设置为较小设备的字节大小,以在较小驱动器(或分区边界)的末尾停止,而不会cmp
退出非零状态。
根据驱动器的实际容量,挂载文件系统并执行
diff -qr /mnt/root1 /mnt/root2
否则,我会这样说:
diff -q <(dd bs=1M count=500K if=/dev/sda) <(dd bs=1M count=500K if=/dev/sdb)
显然,要弄清楚您需要制造多大bs
然后count
停在较小驱动器末端的位置(或者如果方便得多,则应停在该位置之前)。
或者,由于enzotib的评论,您似乎可以使用cmp
,但是您需要使用-n
标志来将字节数限制为两个驱动器中较短的那个。
cmp /dev/sda /dev/sdb -n 500GB
diff
子外壳将不会在写入之前读取整个设备。读取字节后立即dd
写入bs
字节(或进行处理(如果指定的话,此处不进行处理)),然后写入fifo
s,直到被读取为止一直阻塞。