From 94e6000db27b8f8741d4ff2acff49878a642f55b Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 29 May 2009 11:08:18 +0000 Subject: [PATCH] New option -for_backup as shortcut for -acl -xattr -hardlinks --- xorriso/xorriso.1 | 25 ++++++++++++++++--------- xorriso/xorriso.c | 29 ++++++++++++++++++++++------- xorriso/xorriso_eng.html | 37 ++++++++++++++++++++++++++++--------- xorriso/xorriso_timestamp.h | 2 +- 4 files changed, 67 insertions(+), 26 deletions(-) diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 3270c874..b33b849f 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "May 26, 2009" +.TH XORRISO 1 "May 29, 2009" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -683,7 +683,7 @@ Whether these numbers are respected at mount time depends on the operating system. .br xorriso commands which extract files from an ISO image try to restore files -with the same inode number as hardlinks. This applies only to files which +with the same inode number as hard links. This applies only to files which get extracted during execution of that same command. A large number of hardlink families may exhaust -temp_mem_limit if not -osirrox option "sort_lba_on" is in effect. @@ -706,6 +706,11 @@ Enable or disable processing of xattr attributes in user namespace. If enabled, then xorriso will handle xattr similar to ACL. See also options -getfattr, -setfattr and above paragraph about xattr. .TP +\fB\-for_backup\fR +Enable all extra features which help to produce or to restore backups with +highest fidelity of file properties. +Currently this is a shortcut for: -hardlinks on -acl on -xattr on . +.TP \fB\-disk_dev_ino\fR "on"|"ino_only"|"off" Enable or disable processing of recorded file identification numbers (dev_t and ino_t). They are eventually stored as xattr and allow @@ -2622,7 +2627,7 @@ are owned by the effective user who runs xorriso. This happens by temporarily granting rwx permission to the owner. .br Option "sort_lba_on" may improve read performance with optical drives. It -allows to restore large numbers of hardlinks without exhausting +allows to restore large numbers of hard links without exhausting -temp_mem_limit. It does not preserve directory mtime and it needs -osirrox option auto_chmod_on in order to extract directories which offer no write permission. Default is "sort_lba_off". @@ -2750,7 +2755,8 @@ arguments or if other start arguments pointed the output drive to standard output. .br Not original mkisofs options are --quoted_path_list (see -quoted_path_list), -isolinux_mbr= (see -boot_image isolinux isohybrid=), --acl (see -acl "on"), +isolinux_mbr= (see -boot_image isolinux isohybrid=), +--hardlinks (see -hardlinks "on") --acl (see -acl "on"), --xattr (see -xattr "on"). .br Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR", and "\fBgenisofs\fR" @@ -2904,7 +2910,7 @@ Mode "on" is \fB\-temp_mem_limit\fR number["k"|"m"] Set the maximum size of temporary memory to be used for image dependent buffering. Currently this applies to pattern expansion, LBA sorting, -restoring of hardlinks. +restoring of hard links. .br Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1 GiB. .TP @@ -3325,14 +3331,14 @@ in the ISO image so that they become exact copies of their disk counterparts. ISO file objects get created, deleted or get their attributes adjusted accordingly. .br -ACL and xattr will be recorded. Accelerated comparison is enabled at the -expense of potentially larger backup size. +ACL, xattr and hard links will be recorded. Accelerated comparison is enabled +at the expense of potentially larger backup size. Only media with the expected volume id or blank media are accepted. Files with names matching *.o or *.swp get excluded explicitely. .br \fB$\fR xorriso \\ .br - -acl on -xattr on -disk_dev_ino on \\ + -for_backup -disk_dev_ino on \\ .br -assert_volid 'PROJECTS_MAIL_*' FATAL \\ .br @@ -3402,9 +3408,10 @@ First check which backup sessions are on the media: \fB$\fR xorriso -outdev /dev/sr0 -toc .br Then load the desired session and copy the file trees to disk. +Enable restoring of ACL, xattr and hard links. Avoid to eventually create /home/thomas/restored without rwx-permission. .br -\fB$\fR xorriso -acl on -xattr on \\ +\fB$\fR xorriso -for_backup \\ .br -load volid 'PROJECTS_MAIL_2008_06_19*' \\ .br diff --git a/xorriso/xorriso.c b/xorriso/xorriso.c index dbe527da..c745f948 100644 --- a/xorriso/xorriso.c +++ b/xorriso/xorriso.c @@ -10730,9 +10730,9 @@ int Xorriso_cdrskin(struct XorrisO *xorriso, char *whom, int argc, char **argv, "\t-isosize\tUse iso9660 file system size for next data track", "\t-pad\t\tpadsize=30k", "\t-nopad\t\tDo not pad", -"\t--grow_overwriteable_iso\temulate multi-session on DVD+RW", -"\twrite_start_address=#\t\twrite to given byte address on DVD+RW", -"\tstream_recording=on\t\ttry to get full speed DVD-RAM and BD-RE", +"\t--grow_overwriteable_iso\temulate multi-session on DVD+RW, BD-RE", +"\twrite_start_address=#\t\twrite to byte address on DVD+RW, BD-RE", +"\tstream_recording=on\t\ttry to get full speed on DVD-RAM, BD", "\t-help\t\tprint this text to stderr and exit emulation", "Actually this is the integrated ISO RockRidge filesystem manipulator xorriso", "lending its libburn capabilities to a very limited cdrecord emulation. Only", @@ -11155,6 +11155,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom, " -print-size Print estimated filesystem size and exit", " -quiet Run quietly", " -R, -rock Generate Rock Ridge directory information", +" --hardlinks Record eventual hard link relations of files", " --acl Record eventual ACLs of files", " --xattr Record eventual user space xattr of files", " -V ID, -volid ID Set Volume ID", @@ -11312,6 +11313,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom, ret= Xorriso_option_charset(xorriso, argv[i], 3); if(ret <= 0) goto problem_handler_1; + } else if(strcmp(argv[i], "--hardlinks")==0) { + Xorriso_option_hardlinks(xorriso, "on", 0); } else if(strcmp(argv[i], "--acl")==0) { Xorriso_option_acl(xorriso, "on", 0); } else if(strcmp(argv[i], "--xattr")==0) { @@ -11523,6 +11526,8 @@ not_enough_args:; } else if(strcmp(argv[i], "-output-charset")==0) { i++; /* was already handled in first argument scan */; + } else if(strcmp(argv[i], "--hardlinks")==0) { + /* was already handled in first argument scan */; } else if(strcmp(argv[i], "--acl")==0) { /* was already handled in first argument scan */; } else if(strcmp(argv[i], "--xattr")==0) { @@ -15660,11 +15665,13 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " -local_charset name", " Override system assumption of the local character set name.", " -hardlinks \"on\"|\"off\"", -" Enable resp. disable recording and restoring of hardlinks.", +" Enable resp. disable recording and restoring of hard links.", " -acl \"on\"|\"off\"", " Enable resp. disable reading and writing of ACLs.", " -xattr \"on\"|\"off\"", " Enable resp. disable reading and writing of xattr.", +" -for_backup", +" Shortcut for: -hardlinks on -acl on -xattr on", " -disk_dev_ino \"on\"|\"ino_only\"|\"off\"", " Enable resp. disable recording of disk file dev_t and ino_t", " and their use in file comparison.", @@ -15673,7 +15680,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"", " Blank media resp. invalidate ISO image on media.", " -format \"as_needed\"|\"full\"|\"fast\"|\"by_index_#\"|\"by_size_#\"", -" Format BD-RE, DVD-RAM, DVD-RW, DVD+RW.", +" Format BD-RE, BD-R, DVD-RAM, DVD-RW, DVD+RW.", " -volid volume_id", " Specifies the volume ID text. (32 chars out of [A-Z0-9_])", " -publisher name", @@ -15904,7 +15911,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " -speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]", " Set the burn speed. Default is 0 = maximum speed.", " -stream_recording \"on\"|\"off\"", -" Try to circumvent slow checkread on DVD-RAM and BD-RE.", +" Try to circumvent slow checkread on DVD-RAM, BD-RE, BD-R.", " -fs number[\"k\"|\"m\"]", " Set the size of the fifo buffer. (Default is 4m)", " -eject \"in\"|\"out\"|\"all\"", @@ -18780,7 +18787,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv, int ret, was_dashed= 0, i; char *cmd, cmd_data[2*SfileadrL]; static char arg0_commands[][40]= { - "ban_stdio_write","close_filter_list","commit","devices","end","help", + "ban_stdio_write","close_filter_list","commit","devices","end", + "for_backup", "help", "list_formats","no_rc","print_size","pwd","pwdi","pwdx", "rollback","rollback_end","tell_media_space","toc","version", "" @@ -19185,6 +19193,13 @@ next_command:; (*idx)++; ret= Xorriso_option_follow(xorriso, arg1, 0); + } else if(strcmp(cmd,"for_backup")==0) { + ret= Xorriso_option_hardlinks(xorriso, "on", 0); + if(ret > 0) + ret= Xorriso_option_acl(xorriso, "on", 0); + if(ret > 0) + ret= Xorriso_option_xattr(xorriso, "on", 0); + } else if(strcmp(cmd,"format")==0) { (*idx)++; ret= Xorriso_option_blank(xorriso, arg1, 1); diff --git a/xorriso/xorriso_eng.html b/xorriso/xorriso_eng.html index 71dd10b9..5a078945 100644 --- a/xorriso/xorriso_eng.html +++ b/xorriso/xorriso_eng.html @@ -238,16 +238,21 @@ Important: -indev and -outdev have to be different drives.
Dialog mode accepts one or more options per line. An option and all its -arguments have to be given in one single line. Command -end stops the program -run. It will write eventually pending changes to media, if that has not -already been done by a previous -commit.
+arguments have to be given in one single line. Backslash may be used to mark +a line as incomplete so it gets continued by the next input line. +
+Command -end stops the program run. It will write eventually pending changes +to media, if that has not already been done by a previous -commit.
$ xorriso -dialog on
enter option and arguments :
-dev /dev/sr0
enter option and arguments :
-map /home/me/prepared_for_dvd/sounds_dummy /sounds
enter option and arguments :
-
-map /home/me/prepared_for_dvd/movies /movies
+
-map /home/me/prepared_for_dvd/movies \
+
Trailing backslash : Enter rest of line (or @@@ to clear it) : +
+
/movies
Available navigation commands: -cd, -ls, -du, -find
enter option and arguments :
-commit
@@ -285,7 +290,7 @@ Files with names ending by ".o" or ".swp" are excluded by options -not_leaf. To apply zisofs compression to those data files which get newly copied from the local filesystem, perform immediately before -commit :
-   -find / -type f -lba_range -1 2000000000 -exec set_filter --zisofs -- \
+   -find / -type f -pending_data -exec set_filter --zisofs -- \ @@ -353,7 +358,11 @@ Be cautious not to overwrite your hard disk instead of your USB stick:
In batch mode it is possible to operate xorriso in a pipeline with an external consumer of the generated ISO image. Any message -output will be redirected to stderr in this case.
+output will be redirected to stderr in this case. +Examples for consumers are cdrecord or growisofs on operating systems +where xorriso cannot operate the burner drive directly, +or a ssh pipe to another system which has the desired drive +and a suitable burn program.
$ xorriso -outdev - ...other.options... | consumer
@@ -412,6 +421,7 @@ files or trees to disk:
xorriso-0.3.8.pl00.tar.gz (1220 KB).
+
(Released 19 Apr 2009)
@@ -503,14 +513,23 @@ cdrecord and mkisofs.

Development snapshot, version 0.3.9 :

Bug fixes towards xorriso-0.3.8.pl00:
Enhancements towards stable version 0.3.8.pl00:
xorriso-0.3.9.tar.gz -(1220 KB). +(1250 KB).
A dynamically linked development version of xorriso can be obtained from repositories of diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index de619260..553c65a6 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2009.05.26.142912" +#define Xorriso_timestamP "2009.05.29.110831"