por que as pessoas usam “notrunc” ao fazer uma ISO a partir de um DVD?

5

Existem muitos artigos na web que descrevem uma linha de comando para criar uma imagem ISO a partir de um disco DVD-Vídeo como este:

dd if=/dev/sr0 of=mydvd.iso conv=noerror,sync,notrunc

Gostaria de entender por que notrunc é necessário. De meu conhecimento, e da página man para o comando, notrunc impede que o arquivo de saída seja truncado. Isso basicamente significa que, se o arquivo existir, dd apenas sobrescreve o que já está lá; se houver conteúdo lá que dd não toque (talvez buscando outro ponto no arquivo), então esse conteúdo original é deixado intacto.

Ao criar um ISO, certamente você deseja começar com um arquivo novo, limpo e vazio?

A única coisa em que consigo pensar é no caso de um disco muito ruim, usar notrunc permite que você execute o mesmo comando dd várias vezes sobre o mesmo arquivo de saída para, esperançosamente, preencher diferentes bits a cada vez. Se o arquivo de saída não existir, notrunc não terá efeito.

É isso, ou existe algum outro motivo para todos especificarem notrunc ?

(Eu não estou perguntando como contornar CSS, ARccOS ou qualquer outra coisa; apenas sobre dd usage)

    
por starfry 07.10.2014 / 12:54

2 respostas

1

Não é necessário se você quiser copiar um DVD inteiro num ficheiro que conterá posteriormente apenas o carga útil desse DVD. Na verdade, notrunc é um risco para privacidade e pode causar estouro de mídia se você sobrescrever um arquivo antigo que é maior que a carga útil do DVD. Neste caso, os blocos excedentes do arquivo antigo serão fique anexado ao conteúdo do DVD copiado. Então eles iriam ser copiado para um novo DVD junto com o sistema de arquivos.

Bastante útil é aconselhar no comentário de starfry para copiar apenas os blocos do sistema de arquivos ISO 9660 (se é na verdade ISO 9660) porque o suporte de DVD pode entregar mais blocos do que aqueles do sistema de arquivos.

    
por 08.10.2014 / 07:49
0

Se eu tivesse que adivinhar, com base nesse comentário do artigo da Wikipedia sobre dd :

The notrunc conversion option means do not truncate the output file — that is, if the output file already exists, just replace the specified bytes and leave the rest of the output file alone.

o uso de notrunc é por motivos de desempenho. Não faz sentido reescrever o arquivo inteiro apenas para atualizar alguns bytes / kbytes / megabytes / etc.

OBSERVAÇÃO: A resposta definitiva para essa pergunta é a StackOverflow Q & A que @garethTheRed mencionado nos comentários, intitulado: Por que usar conv = notrunc ao clonar um disco com dd? . A resposta é excelente e inclui um programa em C ++ que demonstra o efeito que O_TRUNC tem em dispositivos de bloco & arquivos.

    
por 07.10.2014 / 13:52

Tags