Como verificar se o DVD-R está fechado?

3

Quando gravo um DVD com o Brasero, ele pergunta se eu quero fechar o DVD após a gravação ou deixá-lo aberto para adicionar arquivos depois.

Como posso verificar se um DVD é somente leitura ou se ainda é gravável? Estou falando, claro, de DVD-R, não de discos DVD-RW.

Estou procurando algum tipo de comando de console para verificar se o disco está fechado ou não.

    
por David 08.02.2018 / 09:57

2 respostas

1

O teste da sobremesa responde exatamente à pergunta de David.

Mas, como dito no meu comentário, temos três estados possíveis para o DVD-R. Para diferenciá-los, pode-se usar a opção cdrskin -minfo . (Note bem: -minfo sem o "s" de -msinfo .)

cdrskin dev=/dev/sr0 -minfo 2>/dev/null | grep '^disk status:'

Isso deve render 4 resultados de texto possíveis na saída padrão.

Com um meio em branco (não usado e gravável):

disk status:              empty

Com um meio acrescentável (escrito e ainda gravável):

disk status:              incomplete/appendable

Com um meio fechado (escrito e não mais gravável):

disk status:              complete

Como quarto resultado possível, se algo der errado ao acessar o meio, nenhum texto aparecerá. Neste caso, você deve repetir o executar sem 2>/dev/null | grep '^disk status:' em ordem para ver todas as mensagens.

(eu uso /dev/sr0 no exemplo, porque /dev/hdc está fora de moda como nome do dispositivo desde pelo menos a versão 3 do kernel.)

    
por Thomas Schmitt 08.02.2018 / 22:30
1

Você pode usar cdrskin para obter essas informações. Aqui estão as duas opções que podem ser úteis (de man cdrskin , ênfase minha):

  

-minfo
  Imprima informações sobre a mídia carregada. Isso inclui o tipo de mídia, o estado de gravabilidade e uma tabela de conteúdo bastante legível.
  -msinfo
                Recuperar informações de várias sessões para preparar uma sessão de acompanhamento                 opção -C dos programas mkisofs, genisoimage ou xorriso -as                 mkisofs. Imprima o resultado para a saída padrão. Esta opção                 redireciona para stderr toda saída de mensagem exceto a de opção                 --tell_media_space e sua própria string de resultado, que consiste em                 dois números. A sequência de resultados deve ser usada como argumento de                 opção -C com os referidos programas. Dá o endereço inicial do                 sessão mais recente e o endereço de início previsto do próximo                 sessão a ser anexada. A string está vazia se a mais recente                 sessão não foi escrita com a opção -multi.                 Para ter uma chance de trabalhar em mídia sobrescrita, esta opção                 tem que ser acompanhado pela opção --grow_overwriteable_iso.

A página man também tem uma lista de exemplos, um dos quais mostra o uso de -msinfo :

  

Obtenha informações de várias sessões para a opção -C do programa mkisofs:

c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null)
mkisofs ... -C "$c_values" ...

Para resumir, você deve ser capaz de testar um CD / DVD para ser acrescentado com o seguinte script:

#!/bin/bash
if [ "$(cdrskin -msinfo 2>/dev/null)" ]; then
  echo "Medium is appendable"
else
  echo "Medium is blank or closed"
fi

Versão Oneliner:

[ "$(cdrskin -msinfo 2>/dev/null)" ] && echo "appendable" || echo "blank or closed"

cdrskin usa a unidade padrão, que deve estar bem para quase todos. Se ele usar o dispositivo errado, especifique-o explicitamente com a opção, por exemplo %código%. Em caso de dúvida, você pode exibir informações sobre um dispositivo com a opção dev=/dev/sr1 .

    
por dessert 08.02.2018 / 14:42