Должен ли я добавить опцию синхронизации, как предложил wiki.archlinux.org?
Если вы собираетесь использовать опцию conv=noerror
, то вам лучше использовать с ней conv=sync
, иначе вы можете получить бесполезную резервную копию.
По справочной странице Linux
Each CONV symbol may be:
...
sync
pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs
Эта опция, которая может добавить заполнение, необходима при указании noerror
или опции "продолжить после ошибок чтения". Контроллер диска не предоставляет данные сектора для входного буфера, когда происходит жесткая (то есть неустранимая) ошибка чтения. Если dd завершается с такой ошибкой (как это обычно бывает), то нехватка данных не является проблемой.
Однако, когда указано "продолжить после ошибок чтения", возникает проблема с отсутствием данных. Если входной буфер не дополняется для учета сектора (ов), который является / нечитаемым, то записываемые последующие данные будут смещены относительно надлежащих секторов, в которые они должны быть записаны. Или, если последующие данные пропущены по целевым секторам, соответствующим ошибкам (или произвели поиск (на языке dd ) в соответствующем секторе), то данные мусора в этих пропущенных секторах будут обрабатываться как копии исходных данных.
Если вы использовали dd для копирования блоков с целым порядковым номером, заполнение может не потребоваться для обнаружения или учета отсутствующих блоков. Нельзя предположить, что сырые секторы диска имеют такую интегральную порядковую нумерацию и требуют заполнения, чтобы попытаться сохранить целостность скопированной файловой системы.
Обратите внимание, что есть две опции sync
, доступные с dd.
Один - conv=sync
а другой - iflag=sync
. У них разные значения.
Должен ли я установить bs = 16384kB в качестве размера дискового кэша, а не большее число, чтобы максимизировать скорость?
Какое "большее число" вы имеете в виду?
Параметр bs
, size block, никак не связан с размером кеша (хотя я не уверен, к какому кешу вы обращаетесь).
16 МБ, вероятно, излишне, так как может даже не хватить памяти DMAable для блокировки. Существуют некоторые тесты производительности для изменения размера блока, и те, которые я видел, такие как этот , подтверждают мое подозрение, что существует размер уменьшающегося (или, по крайней мере, не больше) возврата, который, кажется, составляет около 512 КБ.
Классическим значением для bs
при копировании жесткого диска был размер дорожки в байтах (или num_of_sectors_per_track * 512 байтов). Но поскольку современные жесткие диски используют зонированную битовую запись и изменяют плотность записи, не существует фиксированного (или известного в этом отношении) "количества секторов на дорожку". Типичная опубликованная спецификация "63 сектора на дорожку" на современных дисках представляет собой просто численное удобство.