Criando imagem UDF no Linux


15

É embaraçoso imaginar que não haja ferramentas inteligentes no Linux para criar imagens UDF, semelhantes a makeisofs, mas ainda não encontrei nenhuma. A ferramenta genisoimagefunciona para criar imagens de disco de vídeo, mas não há equivalente para dados gerais. O conjunto de ferramentas do Linux é realmente tão deficiente quando se trata de ferramentas de disco óptico?

Eu já vi isso e a resposta aceita simplesmente não é suficiente.

Respostas:


9

linux-udf

Parece ser o projeto que você está procurando, projeto linux-udf . O projeto é mencionado no arquivo udf.txt do kernel do Linux .

Olhando pelo site do sourceforge, o download é chamado udftools. Pesquisando no repositório de pacotes do meu Fedora 19, encontrei esse pacote exato.

$ yum search udf | grep "^udf"
udftools.x86_64 : Linux UDF Filesystem userspace utilities
udftools-debuginfo.x86_64 : Debug information for package udftools

Conteúdo do RPM.

$ rpm -ql udftools 
/usr/bin/cdrwtool
/usr/bin/mkudffs
/usr/bin/pktsetup
/usr/bin/udffsck
/usr/bin/wrudf
/usr/share/doc/udftools-1.0.0b3
/usr/share/doc/udftools-1.0.0b3/AUTHORS
/usr/share/doc/udftools-1.0.0b3/COPYING
/usr/share/doc/udftools-1.0.0b3/ChangeLog
/usr/share/man/man1/cdrwtool.1.gz
/usr/share/man/man8/mkudffs.8.gz
/usr/share/man/man8/pktsetup.8.gz

Examinando as ferramentas listadas acima.

cdrwtool

O comando cdwrtool pode executar determinadas ações em um dispositivo CD-R, CD-RW ou DVD-R. Principalmente, eles estão apagando a mídia, formatando-a para uso com o dispositivo packet-cd e aplicando um sistema de arquivos UDF.

mkudffs

mkudffs é usado para criar um sistema de arquivos UDF em um dispositivo (geralmente um disco). device é o arquivo especial correspondente ao dispositivo (por exemplo, / dev / hdX). blocks-count é o número de blocos no dispositivo. Se omitido, o mkudffs calcula automaticamente o tamanho do sistema de arquivos.

pktsetup

O Pktsetup é usado para associar dispositivos de pacote a dispositivos de bloco de CD ou DVD, para que o dispositivo de pacote possa ser montado e potencialmente usado como um sistema de arquivos de leitura / gravação. Isso requer suporte do kernel para o dispositivo de pacote e o sistema de arquivos UDF.

  See: http://packet-cd.sourceforge.net/ ⟨⟩

Formatando um DVD UDF

Este tutorial mostra como você pode formatar um DVD usando UDF, intitulado: Como formatar um DVD com UDF .

Exemplo

$ sudo mkudffs --media-type=dvd /dev/dvd
trying to change type of multiple extents

$ sudo dvd+rw-format /dev/dvd
* DVD±RW/-RAM format utility by , version 6.1.
* 4.7GB DVD+RW media detected.
* formatting 9.5\

$ sudo mkudffs /dev/dvd
start=0, blocks=16, type=RESERVED 
start=16, blocks=3, type=VRS 
start=19, blocks=237, type=USPACE 
start=256, blocks=1, type=ANCHOR 
start=257, blocks=16, type=PVDS 
start=273, blocks=1, type=LVID 
start=274, blocks=2294573, type=PSPACE 
start=2294847, blocks=1, type=ANCHOR 
start=2294848, blocks=239, type=USPACE 
start=2295087, blocks=16, type=RVDS 
start=2295103, blocks=1, type=ANCHOR 

Determinar o tipo de mídia

$ sudo dvd+rw-mediainfo /dev/dvd

Fazendo um ISO

Eu acho que você está dispensando muito rapidamente genisoimage. Se você procurar na página do manual, existe esta opção:

-udf   Include UDF filesystem support in the generated filesystem image.  
       UDF support is currently in alpha status and for this reason, it is 
       not possible to create UDF-only images.  UDF data structures are 
       currently coupled to  the  Joliet  structures,  so  there are many 
       pitfalls with the current implementation. There is no UID/GID 
       support, there is no POSIX permission support, there is no support 
       for symlinks.  Note that UDF wastes the space from sector ~20 to 
       sector 256 at  the beginning of the disc in addition to the space 
       needed for real UDF data structures.

Exemplo

$ genisoimage -udf -o image.iso R/
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using SPLIT000.HTM;1 for  R/x86_64-redhat-linux-gnu-library/2.13/plyr/html/splitter_a.html (splitter_d.html)
Using LIST_000.HTM;1 for  R/x86_64-redhat-linux-gnu-library/2.13/plyr/html/list_to_vector.html (list_to_dataframe.html)
Using INDEX000.HTM;1 for  R/x86_64-redhat-linux-gnu-library/2.13/plyr/html/indexed_array.html (indexed_df.html)
...
...
Using TEST_002.R;1 for  R/x86_64-redhat-linux-gnu-library/2.13/plyr/tests/test-split-labels.r (test-split-data-frame.r)
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 24576
Path table size(bytes): 134
Max brk space used 43000
1141 extents written (2 MB)

Agora, se verificarmos o .isoarquivo resultante .

$ file im.iso 
image.iso: # UDF filesystem data (version 1.5) 'CDROM                           '

Para confirmar que image.isoé realmente um sistema de arquivos UDF, podemos montá-lo apenas para verificar.

$ sudo mount -o loop image.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only

Agora, veja como foi montado através do mountcomando

$ mount | grep '/mnt'
/home/saml/image.iso on /mnt type udf (ro,relatime,utf8)

Referências


3
Obrigado. Ainda incrivelmente primitivo comparado ao que eu esperaria de um formato de 10 anos, mas sua resposta parece bastante canônica, então terei que lidar com isso por enquanto.
Vector Gorgoth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.