Creazione dell'immagine UDF in Linux


15

È imbarazzante immaginare che non ci siano strumenti intelligenti su Linux per creare immagini UDF, simili makeisofs, ma non ne ho ancora trovato. Lo strumento genisoimagefunziona per la creazione di immagini di dischi video, ma non esiste un equivalente per i dati generali. Il set di strumenti di Linux è davvero così carente quando si tratta di strumenti per dischi ottici?

Ho già visto questo e la risposta accettata semplicemente non è sufficiente.

Risposte:


9

linux-UDF

Sembra essere il progetto che stai cercando, progetto linux-udf . Il progetto è menzionato nel file udf.txt del kernel Linux .

Guardando attraverso il loro sito sourceforge viene chiamato il download udftools. Cercando nel repository dei pacchetti di Fedora 19 ho trovato quel pacchetto esatto.

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

Contenuto dell'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

Guardando attraverso gli strumenti sopra elencati.

cdrwtool

Il comando cdwrtool può eseguire determinate azioni su un dispositivo CD-R, CD-RW o DVD-R. Principalmente si tratta di cancellare il supporto, formarlo per l'uso con il dispositivo cd-packet e applicare un filesystem UDF.

mkudffs

mkudffs è usato per creare un filesystem UDF su un dispositivo (di solito un disco). dispositivo è il file speciale corrispondente al dispositivo (ad es. / dev / hdX). numero di blocchi è il numero di blocchi sul dispositivo. Se omesso, mkudffs calcola automaticamente la dimensione del file system.

pktsetup

Pktsetup viene utilizzato per associare i dispositivi a pacchetto a dispositivi a blocchi CD o DVD, in modo che il dispositivo a pacchetto possa essere montato e potenzialmente utilizzato come file system di lettura / scrittura. Ciò richiede il supporto del kernel per il dispositivo a pacchetto e il filesystem UDF.

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

Formattazione di un DVD UDF

Questo tutorial mostra come formattare un DVD usando UDF, intitolato: Come formattare un DVD con UDF .

Esempio

$ 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 

Determina il tipo di supporto

$ sudo dvd+rw-mediainfo /dev/dvd

Fare un ISO

Penso che stai licenziando troppo rapidamente genisoimage. Se lo guardi nella pagina man, c'è questa opzione:

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

Esempio

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

Ora se controlliamo il .isofile risultante .

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

Per confermare che image.isoè veramente un filesystem UDF all'interno possiamo montarlo solo per ricontrollare.

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

Ora se vedi come è stato montato tramite il mountcomando.

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

Riferimenti


3
Grazie. Ancora incredibilmente primitivo rispetto a quello che mi aspetterei per un formato di 10 anni, ma la tua risposta sembra abbastanza canonica, quindi dovrò occuparmene per ora.
Vector Gorgoth,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.