Criando imagem UDF no Linux

14

É embaraçoso imaginar que não há ferramentas inteligentes no Linux para criar imagens UDF, semelhantes a makeisofs , mas ainda não encontrei nenhuma. A ferramenta genisoimage funciona 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.

    
por Vector Gorgoth 04.01.2014 / 21:45

1 resposta

8

linux-udf

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

Olhando através do seu site sourceforge, o download chama-se udftools . Pesquisando dentro do repositório de pacotes do Fedora 19, encontrei o 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

Analisando as ferramentas listadas acima.

cdrwtool

The cdwrtool command can perform certain actions on a CD-R, CD-RW, or DVD-R device. Mainly these are blanking the media, formating it for use with the packet-cd device, and applying an UDF filesystem.

mkudffs

mkudffs is used to create a UDF filesystem on a device (usually a disk). device is the special file corresponding to the device (e.g /dev/hdX). blocks-count is the number of blocks on the device. If omitted, mkudffs automagically figures the file system size.

pktsetup

Pktsetup is used to associate packet devices with CD or DVD block devices, so that the packet device can then be mounted and potentially used as a read/write filesystem. This requires kernel support for the packet device, and the UDF filesystem.

  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

Acho que você descarta rapidamente genisoimage . Se você olhar através da página de manual para isso, há essa 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 arquivo .iso 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 novamente.

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

Agora, veja como ele foi montado por meio do comando mount .

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

Referências

por 04.01.2014 / 22:32