diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 61f4df38..4967c26c 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -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 "Mar 04, 2011" +.TH XORRISO 1 "Mar 09, 2011" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -771,7 +771,7 @@ 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\-md5\fR "on"|"all"|"off" +\fB\-md5\fR "on"|"all"|"off"|"load_check_off" Enable or disable processing of MD5 checksums for the overall session and for each single data file. If enabled then images get loaded only if eventual checksums tags of superblock and directory tree match properly. The MD5 @@ -792,6 +792,15 @@ Mode "all" will additionally check during image generation whether the checksum of a data file changed between the time when its reading began and the time when it ended. This implies reading every file twice. .br +Mode "load_check_off" together with "on" or "all" will load recorded MD5 sums +but not test the recorded checksum tags of superblock and directory tree. +This is necessary if growisofs was used as burn program, because it does +not overwrite the superblock checksum tag of the first session. +Therefore load_check_off is in effect when xorriso -as mkisofs option -M +is performed. +.br +The test can be re-enabled by mode "load_check_on". +.br Checksums can be exploited via options -check_md5, -check_md5_r, via find actions get_md5, check_md5, and via -check_media. .TP @@ -4219,6 +4228,8 @@ $ xorriso -as mkisofs prepared_for_iso/tree1 | \\ .br Follow-up sessions are written like this: .br +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +.br $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) .br $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \\ @@ -4226,8 +4237,13 @@ $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \\ xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - .br Always eject the drive tray between sessions. The old sessions -get read via stdio:/dev/sr0 and thus are prone to device driver -peculiarities. +get read via /dev/sr0. Its device driver might not be aware +of the changed content before it loads the media again. +In this case the previous session would not be loaded and the +new session would contain only the newly added files. +.br +For the same reason do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. .br This example works for multi-session media only. Add cdrskin option --grow_overwriteable_iso diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 021f92ef..035da555 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -728,7 +728,7 @@ activate them only after image loading. If enabled, then xorriso will handle xattr similar to ACL. See also options -getfattr, -setfattr and above paragraph about xattr. --md5 "on"|"all"|"off" +-md5 "on"|"all"|"off"|"load_check_off" Enable or disable processing of MD5 checksums for the overall session and for each single data file. If enabled then images get loaded only if eventual checksums tags of superblock and directory @@ -747,6 +747,13 @@ activate them only after image loading. the checksum of a data file changed between the time when its reading began and the time when it ended. This implies reading every file twice. + Mode "load_check_off" together with "on" or "all" will load + recorded MD5 sums but not test the recorded checksum tags of + superblock and directory tree. This is necessary if growisofs was + used as burn program, because it does not overwrite the superblock + checksum tag of the first session. Therefore load_check_off is in + effect when xorriso -as mkisofs option -M is performed. + The test can be re-enabled by mode "load_check_on". Checksums can be exploited via options -check_md5, -check_md5_r, via find actions get_md5, check_md5, and via -check_media. @@ -3746,12 +3753,18 @@ xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - Follow-up sessions are written like this: +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \ xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - Always eject the drive tray between sessions. The old sessions get read -via stdio:/dev/sr0 and thus are prone to device driver peculiarities. +via /dev/sr0. Its device driver might not be aware of the changed +content before it loads the media again. In this case the previous +session would not be loaded and the new session would contain only the +newly added files. +For the same reason do not let xorriso -as cdrecord load the media, but +rather do this manually or by a program that reads from /dev/sr0. This example works for multi-session media only. Add cdrskin option --grow_overwriteable_iso to all -as cdrecord runs in order to enable @@ -4081,11 +4094,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 99) * -backslash_codes enables backslash conversion: Scripting. (line 45) -* -ban_stdio_write demands real drive: Loading. (line 239) +* -ban_stdio_write demands real drive: Loading. (line 246) * -biblio_file sets biblio file name: SetWrite. (line 165) * -blank erases media: Writing. (line 45) * -boot_image controls bootability: Bootable. (line 26) -* -calm_drive reduces drive activity: Loading. (line 228) +* -calm_drive reduces drive activity: Loading. (line 235) * -cd sets working directory in ISO: Navigate. (line 7) * -cdx sets working directory on disk: Navigate. (line 16) * -charset sets input/output character set: Charset. (line 43) @@ -4118,7 +4131,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -dev aquires one drive for input and output: AqDrive. (line 10) * -devices gets list of drives: Inquiry. (line 7) * -dialog enables dialog mode: DialogCtl. (line 7) -* -disk_dev_ino fast incremental backup: Loading. (line 182) +* -disk_dev_ino fast incremental backup: Loading. (line 189) * -disk_pattern controls pattern expansion: Insert. (line 31) * -displacement compensate altered image start address: Loading. (line 35) @@ -4143,7 +4156,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -find traverses and alters ISO tree: CmdFind. (line 7) * -findx traverses disk tree: Navigate. (line 105) * -follow softlinks and mount points: SetInsert. (line 76) -* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 177) +* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 184) * -format formats media: Writing. (line 69) * -fs sets size of fifo: SetWrite. (line 253) * -getfacl shows ACL in ISO image: Navigate. (line 69) @@ -4224,7 +4237,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -rmdir deletes ISO directory: Manip. (line 32) * -rollback discards pending changes: Writing. (line 9) * -rollback_end ends program without writing: Scripting. (line 125) -* -rom_toc_scan searches for sessions: Loading. (line 203) +* -rom_toc_scan searches for sessions: Loading. (line 210) * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 168) * -scsi_log reports SCSI commands: Scripting. (line 113) * -session_log logs written sessions: Scripting. (line 104) @@ -4280,8 +4293,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Appendable media, _definition: Media. (line 38) * Appended Filesystem Image, -append_partition: Bootable. (line 202) * Backslash Interpretation, _definition: Processing. (line 49) -* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 182) -* Backup, enable features, -for_backup: Loading. (line 177) +* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 189) +* Backup, enable features, -for_backup: Loading. (line 184) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 168) * Blank media, _definition: Media. (line 29) * Blind growing, _definition: Methods. (line 40) @@ -4313,14 +4326,14 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * disk_path, _definition: Insert. (line 6) * Drive, _definiton: Drives. (line 6) * Drive, accessability, -drive_class: Loading. (line 54) -* Drive, demand real MMC, -ban_stdio_write: Loading. (line 239) +* Drive, demand real MMC, -ban_stdio_write: Loading. (line 246) * Drive, eject tray, -eject: Writing. (line 36) * Drive, for input and output, -dev: AqDrive. (line 10) * Drive, for input, -indev: AqDrive. (line 22) * Drive, for output, -outdev: AqDrive. (line 29) * Drive, get drive list, -devices: Inquiry. (line 7) * Drive, list supported media, -list_profiles: Writing. (line 119) -* Drive, reduce activity, -calm_drive: Loading. (line 228) +* Drive, reduce activity, -calm_drive: Loading. (line 235) * Drive, report SCSI commands, -scsi_log: Scripting. (line 113) * Drive, write and eject, -commit_eject: Writing. (line 40) * El Torito, _definiton: Extras. (line 19) @@ -4473,7 +4486,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * SUN Disk Label, production: Bootable. (line 189) * SUN SPARC boot images, activation: Bootable. (line 223) * System area, _definiton: Bootable. (line 123) -* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 203) +* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 210) * Table-of-content, show, -toc: Inquiry. (line 18) * Timestamps, set in ISO image, -alter_date: Manip. (line 146) * Timestamps, set in ISO image, -alter_date_r: Manip. (line 166) @@ -4525,46 +4538,46 @@ Node: Dialog21570 Node: Options23227 Node: AqDrive24835 Node: Loading27741 -Node: Insert40885 -Node: SetInsert50504 -Node: Manip59071 -Node: CmdFind67752 -Node: Filter79052 -Node: Writing83401 -Node: SetWrite89690 -Node: Bootable103631 -Node: Jigdo116949 -Node: Charset121207 -Node: Exception123958 -Node: DialogCtl128473 -Node: Inquiry131060 -Node: Navigate135437 -Node: Verify143377 -Node: Restore151966 -Node: Emulation158622 -Node: Scripting168458 -Node: Frontend174020 -Node: Examples175315 -Node: ExDevices176484 -Node: ExCreate177118 -Node: ExDialog178392 -Node: ExGrowing179654 -Node: ExModifying180456 -Node: ExBootable180957 -Node: ExCharset181504 -Node: ExPseudo182332 -Node: ExCdrecord183226 -Node: ExMkisofs183541 -Node: ExGrowisofs184544 -Node: ExException185668 -Node: ExTime186122 -Node: ExIncBackup186581 -Node: ExRestore190502 -Node: ExRecovery191471 -Node: Files192037 -Node: Seealso193265 -Node: Legal193845 -Node: CommandIdx194767 -Node: ConceptIdx209074 +Node: Insert41367 +Node: SetInsert50986 +Node: Manip59553 +Node: CmdFind68234 +Node: Filter79534 +Node: Writing83883 +Node: SetWrite90172 +Node: Bootable104113 +Node: Jigdo117431 +Node: Charset121689 +Node: Exception124440 +Node: DialogCtl128955 +Node: Inquiry131542 +Node: Navigate135919 +Node: Verify143859 +Node: Restore152448 +Node: Emulation159104 +Node: Scripting168940 +Node: Frontend174502 +Node: Examples175797 +Node: ExDevices176966 +Node: ExCreate177600 +Node: ExDialog178874 +Node: ExGrowing180136 +Node: ExModifying180938 +Node: ExBootable181439 +Node: ExCharset181986 +Node: ExPseudo182814 +Node: ExCdrecord183708 +Node: ExMkisofs184023 +Node: ExGrowisofs185359 +Node: ExException186483 +Node: ExTime186937 +Node: ExIncBackup187396 +Node: ExRestore191317 +Node: ExRecovery192286 +Node: Files192852 +Node: Seealso194080 +Node: Legal194660 +Node: CommandIdx195582 +Node: ConceptIdx209889  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index ab906df3..df7ee6ec 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -44,7 +44,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 "Mar 05, 2011" +@c man .TH XORRISO 1 "Mar 09, 2011" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -983,7 +983,7 @@ 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. @c man .TP -@item -md5 "on"|"all"|"off" +@item -md5 "on"|"all"|"off"|"load_check_off" @kindex -md5 controls handling of MD5 sums @cindex MD5, control handling, -md5 Enable or disable processing of MD5 checksums for the overall session and for @@ -1006,6 +1006,15 @@ Mode "all" will additionally check during image generation whether the checksum of a data file changed between the time when its reading began and the time when it ended. This implies reading every file twice. @* +Mode "load_check_off" together with "on" or "all" will load recorded MD5 sums +but not test the recorded checksum tags of superblock and directory tree. +This is necessary if growisofs was used as burn program, because it does +not overwrite the superblock checksum tag of the first session. +Therefore load_check_off is in effect when xorriso -as mkisofs option -M +is performed. +@* +The test can be re-enabled by mode "load_check_on". +@* Checksums can be exploited via options -check_md5, -check_md5_r, via find actions get_md5, check_md5, and via -check_media. @c man .TP @@ -5035,6 +5044,8 @@ $ xorriso -as mkisofs prepared_for_iso/tree1 | \ Follow-up sessions are written like this: @* @sp 1 +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +@* $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) @* $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \ @@ -5043,8 +5054,13 @@ $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \ @* @sp 1 Always eject the drive tray between sessions. The old sessions -get read via stdio:/dev/sr0 and thus are prone to device driver -peculiarities. +get read via /dev/sr0. Its device driver might not be aware +of the changed content before it loads the media again. +In this case the previous session would not be loaded and the +new session would contain only the newly added files. +@* +For the same reason do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. @* @sp 1 This example works for multi-session media only. diff --git a/xorriso/xorrisofs.1 b/xorriso/xorrisofs.1 index bf77e06a..15b4b290 100644 --- a/xorriso/xorrisofs.1 +++ b/xorriso/xorrisofs.1 @@ -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 XORRISOFS 1 "Mar 06, 2011" +.TH XORRISOFS 1 "Mar 09, 2011" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -176,14 +176,19 @@ on the intended media. .br Both values can be inquired from optical media by help of burn programs and cdrecord option -msinfo. xorriso itself can obtain it in its -cdrecord emulation: +cdrecord emulation. Do not let it load the drive, but rather do this manually +or by a program like dd which reads a few bytes. Only then it is sure that +the device driver knows the true readable size of the media. .br - values=$(xorriso -as cdrecord dev=/dev/... -msinfo) - echo $values + dd if=/dev/... count=1 >/dev/null 2>&1 +.br + values=$(xorriso -as cdrecord dev=/dev/... -msinfo) +.br + echo $values .br Option -C may be used without option -M to create an ISO image from scratch and prepare it for being finally written to a block address -other than 0. Parameter last_session_start should then be set to 0. +other than 0. Parameter last_session_start must then be set to 0. .TP \fB\-cdrecord-params\fR last_session_start,next_writeable_address Alias of -C. @@ -1114,6 +1119,12 @@ yields in the ISO image: /with_=_and_\\/file .SS .B Perform multi-session runs +This example works for multi-session media only: +CD-R[W], DVD-R[W], DVD+R, BD-R. +Add cdrskin option --grow_overwriteable_iso +to all -as cdrecord runs +in order to enable multi-session emulation on overwriteable media. +.br The first session is written like this: .br $ xorrisofs -graft-points \\ @@ -1123,23 +1134,25 @@ The first session is written like this: | xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - .br Follow-up sessions are written like this: +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) .br $ xorrisofs -M /dev/sr0 -C $m -graft-points \\ .br - /tree2/=prepared_for_iso/tree2 \\ + /tree2=prepared_for_iso/tree2 \\ .br | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - .br Always eject the drive tray between sessions. The old sessions get read via /dev/sr0. Its device driver might not be aware of the changed content before it loads the media again. +In this case the previous session would not be loaded and the +new session would contain only the newly added files. .br -This example works for multi-session media only. -Add cdrskin option --grow_overwriteable_iso -to all -as cdrecord runs -in order to enable multi-session emulation on overwriteable media. +For the same reason do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. .SS .B Let xorrisofs work underneath growisofs growisofs expects an ISO formatter program which understands options -C and @@ -1163,9 +1176,17 @@ use of all xorriso commands. growisofs dislikes options which start with "-o" but -outdev must be set to "-". So use "outdev" instead: .br - $ growisofs -Z /dev/dvd -- outdev - -update_r /my/files /files + $ growisofs -Z /dev/dvd --for_backup -- \\ .br - $ growisofs -M /dev/dvd -- outdev - -update_r /my/files /files + outdev - -update_r /my/files /files +.br + $ growisofs -M /dev/dvd --for_backup -- \\ +.br + outdev - -update_r /my/files /files +.br +Note that --for_backup is given in the mkisofs emulation. +To preserve the recorded extra data it must already be in effect, when +the emulation loads the image. .SS .B Incremental backup of a few directory trees This changes the directory trees /open_source_project and /personal_mail @@ -1183,6 +1204,11 @@ To be used several times on the same media, whenever an update of the two disk trees to the media is desired. Begin with blank media and start a new blank media when the run fails due to lack of remaining space on the old one. +.br +Do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) .br @@ -1275,7 +1301,12 @@ With the first session: .br .sp 1 With the second session, option -old-root refers to /session1 and the -new -root is /session2: +new -root is /session2. +.br +Do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) .br @@ -1314,9 +1345,13 @@ The prescribed mkisofs options can be used unchanged with xorrisofs: .br ./CD_root .br +Put it on CD by a burn program. E.g.: +.br + $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed output.iso +.br .sp 1 The image from above example will boot from CD, DVD or BD, but not from -USB stick or orther hard-disk-like devices. This can be done by help of an +USB stick or other hard-disk-like devices. This can be done by help of an isohybrid MBR. Syslinux provides matching template files as isohdp[fp]x*.bin . E.g. /usr/lib/syslinux/isohdpfx.bin . .br @@ -1327,6 +1362,8 @@ tools for partitioning and formatting. .br The image from the following example will be prepared for booting via MBR and its first parttion will start at hard disk block 64. +.br +It will also boot from optical media. .br $ xorrisofs -o output.iso \\ -b isolinux/isolinux.bin -c isolinux/boot.cat \\ diff --git a/xorriso/xorrisofs.info b/xorriso/xorrisofs.info index 2ad7abfc..993f8240 100644 --- a/xorriso/xorrisofs.info +++ b/xorriso/xorrisofs.info @@ -193,11 +193,18 @@ then a new image is composed from scratch. superblock address on the intended media. Both values can be inquired from optical media by help of burn programs and cdrecord option -msinfo. xorriso itself can obtain it - in its cdrecord emulation: - values=$(xorriso -as cdrecord dev=/dev/... -msinfo) echo $values + in its cdrecord emulation. Do not let it load the drive, but + rather do this manually or by a program like dd which reads a few + bytes. Only then it is sure that the device driver knows the true + readable size of the media. + + dd if=/dev/... count=1 >/dev/null 2>&1 + values=$(xorriso -as cdrecord dev=/dev/... -msinfo) + echo $values + Option -C may be used without option -M to create an ISO image from scratch and prepare it for being finally written to a block address - other than 0. Parameter last_session_start should then be set to 0. + other than 0. Parameter last_session_start must then be set to 0. -cdrecord-params last_session_start,next_writeable_address Alias of -C. @@ -1133,6 +1140,10 @@ File: xorrisofs.info, Node: ExMkisofs, Next: ExGrowisofs, Prev: ExGraft, Up: 6.3 Perform multi-session runs ============================== +This example works for multi-session media only: CD-R[W], DVD-R[W], +DVD+R, BD-R. Add cdrskin option --grow_overwriteable_iso to all -as +cdrecord runs in order to enable multi-session emulation on +overwriteable media. The first session is written like this: $ xorrisofs -graft-points \ @@ -1141,18 +1152,19 @@ $ xorrisofs -graft-points \ Follow-up sessions are written like this: +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) $ xorrisofs -M /dev/sr0 -C $m -graft-points \ -/tree2/=prepared_for_iso/tree2 \ +/tree2=prepared_for_iso/tree2 \ | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - Always eject the drive tray between sessions. The old sessions get read via /dev/sr0. Its device driver might not be aware of the changed -content before it loads the media again. - -This example works for multi-session media only. Add cdrskin option ---grow_overwriteable_iso to all -as cdrecord runs in order to enable -multi-session emulation on overwriteable media. +content before it loads the media again. In this case the previous +session would not be loaded and the new session would contain only the +newly added files. +For the same reason do not let xorriso -as cdrecord load the media, but +rather do this manually or by a program that reads from /dev/sr0.  File: xorrisofs.info, Node: ExGrowisofs, Next: ExIncBackup, Prev: ExMkisofs, Up: Examples @@ -1178,8 +1190,13 @@ One may quit mkisofs emulation by argument "--" and make use of all xorriso commands. growisofs dislikes options which start with "-o" but -outdev must be set to "-". So use "outdev" instead: -$ growisofs -Z /dev/dvd -- outdev - -update_r /my/files /files -$ growisofs -M /dev/dvd -- outdev - -update_r /my/files /files +$ growisofs -Z /dev/dvd --for_backup -- \ +outdev - -update_r /my/files /files +$ growisofs -M /dev/dvd --for_backup -- \ +outdev - -update_r /my/files /files +Note that --for_backup is given in the mkisofs emulation. To preserve +the recorded extra data it must already be in effect, when the +emulation loads the image.  File: xorrisofs.info, Node: ExIncBackup, Next: ExIncBckAcc, Prev: ExGrowisofs, Up: Examples @@ -1200,7 +1217,10 @@ To be used several times on the same media, whenever an update of the two disk trees to the media is desired. Begin with blank media and start a new blank media when the run fails due to lack of remaining space on the old one. +Do not let xorriso -as cdrecord load the media, but rather do this +manually or by a program that reads from /dev/sr0. +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) $ load_opts= $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo" @@ -1274,8 +1294,11 @@ $ xorrisofs -root /session1 \ -multi -waiti -eject - With the second session, option -old-root refers to /session1 and the -new -root is /session2: +new -root is /session2. +Do not let xorriso -as cdrecord load the media, but rather do this +manually or by a program that reads from /dev/sr0. +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) $ load_opts= $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo" @@ -1306,8 +1329,12 @@ $ xorrisofs -o output.iso \ -no-emul-boot -boot-load-size 4 -boot-info-table \ ./CD_root +Put it on CD by a burn program. E.g.: + +$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed output.iso + The image from above example will boot from CD, DVD or BD, but not from -USB stick or orther hard-disk-like devices. This can be done by help of +USB stick or other hard-disk-like devices. This can be done by help of an isohybrid MBR. Syslinux provides matching template files as isohdp[fp]x*.bin . E.g. /usr/lib/syslinux/isohdpfx.bin . If a few hundred KB of size do not matter, then option -partition_offset @@ -1316,6 +1343,7 @@ block 0. This facilitates later manipulations of the USB stick by tools for partitioning and formatting. The image from the following example will be prepared for booting via MBR and its first parttion will start at hard disk block 64. +It will also boot from optical media. $ xorrisofs -o output.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ @@ -1481,7 +1509,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -c El Torito boot catalog name: Bootable. (line 86) * -C set load address and write address offset: Loading. (line 28) * -cdrecord-params set load address and write address offset: Loading. - (line 43) + (line 50) * -checksum_algorithm_iso choose .jigdo checksums: Jigdo. (line 80) * -checksum_algorithm_template choose .template checksums: Jigdo. (line 87) @@ -1753,29 +1781,29 @@ Node: Insert3163 Node: Xorriso4584 Node: Options5720 Node: Loading6437 -Node: SetInsert8474 -Node: SetProduct12876 -Node: SetCompl16583 -Node: SetExtras18902 -Node: SetHide21630 -Node: ImageId22638 -Node: Bootable26142 -Node: SystemArea30222 -Node: Charset36582 -Node: Jigdo37607 -Node: Miscellaneous41888 -Node: Examples43061 -Node: ExSimple43547 -Node: ExGraft44026 -Node: ExMkisofs45273 -Node: ExGrowisofs46198 -Node: ExIncBackup47179 -Node: ExIncBckAcc50069 -Node: ExBootable51585 -Node: Files53541 -Node: Seealso54611 -Node: Legal55126 -Node: CommandIdx55922 -Node: ConceptIdx67255 +Node: SetInsert8731 +Node: SetProduct13133 +Node: SetCompl16840 +Node: SetExtras19159 +Node: SetHide21887 +Node: ImageId22895 +Node: Bootable26399 +Node: SystemArea30479 +Node: Charset36839 +Node: Jigdo37864 +Node: Miscellaneous42145 +Node: Examples43318 +Node: ExSimple43804 +Node: ExGraft44283 +Node: ExMkisofs45530 +Node: ExGrowisofs46781 +Node: ExIncBackup47953 +Node: ExIncBckAcc51002 +Node: ExBootable52677 +Node: Files54776 +Node: Seealso55846 +Node: Legal56361 +Node: CommandIdx57157 +Node: ConceptIdx68490  End Tag Table diff --git a/xorriso/xorrisofs.texi b/xorriso/xorrisofs.texi index 5853a28a..8f0b9472 100644 --- a/xorriso/xorrisofs.texi +++ b/xorriso/xorrisofs.texi @@ -44,7 +44,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 XORRISOFS 1 "Mar 06, 2011" +@c man .TH XORRISOFS 1 "Mar 09, 2011" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -298,14 +298,21 @@ on the intended media. @* Both values can be inquired from optical media by help of burn programs and cdrecord option -msinfo. xorriso itself can obtain it in its -cdrecord emulation: +cdrecord emulation. Do not let it load the drive, but rather do this manually +or by a program like dd which reads a few bytes. Only then it is sure that +the device driver knows the true readable size of the media. @* - values=$(xorriso -as cdrecord dev=/dev/... -msinfo) - echo $values +@sp 1 + dd if=/dev/... count=1 >/dev/null 2>&1 @* + values=$(xorriso -as cdrecord dev=/dev/... -msinfo) +@* + echo $values +@* +@sp 1 Option -C may be used without option -M to create an ISO image from scratch and prepare it for being finally written to a block address -other than 0. Parameter last_session_start should then be set to 0. +other than 0. Parameter last_session_start must then be set to 0. @c man .TP @item -cdrecord-params last_session_start,next_writeable_address @kindex -cdrecord-params set load address and write address offset @@ -1552,6 +1559,12 @@ yields in the ISO image: @c man .B Perform multi-session runs @node ExMkisofs, ExGrowisofs, ExGraft, Examples @section Perform multi-session runs +This example works for multi-session media only: +CD-R[W], DVD-R[W], DVD+R, BD-R. +Add cdrskin option @minus{}@minus{}grow_overwriteable_iso +to all -as cdrecord runs +in order to enable multi-session emulation on overwriteable media. +@* The first session is written like this: @* @sp 1 @@ -1565,11 +1578,13 @@ The first session is written like this: Follow-up sessions are written like this: @* @sp 1 + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +@* $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) @* $ xorrisofs -M /dev/sr0 -C $m -graft-points \ @* - /tree2/=prepared_for_iso/tree2 \ + /tree2=prepared_for_iso/tree2 \ @* | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - @* @@ -1577,12 +1592,11 @@ Follow-up sessions are written like this: Always eject the drive tray between sessions. The old sessions get read via /dev/sr0. Its device driver might not be aware of the changed content before it loads the media again. +In this case the previous session would not be loaded and the +new session would contain only the newly added files. @* -@sp 1 -This example works for multi-session media only. -Add cdrskin option @minus{}@minus{}grow_overwriteable_iso -to all -as cdrecord runs -in order to enable multi-session emulation on overwriteable media. +For the same reason do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. @c man .SS @c man .B Let xorrisofs work underneath growisofs @node ExGrowisofs, ExIncBackup, ExMkisofs, Examples @@ -1613,9 +1627,17 @@ start with "-o" but -outdev must be set to "-". So use "outdev" instead: @* @sp 1 - $ growisofs -Z /dev/dvd @minus{}@minus{} outdev - -update_r /my/files /files + $ growisofs -Z /dev/dvd @minus{}@minus{}for_backup @minus{}@minus{} \ @* - $ growisofs -M /dev/dvd @minus{}@minus{} outdev - -update_r /my/files /files + outdev - -update_r /my/files /files +@* + $ growisofs -M /dev/dvd @minus{}@minus{}for_backup @minus{}@minus{} \ +@* + outdev - -update_r /my/files /files +@* +Note that @minus{}@minus{}for_backup is given in the mkisofs emulation. +To preserve the recorded extra data it must already be in effect, when +the emulation loads the image. @c man .SS @c man .B Incremental backup of a few directory trees @node ExIncBackup, ExIncBckAcc, ExGrowisofs, Examples @@ -1637,7 +1659,12 @@ the two disk trees to the media is desired. Begin with blank media and start a new blank media when the run fails due to lack of remaining space on the old one. @* +Do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. +@* @sp 1 + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +@* $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) @* $ load_opts= @@ -1745,9 +1772,14 @@ With the first session: @sp 1 @c man .sp 1 With the second session, option -old-root refers to /session1 and the -new -root is /session2: +new -root is /session2. +@* +Do not let xorriso -as cdrecord load the media, +but rather do this manually or by a program that reads from /dev/sr0. @* @sp 1 + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +@* $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) @* $ load_opts= @@ -1790,9 +1822,15 @@ The prescribed mkisofs options can be used unchanged with xorrisofs: ./CD_root @* @sp 1 +Put it on CD by a burn program. E.g.: +@* +@sp 1 + $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed output.iso +@* +@sp 1 @c man .sp 1 The image from above example will boot from CD, DVD or BD, but not from -USB stick or orther hard-disk-like devices. This can be done by help of an +USB stick or other hard-disk-like devices. This can be done by help of an isohybrid MBR. Syslinux provides matching template files as isohdp[fp]x*.bin . E.g. /usr/lib/syslinux/isohdpfx.bin . @* @@ -1804,6 +1842,8 @@ tools for partitioning and formatting. The image from the following example will be prepared for booting via MBR and its first parttion will start at hard disk block 64. @* +It will also boot from optical media. +@* @sp 1 $ xorrisofs -o output.iso \ @*