The sysutils/udfclient port
udfclient-0.8.21 – userland implementation of the UDF filesystem (cvsweb github mirror)
Description
UDFclient is a userland implementation of the UDF filesystem as defined by the OSTA group. UDFclient is designed to be a study platform and a run-up to a full read and write kernel level implementation. UDFclient provides a user interface similar to ftp(1), but differs in that it always fetches or writes directory structures recursively.WWW: http://www.13thmonkey.org/udfclient/
Readme
+----------------------------------------------------------------------- | Running ${PKGSTEM} on OpenBSD +----------------------------------------------------------------------- Utilities ========= cd_disect Display SCSI / ATAPI device information cd_sessions Optical device sessions report mmc_format Format optical media newfs_udf Format a filesystem udfclient Read or write to a filesystem udfdump Display contents of a filesystem Issuing any command without options will produce a usage summary. Considerations ============== Special files and links ----------------------- * All links will be followed and files replicated when copied to a UDF filesystem, whether hard or symbolic links. * Block, character, FIFO, and socket special files are not supported. UDF on disk drives ------------------ OpenBSD disklabels are not used on storage media. OpenBSD will create an in-memory virtual "a" partition when natively mounting UDF filesystems read-only on 2048-byte block devices or images; see Interoperability with mount_udf(8) below. MBRs are not used, the filesystem begins at LBA 0. Raw partition "c" should be used if writing directly to a drive instead of an image file. If the drive contains prior data, zero the leading sectors before use as shown in the first command below. # dd if=/dev/zero of=/dev/rsd9c count=63 # newfs_udf -L shared.drive /dev/rsd9c # udfclient -W /dev/rsd9c While it is possible to direct a filesystem image to a disklabel partition, there would be no interoperability with other OSes. Interoperability with mount_udf(8) ---------------------------------- Kernel recognition (virtual partition "a") and mounting r/o with mount_udf() currently requires a 2048-byte logical block size, to map a filesystem image to an optical drive's sector size. This precludes direct use with sd(4) devices, and may prevent interoperability with other OSes. The OSTA specification requires a logical blocksize equal to the media sector size, and the filesystem does not include a Virtual Allocation Table required for -R media. If you wish to use mount_udf(), include '-b 2048' with both the newfs_udf and udfclient utilities. UDF root directory ------------------ The UDF root directory is named with colon separated strings. ": : : " The udfclient requires a 'cd' into this root directory before you can read or write files and directories. Spaces will require quoting the string between " " characters. udfclient interactive commands ------------------------------ These are ftp-like, with some differences. Use the 'help' command at the "UDF>" prompt to display a summary. Of particular value is a 'get' or 'put' of a directory. This will copy the entire structure in or out of the filesystem. Example ======= $ cd /tmp $ mkdir test.directory $ touch test.directory/{a,b,c,d} $ dd if=/dev/zero of=test.iso bs=10m count=10 $ newfs_udf -S test -P test -L test test.iso $ udfclient -W test.iso . . . UDF> ls Directory listing of / drwxrwxrwx -1 -1 40 test:test:test:fileset UDF> cd test:test:test:fileset UDF working directory is /test:test:test:fileset Current FS working directory /tmp UDF> put test.directory A total of 0 kb transfered at an overal average of 0 kb/sec UDF> get test.directory new.directory new.directory/a ... new.directory/b ... new.directory/c ... new.directory/d ... A total of 0 kb transfered at an overal average of 115 kb/sec UDF> quit . . . $ ls new.directory a b c d $
Maintainer
Josh Grosse
Categories
Files
- /usr/local/bin/cd_disect
- /usr/local/bin/cd_sessions
- /usr/local/bin/mmc_format
- /usr/local/bin/newfs_udf
- /usr/local/bin/udfclient
- /usr/local/bin/udfdump
- /usr/local/share/doc/pkg-readmes/udfclient