Eu tenho um DVD (somente leitura, comercial, de camada dupla) no qual estou tentando criar uma cópia de backup no meu computador (porque os DVDs podem ser danificados). No entanto, quando tento determinar o tamanho do disco, obtenho tamanhos inconsistentes:
$ blockdev --getsize64 /dev/sr0
7687522304
$ isosize /dev/sr0
7899633664
$ cat /sys/block/sr0/size
15428972
$ echo '512 *' $(cat /sys/block/sr0/size) | bc
7899633664
Aqui, blockdev
informa um tamanho e outras coisas relatam um tamanho maior. Infelizmente, dd
, cat
, etc. parecem usar o tamanho que blockdev
relata, embora pareça haver dados nos 212111360 bytes restantes: as imagens de disco de dd
ou cat
não funcionar corretamente, du -b
em um disco montado fornece algo próximo ao tamanho maior (não exatamente, presumivelmente devido à sobrecarga do sistema de arquivos) e, na verdade, tentar acessar o sistema de arquivos montado tende a gerar erros de E / S.
Apesar disso, o disco é reproduzido corretamente em um player independente e parece funcionar (às vezes, não de forma confiável) com libdvdnav
, mas não libdvdread
.
O que está acontecendo com o disco e como obter uma cópia de backup?
EDIT: Eu adicionei mais detalhes sobre o disco em questão. Eu também pretendo fazer o backup usando o Windows para cuidar do problema imediato de "como faço para obter uma cópia de backup" (ou para obter mais informações, se isso falhar), mas eu ainda gostaria de saber o que está acontecendo e como posso fazer isso no Linux.
EDIT2: o próprio Windows pareceu funcionar, mas não possui nenhum criador de imagens em disco nativo. O Cygwin estava gerando erros estranhos que parecem não estar relacionados, e um programa do Windows projetado para criar ISOs estava encontrando muitos setores defeituosos que não apareciam na minha máquina Linux. Esses não foram os resultados que eu esperava. Eu estou postando aqui caso eles dêem dicas para o meu problema atual, mas eu não espero que eles façam isso.
EDIT3: Parece que, às vezes, o disco blockdev
size fica “preso” ao trocar discos. Isso parece acontecer quando eu uso o botão de ejeção da bandeja física em vez de “ejetar” da linha de comando. Mais investigações são necessárias de minha parte (isso é realmente o gatilho?), Mas parece fornecer tanto uma explicação (o sistema fica confuso quando eu não desmonto o disco corretamente, mesmo que os programadores deveriam ter esperado isso mais do que com Unidades USB, especialmente com mídia somente leitura) e uma possível solução alternativa (obtenha o tamanho blockdev
preso em 8,5 GB).
Agora que isso pode ser relevante, acrescentarei que estou usando o Fedora 20, com systemd
, que monta automaticamente os discos na pasta /run/media/dhouck/<DISCNAME>
. DISCNAME é determinado automaticamente a partir do sistema de arquivos; Eu não sei o suficiente sobre a UDF para dizer como, mas duvido que seja relevante. Quando o tamanho fica preso, a parte DISCNAME desse caminho de montagem também não é alterada. Eu suspeito que alguma parte do sistema está deixando de notar a mídia sendo removida e, assim, não conseguir desmontar adequadamente.