Should I add sync option as wiki.archlinux.org suggested?
Se você for usar a opção conv=noerror
, é melhor usar o conv=sync
com ele ou pode acabar com um backup inútil.
Pela página man do 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
Essa opção que pode adicionar preenchimento é necessária ao especificar também a opção noerror
ou "continuar após erros de leitura". O controlador de disco não fornece dados de setor para o buffer de entrada quando ocorre um erro de leitura difícil (isto é, irrecuperável). Se dd for terminado em tal erro (como normalmente faria), então a falta de dados não é um problema.
No entanto, quando "continuar após erros de leitura" é especificado, a falta de dados é um problema. Se o buffer de entrada não for preenchido para considerar o (s) setor (es) que é ilegível, os dados subseqüentes que serão gravados serão compensados dos setores apropriados para os quais devem ser gravados. Ou, se os dados subseqüentes pulassem os setores de destino correspondentes aos erros (ou se um buscasse (no jargão dd ) para seu setor correspondente), então os dados de lixo naqueles setores ignorados seriam tratados como cópias de dados originais.
Se você estava usando o dd para copiar blocos que tinham um número de seqüência integral, o preenchimento pode não ser necessário para detectar ou considerar os blocos ausentes. Não se pode presumir que os setores de discos brutos tenham tal numeração de seqüência integral e exigem preenchimento para tentar preservar a integridade do sistema de arquivos copiado.
Observe que há duas opções sync
disponíveis com dd .
Um é conv=sync
e o outro é iflag=sync
. Eles têm significados diferentes.
Should I set bs=16384kB as the disk cache size rather than the larger number to maximize the speed?
A que "maior número" você está se referindo?
O parâmetro bs
, tamanho do bloco, não tem nada a ver com o tamanho do cache (embora não tenha certeza de qual cache você está se referindo).
16MB é provavelmente um exagero, já que pode não haver muita memória DMAable disponível para bloquear. Existem alguns testes de benchmark para variar o tamanho do bloco e os que eu vi, como este , confirma minha suspeita de que há um tamanho de retorno diminuindo (ou pelo menos não mais), que parece ser de cerca de 512KB.
Um valor clássico para bs
ao copiar um HDD costumava ser o tamanho da trilha em bytes (ou num_of_sectors_per_track * 512 bytes). Mas, como os HDDs modernos usam o registro de bits zonados e variam a densidade de área, não existe um "número de setores por trilha" fixo (ou conhecido). A típica especificação publicada de "63 setores por faixa" em unidades modernas é meramente uma conveniência numérica.