Тест в feature.h
#if (defined(WIN32) || defined(FEAT_XCLIPBOARD)) && defined(FEAT_EVAL)
# define FEAT_CLIENTSERVER
#endif
таким образом, необходимо удостовериться, что FEAT_XCLIPBOARD включен. Это сделано здесь:
#if defined(FEAT_NORMAL) && defined(FEAT_VISUAL) \
&& (defined(UNIX) || defined(VMS)) \
&& defined(WANT_X11) && defined(HAVE_X11)
# define FEAT_XCLIPBOARD
# ifndef FEAT_CLIPBOARD
# define FEAT_CLIPBOARD
# endif
#endif
Таким образом, выглядит, как будто Вы пропускаете некоторый пакет X11-devel.
Я использовал бы команду
cmp /dev/hda /dev/hdb
это остановится на уровне первого отличающегося байта, выписывая его смещение, или на EOF на более коротком.
В зависимости от того, насколько полный диски на самом деле, это может быть самым быстрым, чтобы смонтировать файловые системы и сделать
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, который блок, пока они не читаются.
– Kevin
24.01.2012, 20:52
Существует утилита, названная bsdiff, который делает точно такого рода вещь. Это делает это действительно быстро, и это может генерировать двоичный патч, если Вам нужно.
См. это сообщение для некоторого объяснения вокруг этого.
bsdiff
задание более сложно, чем, просто сравнивают два файла, таким образом, я сомневаюсь, что это может быть быстрее, чем более простое cmp
.
– enzotib
24.01.2012, 22:54
Вы ищете двоичное различное программное обеспечение
rdiff
разработан для резервного копирования и сети transmition, взгляд на rdiff-резервное-копирование и двуличность для резервного копирования propuse
xdelta3
двоичная разность с открытым исходным кодом, дифференциальные инструменты сжатия, VCDIFF (RFC 3284) сжатие дельты.
bsdiff
также!! голодная память, не подходит для блочных устройств.
Рассмотрите возможность запуска fsck
в резервной копии. Возможно, вам придется поиграть с losetup
, чтобы установить устройства обратной связи на разделы, встроенные в резервную копию, но если проверка файла показывает, что структура файла согласована, сами данные, скорее всего, хороши.
Если вам нужна полная контрольная сумма, вы можете использовать устройства loopback со смещениями, чтобы посмотреть на внутренние «разделы» резервной копии и md5sum по отдельности, но принудительный fsck
может дать вам общее представление о многом. быстрее, чем байт для сравнения байтов или вычисления контрольной суммы.
Вы можете сравнить два блочных устройства разного размера, используя md5sum
следующим образом:
(при условии, что меньшее устройство - / dev / sda
)
# md5sum /dev/sda && head -c $(blockdev --getsize64 /dev/sda) /dev/sdb | md5sum
info cmp
: "Команда 'cmp' сравнивает два файла, и если они отличаются, говорит первый байт и номер строки, где они отличаются". – enzotib 24.01.2012, 22:47--bytes=LIMIT
опция, устанавливаяLIMIT
оцените крохотному из устройства меньшего размера для остановки в конце диска меньшего размера (или граница раздела) без наличияcmp
выход с ненулевым состоянием. – rozcietrzewiacz 30.10.2012, 11:26