Re: Help with UDF and BluRay disks
Hi Thomas,
On Sun, 2025-01-19 at 09:37 +0100, Thomas Schmitt wrote:
> Hi,
>
> Bob McGowan wrote:
> > One question, what I would like to see is a duplicated
> > directory/file
> > hierachy on the destination. I have lists of file names in groups
> > just
> > short of 25G, but I can't find an easy way to send the file names
> > to
> > any of the programs and have them maintain the hierarchy. They
> > just
> > dump all the files in the root of the destination.
> >
> > I did manage this for a few files with 'xorriso -update_r' option
> > used
> > once per file name and with the full destination path and file name
> > listed:
> >
> > xorriso -update_r /home/me/topdir/file /topdir/file ...
> >
> > But doing this for thousands of files doesn't seem like it is a
> > manageable or robust solution.
>
> It's not unfeasible.
> man xorriso says:
>
> -options_from_file fileaddress
> Read quoted input from fileaddress and execute it like
> dialog
> lines. Empty lines and lines which begin by # are
> ignored.
> Normally one line should hold one xorriso command and all
> its
> parameters. Nevertheless lines may be concatenated
> by a
> trailing backslash.
> See also section "Command processing", paragraph "Quoted
> input".
>
> That paragraph says:
>
> Quoted input converts whitespace-separated text into words. The
> double
> quotation mark " and the single quotation mark ' can be used to
> enclose
> whitespace and make it part of words (e.g. of file names). Each
> mark
> type can enclose the marks of the other type. A trailing
> backslash \
> outside quotations or an open quotation cause the next input line
> to be
> appended.
> [...]
>
> So you may quote whitespace like blanks, tabs or newline characters
> like
> in the shell:
>
> -update_r "/home/me/topdir/filename with blanks" "/topdir/filename
> with blanks"
> ...more.update_r.commands...
>
> Since you seem not to strive for adding sessions to already existing
> ISO 9660 filesystems, you may also use -map or -map_single :
>
> -map "/home/me/topdir/filename with blanks" "/topdir/filename with
> blanks"
> ...more.map.commands...
>
> about which the man page says:
>
> -map disk_path iso_rr_path
> Insert file object disk_path into the ISO image as
> iso_rr_path.
> If disk_path is a directory then its whole sub tree is
> inserted
> into the ISO image.
>
> -map_single disk_path iso_rr_path
> Like -map, but if disk_path is a directory then its sub
> tree is
> not inserted.
>
> I.e. these two commands do not ponder whether the iso_rr_path already
> leads to an up-to-date version of the file in the ISO filesystem, but
> rather copy disk_path to iso_rr_path unconditionally.
>
> You would write all intended xorriso commands into a disk file, e.g.
> /home/me/xorriso_commands
> and then let xorriso process it by command -options_from_file like
> in:
>
> xorriso \
> -for_backup \
> -outdev /dev/sr0 \
> -blank as_needed \
> -options_from_file /home/me/xorriso_commands \
> -commit -toc -check_md5 FAILURE -- -eject all
>
> ---------------------------------------------------------------------
> --
>
> Another approach is to create a file with a list of pathspecs which
> are
> a concept from program mkisofs:
>
> -path_list disk_path
> Like -add but read the parameter words from file
> disk_path or
> standard input if disk_path is "-". The list must
> contain
> exactly one pathspec or disk_path pattern per line.
>
> The command -add inserts files into the emerging ISO image in a way
> that
> is usual with mkisofs:
>
> -add pathspec [...] | disk_path [***]
> Insert the given files or directory trees from filesystem
> into
> the ISO image.
> If -pathspecs is set to "on" or "as_mkisofs" then
> pattern
> expansion is always disabled and character '=' has a
> special
> meaning. It separates the ISO image path from the disk path:
> iso_rr_path=disk_path
> Character '=' in the iso_rr_path must be escaped by '\'
> (i.e. as
> "\=").
> With -pathspecs "on", the character '\' must not be escaped.
> The
> character '=' in the disk_path must not be escaped.
> With -pathspecs "as_mkisofs", all characters '\' must be
> escaped
> in both, iso_rr_path and disk_path. The character '=' may or
> may
> not be escaped in the disk_path.
> If iso_rr_path does not begin with '/' then -cd is
> prepended.
> If disk_path does not begin with '/' then -cdx is prepended.
> If no '=' is given then the word is used as both,
> iso_rr_path
> and disk path. If in this case the word does not begin with
> '/'
> then -cdx is prepended to the disk_path and -cd is
> prepended to
> the iso_rr_path.
> ...
>
> -pathspecs "on"|"off"|"as_mkisofs"
> Control parameter interpretation with xorriso actions -add
> and
> -path_list.
> Mode "as_mkisofs" enables pathspecs of the form
> iso_rr_path=disk_path
> like with program mkisofs -graft-points.
> ...
>
> With this approach you would write lines like
>
> /topdir/file=/home/me/topdir/file
> /topdir/filename with blanks=/home/me/topdir/filename with blanks
> /topdir/filename with \= in it=/home/me/topdir/filename with = in
> it
>
> into a disk file, e.g.
> /home/me/xorriso_pathspecs
> and perform in -path_list xorriso:
>
> xorriso \
> -for_backup \
> -outdev /dev/sr0 \
> -blank as_needed \
> -pathspecs as_mkisofs \
> -path_list /home/me/xorriso_pathspecs \
> -commit -toc -check_md5 FAILURE -- -eject all
>
> ---------------------------------------------------------------------
> --
> How i handle my larger backups:
>
> I assume that you want to split a larger collection of files into
> groups which fit on the BD media.
> Nearly half a life ago, my own endeavor with ISO 9660 and optical
> media
> began with creating a tool which does this splitting automatically:
>
> http://scdbackup.webframe.org/main_eng.html
> http://scdbackup.webframe.org/examples.html
>
> BD is configured and handled by the DVD configuration and commands of
> scdbackup.
> Once:
>
> ./CONFIGURE_DVD
>
> With each backup, you'd do something like:
>
> sdvdbackup /topdir=/home/me/topdir -not /home/me/topdir/temp_files
>
> Back then there was only mkisofs for producing ISO 9660. So
> sdvdbackup
> uses its pathspecs notation for defining the mapping from disk to BD.
> Of course i meanwhile use xorriso for the roles of cdrecord,
> growisofs
> and mkisofs.
>
> I'm still backing up multi-media file collections by help of
> sdvdbackup.
> Backups which fill dozens of media might become lengthy. So there is
> also
> the opportunity to perform incremental backups:
>
> http://scdbackup.webframe.org/examples.html#incremental
>
> ---------------------------------------------------------------------
> --
>
> Have a nice day :)
>
> Thomas
>
Thank you for your guidance and patience. The -options_from_file is
exactly what I was needing and works perfectly.
Just one last question. How do you pronounce "xorriso"? :)
I hope your day was as good as mine.
Bob
Reply to: