New -osirrox option check_md5_on|_off|_force

This commit is contained in:
Thomas Schmitt 2020-01-02 18:50:59 +01:00
parent 71b61339e9
commit 3466f2300a
9 changed files with 265 additions and 167 deletions

View File

@ -3,7 +3,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2020 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -145,7 +145,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->do_iso1999= 0;
m->ecma119_map= 1;
m->do_aaip= 0;
m->do_md5= 0;
m->do_md5= 64;
m->no_emul_toc= 0;
m->do_old_empty= 0;
m->scdbackup_tag_name[0]= 0;

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2017 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2020 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -2300,6 +2300,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" [:\"auto_chmod_on\"|\"auto_chmod_off\"]",
" [:\"sort_lba_on\"|\"sort_lba_off\"]",
" [:\"strict_acl_on\"|\"strict_acl_off\"]",
" [:\"check_md5_on\"|\"check_md5_off\"|\"check_md5_force\"]",
" By default \"off\" the inverse operation of xorriso from ISO",
" image to disk filesystem is disabled. \"on\" allows xorriso",
" to create, overwrite, delete files in the disk filesystem.",

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2020 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -1792,7 +1792,14 @@ int Xorriso_option_osirrox(struct XorrisO *xorriso, char *mode, int flag)
xorriso->do_strict_acl|= 1;
else if(strncmp(cpt, "strict_acl_off", l)==0 && l >= 14)
xorriso->do_strict_acl&= ~1;
else {
else if(strncmp(cpt, "check_md5_on", l) == 0 && l >= 12) {
xorriso->do_md5|= 1 << 6;
xorriso->do_md5&= ~(2 << 6);
} else if(strncmp(cpt, "check_md5_force", l)==0 && l >= 15) {
xorriso->do_md5|= 3 << 6;
} else if(strncmp(cpt, "check_md5_off", l)==0 && l >= 13) {
xorriso->do_md5&= ~(3 << 6);
} else {
unknown_mode:;
sprintf(xorriso->info_text, "-osirrox: unknown mode '%s'", cpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2020 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -565,10 +565,15 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
uint32_t lba;
char *catcontent = NULL;
off_t catsize;
char disk_md5[16], iso_md5[16];
void *ctx= NULL;
int use_md5= 0, i;
Xorriso_alloc_meM(buf, char, buf_size);
Xorriso_alloc_meM(temp_path, char, SfileadrL);
if(!(flag & 2))
img_offset= bytes= 0;
if(LIBISO_ISDIR(node)) {
what= "directory";
ret= mkdir(disk_path, 0777);
@ -583,6 +588,25 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
1);
if(ret<=0)
goto ex;
if((xorriso->do_md5 & 65) == 65 && !(flag & 2)) {
ret= Xorriso_is_plain_image_file(xorriso, (void *) node, img_path, 0);
if(ret > 0) {
ret= Xorriso_get_md5(xorriso, (void *) node, img_path, iso_md5, 1);
if(ret > 0)
ret= Xorriso_md5_start(xorriso, &ctx, 0);
if(ret > 0) {
use_md5= 1;
} else if(xorriso->do_md5 & 128) {
sprintf(xorriso->info_text,
"Cannot obtain any recorded MD5 of file ");
Text_shellsafe(img_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= Xorriso_eval_problem_status(xorriso, 0, 1 | 2);
if(ret < 0)
{ret= 0; goto ex;}
}
}
}
}
open_path_pt= disk_path;
ret= stat(open_path_pt, &stbuf);
@ -696,6 +720,8 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
break;
}
read_count+= ret;
if(use_md5)
Xorriso_md5_compute(xorriso, ctx, buf_pt, ret, 0);
if(img_offset > read_count - ret) {
/* skip the desired amount of bytes */
@ -725,6 +751,29 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
break;
}
}
if(use_md5) {
ret= Xorriso_md5_end(xorriso, &ctx, disk_md5, 0);
if(ret <= 0) {
sprintf(xorriso->info_text,
"Internal problem with obtaining computed MD5 for extracted data of ");
goto bad_md5;
} else {
for(i= 0; i < 16; i++)
if(iso_md5[i] != disk_md5[i])
break;
if(i < 16) {
sprintf(xorriso->info_text,
"MD5 of extracted data does not match recorded MD5 of file ");
bad_md5:;
Text_shellsafe(img_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= Xorriso_eval_problem_status(xorriso, 0, 1 | 2);
if(ret < 0)
{ret= 0; goto ex;}
}
}
}
if(write_fd != -1)
close(write_fd);
write_fd= -1;
@ -847,6 +896,8 @@ ex:;
free(catcontent);
if(data_stream!=NULL)
Xorriso_iso_file_close(xorriso, &data_stream, 0);
if(ctx != NULL)
Xorriso_md5_end(xorriso, &ctx, disk_md5, 0);
Xorriso_process_msg_queues(xorriso,0);
return(ret);
}

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2020 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -2990,12 +2990,15 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(xorriso->allow_restore == -1)
sprintf(line,"-osirrox %s\n", mode_pt);
else
sprintf(line,"-osirrox %s:%s:%s:%s:%s:%s\n", mode_pt,
sprintf(line,"-osirrox %s:%s:%s:%s:%s:%s:%s\n", mode_pt,
xorriso->do_concat_split ? "concat_split_on" : "concat_split_off",
xorriso->do_auto_chmod ? "auto_chmod_on" : "auto_chmod_off",
xorriso->do_restore_sort_lba ? "sort_lba_on" : "sort_lba_off",
xorriso->drives_exclusive ? "o_excl_on" : "o_excl_off",
(xorriso->do_strict_acl & 1) ? "strict_acl_on" : "strict_acl_off"
(xorriso->do_strict_acl & 1) ? "strict_acl_on" : "strict_acl_off",
(xorriso->do_md5 & 64) ?
(xorriso->do_md5 & 128) ? "check_md5_force" : "check_md5_on"
: "check_md5_off"
);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);

View File

@ -9,7 +9,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 "Version 1.5.3, Dec 23, 2019"
.TH XORRISO 1 "Version 1.5.3, Jan 02, 2020"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -990,6 +990,9 @@ will be used to avoid content reading from the image. Only the disk file
content will be read and compared with that MD5. This can save much time
if \-disk_dev_ino "on" is not suitable.
.br
Commands which copy whole data files from ISO to hard disk will verify the
copied data stream by the recorded MD5, if \-osirrox "check_md5_on" is set.
.br
At image generation time they are computed for each file which gets its data
written into the new session. The checksums of files which have their data
in older sessions get copied into the new session. Superblock, tree and whole
@ -4777,16 +4780,16 @@ Access permissions of files in the ISO image do not restrict restoring.
The directory permissions on disk have to allow rwx.
.TP
\fB\-osirrox\fR setting[:option:...]
Setting "off" disables disk filesystem manipulations. This is the default
unless the program was started with leafname "osirrox". Elsewise
the capability to restore files can be enabled explicitly by \-osirrox "on".
It can be irrevocably disabled by \-osirrox "banned".
Setting \fBoff\fR disables disk filesystem manipulations. This is the default
unless the program was started with leafname \fBosirrox\fR. Elsewise the
capability to restore files can be enabled explicitly by \-osirrox \fBon\fR.
It can be irrevocably disabled by \-osirrox \fBbanned\fR.
.br
The setting "blocked" is like "off". But it can only be revoked by
setting "unblock", which elsewise is like "on". This can be used to curb
command scripts which might use "on" undesiredly.
The setting \fBblocked\fR is like \fBoff\fR. But it can only be revoked
by setting \fBunblock\fR, which elsewise is like \fBon\fR. This can be
used to curb command scripts which might use \fBon\fR undesiredly.
.br
To enable restoring of special files by "device_files" is potentially
To enable restoring of special files by \fBdevice_files\fR is potentially
dangerous.
The meaning of the number st_rdev (see man 2 stat) depends much on the
operating system. Best is to restore device files only to the same system
@ -4797,34 +4800,43 @@ Due to a bug of previous versions, device files from previous sessions might
have been altered to major=0, minor=1. So this combination does not get
restored.
.br
Option "concat_split_on" is default. It enables restoring of split file
Option \fBconcat_split_on\fR is default. It enables restoring of split file
directories as data files if the directory contains a complete collection
of \-cut_out part files. With option "concat_split_off" such directories are
handled like any other ISO image directory.
of \-cut_out part files. With option \fBconcat_split_off\fR such directories
are handled like any other ISO image directory.
.br
Option "auto_chmod_off" is default. If "auto_chmod_on" is set then access
restrictions for disk directories get circumvented if those directories
are owned by the effective user who runs \fBxorriso\fR. This happens
by temporarily granting rwx permission to the owner.
Option \fBauto_chmod_off\fR is default. If \fBauto_chmod_on\fR is set
then access restrictions for disk directories get circumvented if those
directories are owned by the effective user who runs \fBxorriso\fR.
This happens by temporarily granting rwx permission to the owner.
.br
Option "sort_lba_on" may improve read performance with optical drives. It
can restore large numbers of hard links without exhausting
Option \fBsort_lba_on\fR may improve read performance with optical drives.
It can 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".
write permission. Default is \fBsort_lba_off\fR.
.br
Option "o_excl_on" is the default unless the program was started with leafname
"osirrox". On GNU/Linux it tries to avoid using drives which are mounted or in
use by other libburn programs.
Option "o_excl_off" on GNU/Linux enables access to such drives by the
Option \fBo_excl_on\fR is the default unless the program was started with
leafname "osirrox". On GNU/Linux it tries to avoid using drives which are
mounted or in use by other libburn programs.
Option \fBo_excl_off\fR on GNU/Linux enables access to such drives by the
equivalent of \-drive_access "shared:readonly". I.e. drives which
get acquired while "o_excl_off" will refuse to get blanked, formatted,
get acquired while \fBo_excl_off\fR will refuse to get blanked, formatted,
written, or ejected. But be aware that even harmless inquiries can spoil
ongoing burns of CD\-R[W] and DVD\-R[W].
.br
Option "strict_acl_off" is default. It tolerates on FreeBSD the presence of
directory "default" ACLs in the ISO image. With "strict_acl_on" these
GNU/Linux ACLs cause on FreeBSD a FAILURE event during restore with \-acl "on".
Option \fBstrict_acl_off\fR is default. It tolerates on FreeBSD the presence
of directory "default" ACLs in the ISO image.
With \fBstrict_acl_on\fR these GNU/Linux ACLs cause on FreeBSD a FAILURE
event during restore with \-acl "on".
.br
Option \fBcheck_md5_off\fR disables MD5 checking during copy to disk.
The default option \fBcheck_md5_on\fR enables it if \-md5 is "on". If a data
file with recorded MD5 is copied as a whole to the disk filesystem, then the
MD5 of the copied content gets computed and compared with the recorded MD5.
A mismatch causes an error message of severity SORRY.
Option \fBcheck_md5_force\fR causes an error message if \-md5 is "on"
but no MD5 is recorded for the data file.
.TP
\fB\-extract\fR iso_rr_path disk_path
Copy the file objects at and underneath iso_rr_path to their corresponding

View File

@ -894,6 +894,9 @@ activate them only after image loading.
be used to avoid content reading from the image. Only the disk
file content will be read and compared with that MD5. This can
save much time if -disk_dev_ino "on" is not suitable.
Commands which copy whole data files from ISO to hard disk will
verify the copied data stream by the recorded MD5, if -osirrox
"check_md5_on" is set.
At image generation time they are computed for each file which gets
its data written into the new session. The checksums of files
which have their data in older sessions get copied into the new
@ -4021,15 +4024,15 @@ Access permissions of files in the ISO image do not restrict restoring.
The directory permissions on disk have to allow rwx.
-osirrox setting[:option:...]
Setting "off" disables disk filesystem manipulations. This is the
default unless the program was started with leafname "osirrox".
Setting *off* disables disk filesystem manipulations. This is the
default unless the program was started with leafname *osirrox*.
Elsewise the capability to restore files can be enabled explicitly
by -osirrox "on". It can be irrevocably disabled by -osirrox
"banned".
The setting "blocked" is like "off". But it can only be revoked by
setting "unblock", which elsewise is like "on". This can be used
to curb command scripts which might use "on" undesiredly.
To enable restoring of special files by "device_files" is
by -osirrox *on*. It can be irrevocably disabled by -osirrox
*banned*.
The setting *blocked* is like *off*. But it can only be revoked by
setting *unblock*, which elsewise is like *on*. This can be used
to curb command scripts which might use *on* undesiredly.
To enable restoring of special files by *device_files* is
potentially dangerous. The meaning of the number st_rdev (see man
2 stat) depends much on the operating system. Best is to restore
device files only to the same system from where they were copied.
@ -4038,32 +4041,39 @@ The directory permissions on disk have to allow rwx.
Due to a bug of previous versions, device files from previous
sessions might have been altered to major=0, minor=1. So this
combination does not get restored.
Option "concat_split_on" is default. It enables restoring of split
Option *concat_split_on* is default. It enables restoring of split
file directories as data files if the directory contains a complete
collection of -cut_out part files. With option "concat_split_off"
collection of -cut_out part files. With option *concat_split_off*
such directories are handled like any other ISO image directory.
Option "auto_chmod_off" is default. If "auto_chmod_on" is set then
Option *auto_chmod_off* is default. If *auto_chmod_on* is set then
access restrictions for disk directories get circumvented if those
directories are owned by the effective user who runs 'xorriso'.
This happens by temporarily granting rwx permission to the owner.
Option "sort_lba_on" may improve read performance with optical
Option *sort_lba_on* may improve read performance with optical
drives. It can 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".
Option "o_excl_on" is the default unless the program was started
*sort_lba_off*.
Option *o_excl_on* is the default unless the program was started
with leafname "osirrox". On GNU/Linux it tries to avoid using
drives which are mounted or in use by other libburn programs.
Option "o_excl_off" on GNU/Linux enables access to such drives by
Option *o_excl_off* on GNU/Linux enables access to such drives by
the equivalent of -drive_access "shared:readonly". I.e. drives
which get acquired while "o_excl_off" will refuse to get blanked,
which get acquired while *o_excl_off* will refuse to get blanked,
formatted, written, or ejected. But be aware that even harmless
inquiries can spoil ongoing burns of CD-R[W] and DVD-R[W].
Option "strict_acl_off" is default. It tolerates on FreeBSD the
Option *strict_acl_off* is default. It tolerates on FreeBSD the
presence of directory "default" ACLs in the ISO image. With
"strict_acl_on" these GNU/Linux ACLs cause on FreeBSD a FAILURE
*strict_acl_on* these GNU/Linux ACLs cause on FreeBSD a FAILURE
event during restore with -acl "on".
Option *check_md5_off* disables MD5 checking during copy to disk.
The default option *check_md5_on* enables it if -md5 is "on". If a
data file with recorded MD5 is copied as a whole to the disk
filesystem, then the MD5 of the copied content gets computed and
compared with the recorded MD5. A mismatch causes an error message
of severity SORRY. Option *check_md5_force* causes an error message
if -md5 is "on" but no MD5 is recorded for the data file.
-extract iso_rr_path disk_path
Copy the file objects at and underneath iso_rr_path to their
corresponding addresses at and underneath disk_path. This is the
@ -5333,11 +5343,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -assert_volid rejects undesired images: Loading. (line 84)
* -auto_charset learns character set from image: Loading. (line 96)
* -backslash_codes enables backslash conversion: Scripting. (line 71)
* -ban_stdio_write demands real drive: Loading. (line 313)
* -ban_stdio_write demands real drive: Loading. (line 316)
* -biblio_file sets biblio file name: SetWrite. (line 250)
* -blank erases media: Writing. (line 57)
* -boot_image controls bootability: Bootable. (line 75)
* -calm_drive reduces drive activity: Loading. (line 303)
* -calm_drive reduces drive activity: Loading. (line 306)
* -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 15)
* -changes_pending overrides change status: Writing. (line 12)
@ -5362,21 +5372,21 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_l reports ISO/disk differences: Navigate. (line 147)
* -compare_r reports ISO/disk differences: Navigate. (line 143)
* -compliance controls standard compliance: SetWrite. (line 56)
* -concat copies ISO file content: Restore. (line 118)
* -concat copies ISO file content: Restore. (line 125)
* -copyright_file sets copyright file name: SetWrite. (line 239)
* -cpax copies files to disk: Restore. (line 100)
* -cpax copies files to disk: Restore. (line 107)
* -cpr inserts like with cp -r: Insert. (line 164)
* -cpx copies files to disk: Restore. (line 89)
* -cpx copies files to disk: Restore. (line 96)
* -cp_clone copies ISO directory tree: Insert. (line 196)
* -cp_rx copies file trees to disk: Restore. (line 103)
* -cp_rx copies file trees to disk <1>: Restore. (line 111)
* -cp_rx copies file trees to disk: Restore. (line 110)
* -cp_rx copies file trees to disk <1>: Restore. (line 118)
* -cut_out inserts piece of data file: Insert. (line 139)
* -data_cache_size adjusts read cache size: Loading. (line 329)
* -data_cache_size adjusts read cache size: Loading. (line 332)
* -dev acquires one drive for input and output: AqDrive. (line 12)
* -devices gets list of drives: Inquiry. (line 7)
* -device_links gets list of drives: Inquiry. (line 17)
* -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 223)
* -disk_dev_ino fast incremental backup: Loading. (line 226)
* -disk_pattern controls pattern expansion: Insert. (line 34)
* -displacement compensate altered image start address: Loading.
(line 57)
@ -5388,25 +5398,25 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -dusx show directory size on disk: Navigate. (line 88)
* -dux show directory size on disk: Navigate. (line 84)
* -dvd_obs set write block size: SetWrite. (line 330)
* -early_stdio_test classifies stdio drives: Loading. (line 317)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 205)
* -early_stdio_test classifies stdio drives: Loading. (line 320)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 208)
* -eject ejects drive tray: Writing. (line 50)
* -end writes pending session and ends program: Scripting. (line 151)
* -errfile_log logs problematic disk files: Scripting. (line 116)
* -error_behavior controls error workarounds: Exception. (line 92)
* -external_filter registers data filter: Filter. (line 20)
* -external_filter unregisters data filter: Filter. (line 47)
* -extract copies file tree to disk: Restore. (line 62)
* -extract_cut copies file piece to disk: Restore. (line 80)
* -extract_l copies files to disk: Restore. (line 76)
* -extract_single copies file to disk: Restore. (line 73)
* -file_name_limit curbs length of file names: Loading. (line 243)
* -extract copies file tree to disk: Restore. (line 69)
* -extract_cut copies file piece to disk: Restore. (line 87)
* -extract_l copies files to disk: Restore. (line 83)
* -extract_single copies file to disk: Restore. (line 80)
* -file_name_limit curbs length of file names: Loading. (line 246)
* -file_size_limit limits data file size: SetInsert. (line 7)
* -find traverses and alters ISO tree: CmdFind. (line 7)
* -findx traverses disk tree: Navigate. (line 91)
* -follow softlinks and mount points: SetInsert. (line 69)
* -format formats media: Writing. (line 87)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 191)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 194)
* -fs sets size of fifo: SetWrite. (line 396)
* -getfacl shows ACL in ISO image: Navigate. (line 60)
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
@ -5422,7 +5432,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -indev acquires a drive for input: AqDrive. (line 23)
* -in_charset sets input character set: Loading. (line 91)
* -iso_nowtime fixed "now" time for ISO 9660 objects: Loading.
(line 217)
(line 220)
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 37)
* -joliet enables production of Joliet tree: SetWrite. (line 10)
@ -5453,7 +5463,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -md5 controls handling of MD5 sums: Loading. (line 163)
* -mkdir creates ISO directory: Insert. (line 177)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 336)
* -mount issues mount command for ISO session: Restore. (line 146)
* -mount issues mount command for ISO session: Restore. (line 153)
* -mount_cmd composes mount command line: Inquiry. (line 49)
* -mount_cmd controls mount command: Inquiry. (line 65)
* -msg_op perform operations on program messages: Frontend. (line 27)
@ -5473,7 +5483,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -pacifier controls pacifier text form: Emulation. (line 166)
* -padding sets amount or mode of image padding: SetWrite. (line 424)
* -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 114)
* -paste_in copies file into disk file: Restore. (line 121)
* -pathspecs sets meaning of = with -add: SetInsert. (line 115)
* -path_list inserts paths from disk file: Insert. (line 81)
* -pkt_output consolidates text output: Frontend. (line 7)
@ -5507,7 +5517,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 51)
* -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 154)
* -rom_toc_scan searches for sessions: Loading. (line 275)
* -rom_toc_scan searches for sessions: Loading. (line 278)
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 144)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
@ -5581,8 +5591,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Appended partition, in MBR or GPT: Bootable. (line 282)
* Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 53)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 223)
* Backup, enable features, -for_backup: Loading. (line 191)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 226)
* Backup, enable features, -for_backup: Loading. (line 194)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 29)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 374)
@ -5621,8 +5631,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: AqDrive. (line 43)
* Drive, classify stdio, -early_stdio_test: Loading. (line 317)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 313)
* Drive, classify stdio, -early_stdio_test: Loading. (line 320)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 316)
* Drive, eject tray, -eject: Writing. (line 50)
* Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 23)
@ -5630,7 +5640,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, get drive list, -device_links: Inquiry. (line 17)
* Drive, list supported media, -list_profiles: Writing. (line 176)
* Drive, reduce activity, -calm_drive: Loading. (line 303)
* Drive, reduce activity, -calm_drive: Loading. (line 306)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 143)
* Drive, write and eject, -commit_eject: Writing. (line 53)
* Drive, _definition: Drives. (line 6)
@ -5645,9 +5655,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Emulation, pacifier form, -pacifier: Emulation. (line 166)
* Examples: Examples. (line 6)
* extattr, _definition: Extras. (line 66)
* File content, copy, -concat: Restore. (line 118)
* File names, curb length, -file_name_limit: Loading. (line 243)
* File names, if neither Rock Ridge nor Joliet: Loading. (line 205)
* File content, copy, -concat: Restore. (line 125)
* File names, curb length, -file_name_limit: Loading. (line 246)
* File names, if neither Rock Ridge nor Joliet: Loading. (line 208)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84)
* Filter, apply to file, -set_filter: Filter. (line 58)
* Filter, ban registration, -close_filter_list: Filter. (line 50)
@ -5670,7 +5680,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* HFS+ serial number: Bootable. (line 406)
* hidden, set in ISO image, -hide: Manip. (line 177)
* HP-PA boot sector, production: Bootable. (line 381)
* Image reading, cache size, -data_cache_size: Loading. (line 329)
* Image reading, cache size, -data_cache_size: Loading. (line 332)
* Image, demand volume ID, -assert_volid: Loading. (line 84)
* Image, discard pending changes, -rollback: Writing. (line 9)
* Image, filesystem to load, -read_fs: Loading. (line 75)
@ -5722,7 +5732,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Jigdo Template Extraction, -jigdo: Jigdo. (line 37)
* Jigdo Template Extraction, _definition: Jigdo. (line 6)
* LBA, _definition: Drives. (line 17)
* libisofs, fixed "now" time: Loading. (line 217)
* libisofs, fixed "now" time: Loading. (line 220)
* Linux device type, -scsi_dev_family: AqDrive. (line 95)
* List delimiter, _definition: Processing. (line 9)
* Local Character Set, _definition: Charset. (line 11)
@ -5807,22 +5817,22 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Relocation directory, set name, -rr_reloc_dir: SetWrite. (line 144)
* Rename, in ISO image, -move: Manip. (line 31)
* Rename, in ISO image, -mv: Manip. (line 37)
* Restore, copy file into disk file, -paste_in: Restore. (line 114)
* Restore, copy file piece to disk, -extract_cut: Restore. (line 80)
* Restore, copy file to disk, -extract_single: Restore. (line 73)
* Restore, copy file tree to disk, -extract: Restore. (line 62)
* Restore, copy file trees to disk, -cp_rx: Restore. (line 103)
* Restore, copy file trees to disk, -cp_rx <1>: Restore. (line 111)
* Restore, copy files to disk, -cpax: Restore. (line 100)
* Restore, copy files to disk, -cpx: Restore. (line 89)
* Restore, copy files to disk, -extract_l: Restore. (line 76)
* Restore, copy file into disk file, -paste_in: Restore. (line 121)
* Restore, copy file piece to disk, -extract_cut: Restore. (line 87)
* Restore, copy file to disk, -extract_single: Restore. (line 80)
* Restore, copy file tree to disk, -extract: Restore. (line 69)
* Restore, copy file trees to disk, -cp_rx: Restore. (line 110)
* Restore, copy file trees to disk, -cp_rx <1>: Restore. (line 118)
* Restore, copy files to disk, -cpax: Restore. (line 107)
* Restore, copy files to disk, -cpx: Restore. (line 96)
* Restore, copy files to disk, -extract_l: Restore. (line 83)
* Restore, enable ISO-to-disk, -osirrox: Restore. (line 18)
* Result layout, more shell-like, -sh_style_result: Scripting.
(line 61)
* Rock Ridge, _definition: Extras. (line 6)
* Session, altered start address, -displacement: Loading. (line 57)
* Session, info string, -session_string: Inquiry. (line 74)
* Session, issue mount command, -mount: Restore. (line 146)
* Session, issue mount command, -mount: Restore. (line 153)
* Session, log when written, -session_log: Scripting. (line 134)
* Session, mount command line, -mount_cmd: Inquiry. (line 49)
* Session, mount parameters, -mount_opts: Inquiry. (line 65)
@ -5833,7 +5843,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* SUN SPARC boot images, activation: Bootable. (line 450)
* Symbolic link, create, -lns: Insert. (line 181)
* System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 275)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 278)
* Table-of-content, show, -toc: Inquiry. (line 27)
* Timestamps, set in ISO image, -alter_date: Manip. (line 139)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 174)
@ -5891,48 +5901,48 @@ Node: Commands25588
Node: ArgSort27265
Node: AqDrive28759
Node: Loading35916
Node: Insert55869
Node: SetInsert67372
Node: Manip76804
Node: CmdFind86904
Node: Filter105833
Node: Writing110455
Node: SetWrite120602
Node: Bootable145365
Node: Jigdo172320
Node: Charset177323
Node: Exception180652
Node: DialogCtl186781
Node: Inquiry189383
Node: Navigate198265
Node: Verify206722
Node: Restore217193
Node: Emulation225870
Node: Scripting236326
Node: Frontend244109
Node: Examples253735
Node: ExDevices254913
Node: ExCreate255574
Node: ExDialog256874
Node: ExGrowing258145
Node: ExModifying258954
Node: ExBootable259464
Node: ExCharset260019
Node: ExPseudo260915
Node: ExCdrecord261842
Node: ExMkisofs262162
Node: ExGrowisofs264059
Node: ExException265212
Node: ExTime265670
Node: ExIncBackup266128
Node: ExRestore270154
Node: ExRecovery271100
Node: Files271672
Node: Environ273006
Node: Seealso273754
Node: Bugreport274471
Node: Legal275062
Node: CommandIdx276074
Node: ConceptIdx293617
Node: Insert56034
Node: SetInsert67537
Node: Manip76969
Node: CmdFind87069
Node: Filter105998
Node: Writing110620
Node: SetWrite120767
Node: Bootable145530
Node: Jigdo172485
Node: Charset177488
Node: Exception180817
Node: DialogCtl186946
Node: Inquiry189548
Node: Navigate198430
Node: Verify206887
Node: Restore217358
Node: Emulation226524
Node: Scripting236980
Node: Frontend244763
Node: Examples254389
Node: ExDevices255567
Node: ExCreate256228
Node: ExDialog257528
Node: ExGrowing258799
Node: ExModifying259608
Node: ExBootable260118
Node: ExCharset260673
Node: ExPseudo261569
Node: ExCdrecord262496
Node: ExMkisofs262816
Node: ExGrowisofs264713
Node: ExException265866
Node: ExTime266324
Node: ExIncBackup266782
Node: ExRestore270808
Node: ExRecovery271754
Node: Files272326
Node: Environ273660
Node: Seealso274408
Node: Bugreport275125
Node: Legal275716
Node: CommandIdx276728
Node: ConceptIdx294271

End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.3, Dec 23, 2019"
@c man .TH XORRISO 1 "Version 1.5.3, Jan 02, 2020"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1238,6 +1238,9 @@ will be used to avoid content reading from the image. Only the disk file
content will be read and compared with that MD5. This can save much time
if -disk_dev_ino "on" is not suitable.
@*
Commands which copy whole data files from ISO to hard disk will verify the
copied data stream by the recorded MD5, if -osirrox "check_md5_on" is set.
@*
At image generation time they are computed for each file which gets its data
written into the new session. The checksums of files which have their data
in older sessions get copied into the new session. Superblock, tree and whole
@ -5510,16 +5513,16 @@ The directory permissions on disk have to allow rwx.
@item -osirrox setting[:option:...]
@kindex -osirrox enables ISO-to-disk copying
@cindex Restore, enable ISO-to-disk, -osirrox
Setting "off" disables disk filesystem manipulations. This is the default
unless the program was started with leafname "osirrox". Elsewise
the capability to restore files can be enabled explicitly by -osirrox "on".
It can be irrevocably disabled by -osirrox "banned".
Setting @strong{off} disables disk filesystem manipulations. This is the default
unless the program was started with leafname @strong{osirrox}. Elsewise the
capability to restore files can be enabled explicitly by -osirrox @strong{on}.
It can be irrevocably disabled by -osirrox @strong{banned}.
@*
The setting "blocked" is like "off". But it can only be revoked by
setting "unblock", which elsewise is like "on". This can be used to curb
command scripts which might use "on" undesiredly.
The setting @strong{blocked} is like @strong{off}. But it can only be revoked
by setting @strong{unblock}, which elsewise is like @strong{on}. This can be
used to curb command scripts which might use @strong{on} undesiredly.
@*
To enable restoring of special files by "device_files" is potentially
To enable restoring of special files by @strong{device_files} is potentially
dangerous.
The meaning of the number st_rdev (see man 2 stat) depends much on the
operating system. Best is to restore device files only to the same system
@ -5530,34 +5533,43 @@ Due to a bug of previous versions, device files from previous sessions might
have been altered to major=0, minor=1. So this combination does not get
restored.
@*
Option "concat_split_on" is default. It enables restoring of split file
Option @strong{concat_split_on} is default. It enables restoring of split file
directories as data files if the directory contains a complete collection
of -cut_out part files. With option "concat_split_off" such directories are
handled like any other ISO image directory.
of -cut_out part files. With option @strong{concat_split_off} such directories
are handled like any other ISO image directory.
@*
Option "auto_chmod_off" is default. If "auto_chmod_on" is set then access
restrictions for disk directories get circumvented if those directories
are owned by the effective user who runs @command{xorriso}. This happens
by temporarily granting rwx permission to the owner.
Option @strong{auto_chmod_off} is default. If @strong{auto_chmod_on} is set
then access restrictions for disk directories get circumvented if those
directories are owned by the effective user who runs @command{xorriso}.
This happens by temporarily granting rwx permission to the owner.
@*
Option "sort_lba_on" may improve read performance with optical drives. It
can restore large numbers of hard links without exhausting
Option @strong{sort_lba_on} may improve read performance with optical drives.
It can 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".
write permission. Default is @strong{sort_lba_off}.
@*
Option "o_excl_on" is the default unless the program was started with leafname
"osirrox". On GNU/Linux it tries to avoid using drives which are mounted or in
use by other libburn programs.
Option "o_excl_off" on GNU/Linux enables access to such drives by the
Option @strong{o_excl_on} is the default unless the program was started with
leafname "osirrox". On GNU/Linux it tries to avoid using drives which are
mounted or in use by other libburn programs.
Option @strong{o_excl_off} on GNU/Linux enables access to such drives by the
equivalent of -drive_access "shared:readonly". I.e. drives which
get acquired while "o_excl_off" will refuse to get blanked, formatted,
get acquired while @strong{o_excl_off} will refuse to get blanked, formatted,
written, or ejected. But be aware that even harmless inquiries can spoil
ongoing burns of CD-R[W] and DVD-R[W].
@*
Option "strict_acl_off" is default. It tolerates on FreeBSD the presence of
directory "default" ACLs in the ISO image. With "strict_acl_on" these
GNU/Linux ACLs cause on FreeBSD a FAILURE event during restore with -acl "on".
Option @strong{strict_acl_off} is default. It tolerates on FreeBSD the presence
of directory "default" ACLs in the ISO image.
With @strong{strict_acl_on} these GNU/Linux ACLs cause on FreeBSD a FAILURE
event during restore with -acl "on".
@*
Option @strong{check_md5_off} disables MD5 checking during copy to disk.
The default option @strong{check_md5_on} enables it if -md5 is "on". If a data
file with recorded MD5 is copied as a whole to the disk filesystem, then the
MD5 of the copied content gets computed and compared with the recorded MD5.
A mismatch causes an error message of severity SORRY.
Option @strong{check_md5_force} causes an error message if -md5 is "on"
but no MD5 is recorded for the data file.
@c man .TP
@item -extract iso_rr_path disk_path
@kindex -extract copies file tree to disk

View File

@ -173,6 +173,8 @@ struct XorrisO { /* the global context of xorriso */
bit3= make file content stability check by double reading
bit4= use recorded MD5 as proxy of ISO file
bit5= with bit0: do not check tags of superblock,tree,session
bit6= during extraction verify file content by recorded MD5
bit7= with bit6: take lack of MD5 as error
*/
int no_emul_toc; /* bit0= On overwritables: