Tem que ejetar o DVD após cada gravação com o growisofs

0

Eu estou escrevendo arquivos em um DVD com growisofs uma vez por dia. Cada vez que eu adiciono ao DVD, eu tenho que ejetar o DVD e, em seguida, re-carregar o DVD, a fim de ver o arquivo que acabei de escrever. Eu estou usando o RHEL 5.0 e para inicializar um DVD em branco, eu uso o comando:

growisofs -Z /dev/dvd -rJ -use-the-force-luke=notray file1

, que gravará o arquivo1 no DVD. Em seguida, tentarei escrever o arquivo2 no DVD (sem ejetar o DVD entre eles) com o comando:

growisofs -M /dev/dvd -rJ -use-the-force-luke=notray file2

e isso falhará com o erro:

"/usr/bin/mkisofs: Invalid argument. Seek error on old image

: - ( mkisofs has failed: 22"

Se eu ejetar e, em seguida, tentar o comando growisofs -M novamente, ele irá gravar com sucesso o arquivo2, mas se eu tentar gravar o arquivo3, o arquivo3 falhará com o mesmo erro.

Lembro-me de ler em algum lugar (pode ter sido uma man page) que entre sessões de gravação você pode ter que ejetar e recarregar o DVD, no entanto, eu não tive esse problema com unidades não compatíveis com Blue-Ray.

Mesmo que isso seja um problema com as unidades Blue-Ray que estou tentando, existe uma maneira de simular uma ejeção sem realmente ejetar um disco? Ou alguma outra maneira de contornar isso sem ter que ejetar fisicamente o DVD? Eu não posso fazer uma ejeção -T porque é uma unidade de laptop, então a unidade não pode fechar por conta própria.

Qualquer ajuda ou idéia seria muito apreciada. Eu olhei para comandos ioctl como:

ioctl(file_descriptor, CDROMSTART)
ioctl(file_descriptor, CDROMSTOP)

mas eu não olhei muitos outros comandos ou encontrei um comando que resolve o meu problema ... ainda

Obrigado.

    
por Kevin S. 29.12.2009 / 23:49

2 respostas

1

A ejeção é requerida por algumas unidades - obriga-as a reler o conteúdo do disco após uma sessão de gravação ter alterado esse conteúdo. É uma coisa de hardware, então, para fingir, você precisa convencer a unidade de que ela acabou de carregar uma nova mídia e precisa executar sua digitalização inicial dessa nova mídia.

Eu não sei se isso é possível através de IOCTLs padrão - eu esperaria que você tivesse que hackear o firmware da unidade (e possivelmente adicionar seu próprio IOCTL especial ao código do driver) para fazer isso.

    
por 30.12.2009 / 04:29
2

O ioctl CDROMRESET parece forçar o TOC do dispositivo a ser relido pelo sistema. Você pode tentar com o seu problema, acho que isso deve funcionar

    
por 27.10.2012 / 19:57