Allowed lseekable device files with -cut_out. Proof-of-concept by Ivan Shmakov.

This commit is contained in:
Thomas Schmitt 2022-04-26 12:17:22 +02:00
parent 0ef65a7837
commit fc587966d3
6 changed files with 172 additions and 103 deletions

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -1225,6 +1225,27 @@ ex:;
} }
int Xorriso_lseek_capacity(struct XorrisO *xorriso, char *path,
off_t *capacity, int flag)
{
int fd;
fd= open(path, O_RDONLY);
if(fd < 0) {
sprintf(xorriso->info_text,
"Determination of random-access readable capacity failed: ");
Text_shellsafe(path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
return -1;
}
*capacity= lseek(fd, 0, SEEK_END);
close(fd);
if(*capacity < 0)
return(-1);
return(1);
}
/* @param flag bit0= -follow: disk_path is not a command parameter /* @param flag bit0= -follow: disk_path is not a command parameter
*/ */
int Xorriso_cut_out(struct XorrisO *xorriso, char *disk_path, int Xorriso_cut_out(struct XorrisO *xorriso, char *disk_path,
@ -1232,13 +1253,14 @@ int Xorriso_cut_out(struct XorrisO *xorriso, char *disk_path,
{ {
int ret; int ret;
char *eff_source= NULL, *eff_dest= NULL; char *eff_source= NULL, *eff_dest= NULL;
off_t src_size;
struct stat stbuf; struct stat stbuf;
Xorriso_alloc_meM(eff_source, char, SfileadrL); Xorriso_alloc_meM(eff_source, char, SfileadrL);
Xorriso_alloc_meM(eff_dest, char, SfileadrL); Xorriso_alloc_meM(eff_dest, char, SfileadrL);
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdx, disk_path, eff_source, ret= Xorriso_normalize_img_path(xorriso, xorriso->wdx, disk_path, eff_source,
2|4); 2 | 4);
if(ret<=0) if(ret<=0)
goto ex; goto ex;
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&1)); ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&1));
@ -1265,22 +1287,44 @@ int Xorriso_cut_out(struct XorrisO *xorriso, char *disk_path,
{ret= 0; goto ex;} {ret= 0; goto ex;}
} }
} }
if(S_ISREG(stbuf.st_mode)) { if(S_ISREG(stbuf.st_mode)) {
if(stbuf.st_size<startbyte) { src_size= stbuf.st_size;
Xorriso_msgs_submit(xorriso, 0, eff_source, 0, "ERRFILE", 0); } else if(!(S_ISDIR(stbuf.st_mode) || S_ISLNK(stbuf.st_mode) ||
sprintf(xorriso->info_text, S_ISFIFO(stbuf.st_mode) || S_ISSOCK(stbuf.st_mode))) {
"-cut_out: Byte offset %.f larger than file size %.f", ret= Xorriso_lseek_capacity(xorriso, eff_source, &src_size, 0);
(double) startbyte, (double) stbuf.st_size); if(ret <= 0)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "SORRY", 0); goto unsupported_type;
{ret= 0; goto ex;} if(src_size <= 0) {
Xorriso_msgs_submit(xorriso, 0,
"-cut_out: Special file with addressable size range of 0 encountered",
0, "FAILURE", 0);
goto unsupported_type;
} }
} else { } else {
unsupported_type:; unsupported_type:;
Xorriso_msgs_submit(xorriso, 0, eff_source, 0, "ERRFILE", 0); Xorriso_msgs_submit(xorriso, 0, eff_source, 0, "ERRFILE", 0);
sprintf(xorriso->info_text, "-cut_out: Unsupported file type (%s) with ", if(S_ISDIR(stbuf.st_mode) || S_ISLNK(stbuf.st_mode) ||
S_ISFIFO(stbuf.st_mode) || S_ISSOCK(stbuf.st_mode)) {
sprintf(xorriso->info_text,
"-cut_out: File type (%s) is not suitable for this command: ",
Ftypetxt(stbuf.st_mode, 0)); Ftypetxt(stbuf.st_mode, 0));
} else {
sprintf(xorriso->info_text,
"-cut_out: File (%s) does not support random read access: ",
Ftypetxt(stbuf.st_mode, 0));
}
Text_shellsafe(eff_source, xorriso->info_text, 1); Text_shellsafe(eff_source, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;}
}
if(src_size < startbyte) {
Xorriso_msgs_submit(xorriso, 0, eff_source, 0, "ERRFILE", 0);
sprintf(xorriso->info_text,
"-cut_out: Byte offset %.f larger than addressable file size %.f : ",
(double) startbyte, (double) src_size);
Text_shellsafe(eff_source, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;} {ret= 0; goto ex;}
} }

View File

@ -47,7 +47,7 @@
bit3= return root directory as "/" and not as "" bit3= return root directory as "/" and not as ""
bit4= (with bit2) determine type of disk file eff_path bit4= (with bit2) determine type of disk file eff_path
and return 0 if not existing and return 0 if not existing
bit5= (with bit3) this is not a parameter bit5= (with bit4) this is not a parameter
bit6= insist in having an ISO image, even with bits1+2 bit6= insist in having an ISO image, even with bits1+2
@return -1 = faulty path format, 0 = not found , @return -1 = faulty path format, 0 = not found ,
1 = found simple node , 2 = found directory 1 = found simple node , 2 = found directory

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.5, Sep 13, 2021" .TH XORRISO 1 "Version 1.5.5, Apr 26, 2022"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -1393,14 +1393,16 @@ iso_rr_paths are derived by exchanging disk_prefix by iso_rr_prefix before
pattern expansion happens. The current \-cdi directory has no influence. pattern expansion happens. The current \-cdi directory has no influence.
.TP .TP
\fB\-cut_out\fR disk_path byte_offset byte_count iso_rr_path \fB\-cut_out\fR disk_path byte_offset byte_count iso_rr_path
Map a byte interval of a regular disk file into a regular file in the ISO Map a byte interval of a regular disk file or of a device file into a regular
image. file in the ISO image. The file depicted by disk_path has to support random
This may be necessary if the disk file is larger than a single medium, or if read access.
it exceeds the traditional limit of 2 GiB \- 1 for old operating systems,
or the limit of 4 GiB \- 1 for newer ones. Only the newest Linux kernels
seem to read properly files >= 4 GiB \- 1.
.br .br
A clumsy remedy for this limit is to backup file pieces and to concatenate Cutting out a byte interval may be necessary if the disk file is larger than
a single medium, or if it exceeds the traditional limit of 2 GiB \- 1 for old
operating systems, or the limit of 4 GiB \- 1 for newer ones. Contemporary
Linux kernels are able to read properly files >= 4 GiB \- 1.
.br
A clumsy remedy for such limits is to backup file pieces and to concatenate
them at restore time. A well tested chopping size is 2047m. them at restore time. A well tested chopping size is 2047m.
It is permissible to request a higher byte_count than available. The It is permissible to request a higher byte_count than available. The
resulting file will be truncated to the correct size of a final piece. resulting file will be truncated to the correct size of a final piece.
@ -1425,7 +1427,14 @@ reside in the same ISO directory with no other files, and if the names look
like above, then their ISO directory will be recognized and handled like a like above, then their ISO directory will be recognized and handled like a
regular file. This affects commands \-compare*, \-update*, and overwrite regular file. This affects commands \-compare*, \-update*, and overwrite
situations. situations.
.br
See command \-split_size for details. See command \-split_size for details.
.br
Another use case is copying the content of a device file as interval or as
a whole into the emerging ISO filesystem. The fact that the byte_count is
allowed to be unreasonably high enables copying of a whole device:
.br
\-cut_out /dev/sdd3 0 1000g /content_of_sdd3
.TP .TP
\fB\-cpr\fR disk_path [***] iso_rr_path \fB\-cpr\fR disk_path [***] iso_rr_path
Insert the given files or directory trees from filesystem Insert the given files or directory trees from filesystem
@ -2908,7 +2917,7 @@ Both words then stem from a reserved subset of UCS\-2.
.br .br
"rec_mtime" records with non\-RockRidge directory entries the disk file's "rec_mtime" records with non\-RockRidge directory entries the disk file's
mtime and not the creation time of the image. This applies to the ECMA\-119 mtime and not the creation time of the image. This applies to the ECMA\-119
tree (plain ISO 9660), to Joliet, and to ISO 9660:1999. "rec_time" is tree (plain ISO 9660), to Joliet, and to ISO 9660:1999. "rec_mtime" is
default. If disabled, it gets automatically re\-enabled by \-as mkisofs emulation default. If disabled, it gets automatically re\-enabled by \-as mkisofs emulation
when a pathspec is encountered. when a pathspec is encountered.
.br .br
@ -6551,7 +6560,7 @@ Thomas Schmitt <scdbackup@gmx.net>
.br .br
for libburnia\-project.org for libburnia\-project.org
.SH COPYRIGHT .SH COPYRIGHT
Copyright (c) 2007 \- 2021 Thomas Schmitt Copyright (c) 2007 \- 2022 Thomas Schmitt
.br .br
Permission is granted to distribute this text freely. It shall only be Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of \fBxorriso\fR. modified in sync with the technical properties of \fBxorriso\fR.

View File

@ -4,7 +4,7 @@ xorriso.texi.
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
images with Rock Ridge extensions. images with Rock Ridge extensions.
Copyright (C) 2007 - 2021 Thomas Schmitt Copyright (C) 2007 - 2022 Thomas Schmitt
Permission is granted to distribute this text freely. Permission is granted to distribute this text freely.
INFO-DIR-SECTION Archiving INFO-DIR-SECTION Archiving
@ -1246,13 +1246,15 @@ filesystem.
disk_prefix by iso_rr_prefix before pattern expansion happens. The disk_prefix by iso_rr_prefix before pattern expansion happens. The
current -cdi directory has no influence. current -cdi directory has no influence.
-cut_out disk_path byte_offset byte_count iso_rr_path -cut_out disk_path byte_offset byte_count iso_rr_path
Map a byte interval of a regular disk file into a regular file in Map a byte interval of a regular disk file or of a device file into
the ISO image. This may be necessary if the disk file is larger a regular file in the ISO image. The file depicted by disk_path
than a single medium, or if it exceeds the traditional limit of 2 has to support random read access.
GiB - 1 for old operating systems, or the limit of 4 GiB - 1 for Cutting out a byte interval may be necessary if the disk file is
newer ones. Only the newest Linux kernels seem to read properly larger than a single medium, or if it exceeds the traditional limit
files >= 4 GiB - 1. of 2 GiB - 1 for old operating systems, or the limit of 4 GiB - 1
A clumsy remedy for this limit is to backup file pieces and to for newer ones. Contemporary Linux kernels are able to read
properly files >= 4 GiB - 1.
A clumsy remedy for such limits is to backup file pieces and to
concatenate them at restore time. A well tested chopping size is concatenate them at restore time. A well tested chopping size is
2047m. It is permissible to request a higher byte_count than 2047m. It is permissible to request a higher byte_count than
available. The resulting file will be truncated to the correct available. The resulting file will be truncated to the correct
@ -1268,8 +1270,13 @@ filesystem.
of a file reside in the same ISO directory with no other files, and of a file reside in the same ISO directory with no other files, and
if the names look like above, then their ISO directory will be if the names look like above, then their ISO directory will be
recognized and handled like a regular file. This affects commands recognized and handled like a regular file. This affects commands
-compare*, -update*, and overwrite situations. See command -compare*, -update*, and overwrite situations.
-split_size for details. See command -split_size for details.
Another use case is copying the content of a device file as
interval or as a whole into the emerging ISO filesystem. The fact
that the byte_count is allowed to be unreasonably high enables
copying of a whole device:
-cut_out /dev/sdd3 0 1000g /content_of_sdd3
-cpr disk_path [***] iso_rr_path -cpr disk_path [***] iso_rr_path
Insert the given files or directory trees from filesystem into the Insert the given files or directory trees from filesystem into the
ISO image. ISO image.
@ -2485,7 +2492,7 @@ according to the setting of command -acl.
"rec_mtime" records with non-RockRidge directory entries the disk "rec_mtime" records with non-RockRidge directory entries the disk
file's mtime and not the creation time of the image. This applies file's mtime and not the creation time of the image. This applies
to the ECMA-119 tree (plain ISO 9660), to Joliet, and to ISO to the ECMA-119 tree (plain ISO 9660), to Joliet, and to ISO
9660:1999. "rec_time" is default. If disabled, it gets 9660:1999. "rec_mtime" is default. If disabled, it gets
automatically re-enabled by -as mkisofs emulation when a pathspec automatically re-enabled by -as mkisofs emulation when a pathspec
is encountered. is encountered.
"new_rr" uses Rock Ridge version 1.12 (suitable for GNU/Linux but "new_rr" uses Rock Ridge version 1.12 (suitable for GNU/Linux but
@ -5548,7 +5555,7 @@ for libburnia-project.org
15.2 Copyright 15.2 Copyright
============== ==============
Copyright (c) 2007 - 2021 Thomas Schmitt Copyright (c) 2007 - 2022 Thomas Schmitt
Permission is granted to distribute this text freely. It shall only be Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of 'xorriso'. If you modified in sync with the technical properties of 'xorriso'. If you
make use of the license to derive modified versions of 'xorriso' then make use of the license to derive modified versions of 'xorriso' then
@ -5609,7 +5616,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 66) * -chmod_r sets permissions in ISO image: Manip. (line 66)
* -chown sets ownership in ISO image: Manip. (line 43) * -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47) * -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 185) * -clone copies ISO directory tree: Insert. (line 192)
* -close controls media closing: SetWrite. (line 484) * -close controls media closing: SetWrite. (line 484)
* -close_damaged closes damaged track and session: Writing. (line 205) * -close_damaged closes damaged track and session: Writing. (line 205)
* -close_filter_list bans filter registration: Filter. (line 50) * -close_filter_list bans filter registration: Filter. (line 50)
@ -5622,12 +5629,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -concat copies ISO file content: Restore. (line 146) * -concat copies ISO file content: Restore. (line 146)
* -copyright_file sets copyright file name: SetWrite. (line 245) * -copyright_file sets copyright file name: SetWrite. (line 245)
* -cpax copies files to disk: Restore. (line 128) * -cpax copies files to disk: Restore. (line 128)
* -cpr inserts like with cp -r: Insert. (line 164) * -cpr inserts like with cp -r: Insert. (line 171)
* -cpx copies files to disk: Restore. (line 117) * -cpx copies files to disk: Restore. (line 117)
* -cp_clone copies ISO directory tree: Insert. (line 196) * -cp_clone copies ISO directory tree: Insert. (line 203)
* -cp_rx copies file trees to disk: Restore. (line 131) * -cp_rx copies file trees to disk: Restore. (line 131)
* -cp_rx copies file trees to disk <1>: Restore. (line 139) * -cp_rx copies file trees to disk <1>: Restore. (line 139)
* -cut_out inserts piece of data file: Insert. (line 139) * -cut_out inserts piece of data file or device: Insert. (line 139)
* -data_cache_size adjusts read cache size: Loading. (line 362) * -data_cache_size adjusts read cache size: Loading. (line 362)
* -dev acquires one drive for input and output: AqDrive. (line 12) * -dev acquires one drive for input and output: AqDrive. (line 12)
* -devices gets list of drives: Inquiry. (line 7) * -devices gets list of drives: Inquiry. (line 7)
@ -5694,7 +5701,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -list_formats lists available formats: Writing. (line 128) * -list_formats lists available formats: Writing. (line 128)
* -list_profiles lists supported media: Writing. (line 163) * -list_profiles lists supported media: Writing. (line 163)
* -list_speeds lists available write speeds: Writing. (line 139) * -list_speeds lists available write speeds: Writing. (line 139)
* -lns creates ISO symbolic link: Insert. (line 181) * -lns creates ISO symbolic link: Insert. (line 188)
* -load addresses a particular session as input: Loading. (line 54) * -load addresses a particular session as input: Loading. (line 54)
* -local_charset sets terminal character set: Charset. (line 57) * -local_charset sets terminal character set: Charset. (line 57)
* -logfile logs output channels to file: Frontend. (line 19) * -logfile logs output channels to file: Frontend. (line 19)
@ -5711,7 +5718,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -map_single inserts path: Insert. (line 93) * -map_single inserts path: Insert. (line 93)
* -mark sets synchronizing message: Frontend. (line 23) * -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 184) * -md5 controls handling of MD5 sums: Loading. (line 184)
* -mkdir creates ISO directory: Insert. (line 177) * -mkdir creates ISO directory: Insert. (line 184)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419)
* -mount issues mount command for ISO session: Restore. (line 202) * -mount issues mount command for ISO session: Restore. (line 202)
* -mount_cmd composes mount command line: Inquiry. (line 49) * -mount_cmd composes mount command line: Inquiry. (line 49)
@ -5876,9 +5883,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119) * Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119)
* Dialog, line editing, -use_readline: DialogCtl. (line 26) * Dialog, line editing, -use_readline: DialogCtl. (line 26)
* Dialog, terminal geometry, -page: DialogCtl. (line 18) * Dialog, terminal geometry, -page: DialogCtl. (line 18)
* Directories, copy, -cp_clone: Insert. (line 196) * Directories, copy, -cp_clone: Insert. (line 203)
* Directory, copy, -clone: Insert. (line 185) * Directory, copy, -clone: Insert. (line 192)
* Directory, create, -mkdir: Insert. (line 177) * Directory, create, -mkdir: Insert. (line 184)
* Directory, delete, -rmdir: Manip. (line 29) * Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6) * disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: AqDrive. (line 43) * Drive, accessability, -drive_class: AqDrive. (line 43)
@ -5977,9 +5984,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, paths from disk file, -map_l: Insert. (line 96) * Insert, paths from disk file, -map_l: Insert. (line 96)
* Insert, paths from disk file, -path_list: Insert. (line 81) * Insert, paths from disk file, -path_list: Insert. (line 81)
* Insert, paths from disk file, -quoted_path_list: Insert. (line 85) * Insert, paths from disk file, -quoted_path_list: Insert. (line 85)
* Insert, paths, -cpr: Insert. (line 164) * Insert, paths, -cpr: Insert. (line 171)
* Insert, pathspecs, -add: Insert. (line 44) * Insert, pathspecs, -add: Insert. (line 44)
* Insert, piece of data file, -cut_out: Insert. (line 139) * Insert, piece of data file or device, -cut_out: Insert. (line 139)
* Interval reader for system area and partitions: Bootable. (line 32) * Interval reader for system area and partitions: Bootable. (line 32)
* ISO 9660, _definition: Model. (line 6) * ISO 9660, _definition: Model. (line 6)
* iso_rr_path, _definition: Insert. (line 7) * iso_rr_path, _definition: Insert. (line 7)
@ -6098,7 +6105,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
* SUN Disk Label, production: Bootable. (line 383) * SUN Disk Label, production: Bootable. (line 383)
* SUN SPARC boot images, activation: Bootable. (line 464) * SUN SPARC boot images, activation: Bootable. (line 464)
* Symbolic link, create, -lns: Insert. (line 181) * Symbolic link, create, -lns: Insert. (line 188)
* System area, _definition: Bootable. (line 200) * System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 308) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 308)
* Table-of-content, show, -toc: Inquiry. (line 27) * Table-of-content, show, -toc: Inquiry. (line 27)
@ -6160,47 +6167,47 @@ Node: ArgSort27718
Node: AqDrive29212 Node: AqDrive29212
Node: Loading36369 Node: Loading36369
Node: Insert58208 Node: Insert58208
Node: SetInsert69711 Node: SetInsert70117
Node: Manip79675 Node: Manip80081
Node: CmdFind89775 Node: CmdFind90181
Node: Filter108704 Node: Filter109110
Node: Writing113326 Node: Writing113732
Node: SetWrite125581 Node: SetWrite125987
Node: Bootable155432 Node: Bootable155839
Node: Jigdo183313 Node: Jigdo183720
Node: Charset188316 Node: Charset188723
Node: Exception191645 Node: Exception192052
Node: DialogCtl197774 Node: DialogCtl198181
Node: Inquiry200376 Node: Inquiry200783
Node: Navigate209258 Node: Navigate209665
Node: Verify217965 Node: Verify218372
Node: Restore229114 Node: Restore229521
Node: Emulation241230 Node: Emulation241637
Node: Scripting251686 Node: Scripting252093
Node: Frontend259469 Node: Frontend259876
Node: Examples269095 Node: Examples269502
Node: ExDevices270273 Node: ExDevices270680
Node: ExCreate270934 Node: ExCreate271341
Node: ExDialog272234 Node: ExDialog272641
Node: ExGrowing273505 Node: ExGrowing273912
Node: ExModifying274314 Node: ExModifying274721
Node: ExBootable274824 Node: ExBootable275231
Node: ExCharset275379 Node: ExCharset275786
Node: ExPseudo276275 Node: ExPseudo276682
Node: ExCdrecord277202 Node: ExCdrecord277609
Node: ExMkisofs277522 Node: ExMkisofs277929
Node: ExGrowisofs279419 Node: ExGrowisofs279826
Node: ExException280572 Node: ExException280979
Node: ExTime281030 Node: ExTime281437
Node: ExIncBackup281488 Node: ExIncBackup281895
Node: ExRestore285514 Node: ExRestore285921
Node: ExRecovery286460 Node: ExRecovery286867
Node: Files287032 Node: Files287439
Node: Environ288366 Node: Environ288773
Node: Seealso289114 Node: Seealso289521
Node: Bugreport289831 Node: Bugreport290238
Node: Legal290422 Node: Legal290829
Node: CommandIdx291434 Node: CommandIdx291841
Node: ConceptIdx309259 Node: ConceptIdx309666
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @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 .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.5, Sep 13, 2021" @c man .TH XORRISO 1 "Version 1.5.5, Apr 26, 2022"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -69,7 +69,7 @@
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images
with Rock Ridge extensions. with Rock Ridge extensions.
Copyright @copyright{} 2007 - 2021 Thomas Schmitt Copyright @copyright{} 2007 - 2022 Thomas Schmitt
@quotation @quotation
Permission is granted to distribute this text freely. Permission is granted to distribute this text freely.
@ -1701,16 +1701,18 @@ iso_rr_paths are derived by exchanging disk_prefix by iso_rr_prefix before
pattern expansion happens. The current -cdi directory has no influence. pattern expansion happens. The current -cdi directory has no influence.
@c man .TP @c man .TP
@item -cut_out disk_path byte_offset byte_count iso_rr_path @item -cut_out disk_path byte_offset byte_count iso_rr_path
@kindex -cut_out inserts piece of data file @kindex -cut_out inserts piece of data file or device
@cindex Insert, piece of data file, -cut_out @cindex Insert, piece of data file or device, -cut_out
Map a byte interval of a regular disk file into a regular file in the ISO Map a byte interval of a regular disk file or of a device file into a regular
image. file in the ISO image. The file depicted by disk_path has to support random
This may be necessary if the disk file is larger than a single medium, or if read access.
it exceeds the traditional limit of 2 GiB - 1 for old operating systems,
or the limit of 4 GiB - 1 for newer ones. Only the newest Linux kernels
seem to read properly files >= 4 GiB - 1.
@* @*
A clumsy remedy for this limit is to backup file pieces and to concatenate Cutting out a byte interval may be necessary if the disk file is larger than
a single medium, or if it exceeds the traditional limit of 2 GiB - 1 for old
operating systems, or the limit of 4 GiB - 1 for newer ones. Contemporary
Linux kernels are able to read properly files >= 4 GiB - 1.
@*
A clumsy remedy for such limits is to backup file pieces and to concatenate
them at restore time. A well tested chopping size is 2047m. them at restore time. A well tested chopping size is 2047m.
It is permissible to request a higher byte_count than available. The It is permissible to request a higher byte_count than available. The
resulting file will be truncated to the correct size of a final piece. resulting file will be truncated to the correct size of a final piece.
@ -1735,7 +1737,14 @@ reside in the same ISO directory with no other files, and if the names look
like above, then their ISO directory will be recognized and handled like a like above, then their ISO directory will be recognized and handled like a
regular file. This affects commands -compare*, -update*, and overwrite regular file. This affects commands -compare*, -update*, and overwrite
situations. situations.
@*
See command -split_size for details. See command -split_size for details.
@*
Another use case is copying the content of a device file as interval or as
a whole into the emerging ISO filesystem. The fact that the byte_count is
allowed to be unreasonably high enables copying of a whole device:
@*
-cut_out /dev/sdd3 0 1000g /content_of_sdd3
@c man .TP @c man .TP
@item -cpr disk_path [***] iso_rr_path @item -cpr disk_path [***] iso_rr_path
@kindex -cpr inserts like with cp -r @kindex -cpr inserts like with cp -r
@ -3393,7 +3402,7 @@ Both words then stem from a reserved subset of UCS-2.
@* @*
"rec_mtime" records with non-RockRidge directory entries the disk file's "rec_mtime" records with non-RockRidge directory entries the disk file's
mtime and not the creation time of the image. This applies to the ECMA-119 mtime and not the creation time of the image. This applies to the ECMA-119
tree (plain ISO 9660), to Joliet, and to ISO 9660:1999. "rec_time" is tree (plain ISO 9660), to Joliet, and to ISO 9660:1999. "rec_mtime" is
default. If disabled, it gets automatically re-enabled by -as mkisofs emulation default. If disabled, it gets automatically re-enabled by -as mkisofs emulation
when a pathspec is encountered. when a pathspec is encountered.
@* @*
@ -7620,7 +7629,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
for libburnia-project.org for libburnia-project.org
@c man .SH COPYRIGHT @c man .SH COPYRIGHT
@section Copyright @section Copyright
Copyright (c) 2007 - 2021 Thomas Schmitt Copyright (c) 2007 - 2022 Thomas Schmitt
@* @*
Permission is granted to distribute this text freely. It shall only be Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of @command{xorriso}. modified in sync with the technical properties of @command{xorriso}.

View File

@ -1 +1 @@
#define Xorriso_timestamP "2022.04.22.113324" #define Xorriso_timestamP "2022.04.26.101633"