Crear imagen UDF en Linux

15

Es vergonzoso imaginar que no hay herramientas inteligentes en Linux para crear imágenes UDF, similares makeisofs, pero aún no he encontrado ninguna. La herramienta genisoimagefunciona para crear imágenes de disco de video, pero no existe un equivalente para datos generales. ¿El conjunto de herramientas de Linux es realmente tan deficiente cuando se trata de herramientas de disco óptico?

Ya he visto esto y la respuesta aceptada simplemente no es suficiente.

Vector Gorgoth
fuente

Respuestas:

9

linux-udf

Parece ser el proyecto que estás buscando, proyecto linux-udf . El proyecto se menciona en el archivo udf.txt del kernel de Linux .

Mirando a través de su sitio sourceforge se llama la descarga udftools. Buscando dentro del repositorio de paquetes de mi Fedora 19 encontré ese paquete exacto.

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

Contenido de las 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

Mirando a través de las herramientas mencionadas anteriormente.

cdrwtool

El comando cdwrtool puede realizar ciertas acciones en un dispositivo CD-R, CD-RW o DVD-R. Principalmente, están borrando los medios, formateándolos para su uso con el dispositivo paquete-cd y aplicando un sistema de archivos UDF.

mkudffs

mkudffs se usa para crear un sistema de archivos UDF en un dispositivo (generalmente un disco). dispositivo es el archivo especial correspondiente al dispositivo (por ejemplo, / dev / hdX). blocks-count es el número de bloques en el dispositivo. Si se omite, mkudffs calcula automáticamente el tamaño del sistema de archivos.

pktsetup

Pktsetup se usa para asociar dispositivos de paquete con dispositivos de bloque de CD o DVD, de modo que el dispositivo de paquete se pueda montar y potencialmente usar como un sistema de archivos de lectura / escritura. Esto requiere soporte del kernel para el dispositivo de paquetes y el sistema de archivos UDF.

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

Formateando un DVD UDF

Este tutorial muestra cómo puede formatear un DVD usando UDF, titulado: Cómo formatear un DVD con UDF .

Ejemplo

$ 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 el tipo de medio

$ sudo dvd+rw-mediainfo /dev/dvd

Hacer un ISO

Creo que lo estás descartando demasiado rápido genisoimage. Si mira a través de la página del manual, aparece este interruptor:

-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.

Ejemplo

$ 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)

Ahora si comprobamos el .isoarchivo resultante .

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

Para confirmar que image.isoes realmente un sistema de archivos UDF dentro, podemos montarlo solo para verificarlo dos veces.

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

Ahora si ve cómo se montó a través del mountcomando.

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

Referencias

slm
fuente
3
Gracias. Todavía es increíblemente primitivo en comparación con lo que esperaría para un formato de 10 años, pero su respuesta parece bastante canónica, así que tendré que lidiar con eso por ahora.
Vector Gorgoth