From b8ee16af4a409be44b765210251493830a37abb8 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sun, 11 Nov 2018 14:43:43 +0100 Subject: [PATCH] Changed prescription for safe loading of tray before xorrisofs add-on session --- xorriso/xorrecord.1 | 35 +++++++++----- xorriso/xorrecord.info | 50 ++++++++++++------- xorriso/xorrecord.texi | 39 ++++++++++----- xorriso/xorriso.1 | 34 ++++++++----- xorriso/xorriso.info | 56 ++++++++++++--------- xorriso/xorriso.texi | 34 ++++++++----- xorriso/xorrisofs.1 | 58 +++++++++++++--------- xorriso/xorrisofs.info | 107 +++++++++++++++++++++-------------------- xorriso/xorrisofs.texi | 59 +++++++++++++---------- 9 files changed, 286 insertions(+), 186 deletions(-) diff --git a/xorriso/xorrecord.1 b/xorriso/xorrecord.1 index 234183a4..4bf005c1 100644 --- a/xorriso/xorrecord.1 +++ b/xorriso/xorrecord.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 XORRECORD 1 "Version 1.5.1, Oct 08, 2018" +.TH XORRECORD 1 "Version 1.5.1, Nov 11, 2018" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -736,18 +736,19 @@ For the second session xorrisofs needs to know the \-msinfo numbers of the medium. Further it will read data from the medium by using the system's read\-only CD\-ROM driver. .br -It is advised to load the tray manually -or via dd by the CD\-ROM driver, rather than letting xorrecord do this -by its own SCSI driver. Many system CD\-ROM drivers do not take notice -of xorrecord's activities. +Many systems do not take notice of xorrecord's write activities. It is +necessary to force their attention by ejecting and reloading the drive tray. +Therefore above run uses option \-eject. .br - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -.br -Now get the \-msinfo numbers: +Get the \-msinfo numbers (and properly reload the tray if it has a motor) by: .br $ m=$(xorrecord dev=/dev/sr0 \-msinfo) .br -and use them with xorrisofs to add ./tree2 to the image as /dir2: +Offer a victim to any problem caused by obtrusive demons after tray loading: +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +.br +Use the numbers with xorrisofs to add ./tree2 to the image as /dir2: .br $ xorrisofs \-M /dev/sr0 \-C $m \-o image_2.iso \\ .br @@ -766,7 +767,19 @@ of the second session and show both directories /dir1 and /dir2. .SS .B Write ISO 9660 session on-the-fly: It is possible to combine the run of \fBxorrisofs\fR and \fBxorrecord\fR -in a pipeline without storing the ISO 9660 image as file on hard disk: +in a pipeline without storing the ISO 9660 image as file on hard disk. +.br +The piped run is more vulnerable to the problem that some systems have not +enough patience with automatic tray loading and that demons may interfere +with a first CD\-ROM driver read attempt from a freshly loaded medium. +It is advised to load the tray manually or via a separate run of xorriso with +a subsequent run of dd. +.br +Again, xorriso has the patience and dd is a dispensable victim for demons. +.br + $ m=$(xorrecord dev=/dev/sr0 \-msinfo) +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ xorrisofs \-M /dev/sr0 \-C $m \\ .br @@ -779,7 +792,7 @@ in a pipeline without storing the ISO 9660 image as file on hard disk: \-eject padsize=300k \- .br This is also the main use case of program \fBxorriso\fR itself, -where this run would look like: +where the run would need no system workarounds and simply look like: .br $ xorriso \-dev /dev/sr0 \-joliet on \-speed 12 \-fs 8m \\ .br diff --git a/xorriso/xorrecord.info b/xorriso/xorrecord.info index d0454fe6..f9fc9ef2 100644 --- a/xorriso/xorrecord.info +++ b/xorriso/xorrecord.info @@ -718,15 +718,18 @@ blank=as_needed -eject padsize=300k image_1.iso For the second session xorrisofs needs to know the -msinfo numbers of the medium. Further it will read data from the medium by using the system's read-only CD-ROM driver. -It is advised to load the tray manually or via dd by the CD-ROM driver, -rather than letting xorrecord do this by its own SCSI driver. Many -system CD-ROM drivers do not take notice of xorrecord's activities. - - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -Now get the -msinfo numbers: +Many systems do not take notice of xorrecord's write activities. It is +necessary to force their attention by ejecting and reloading the drive +tray. Therefore above run uses option -eject. +Get the -msinfo numbers (and properly reload the tray if it has a motor) +by: $ m=$(xorrecord dev=/dev/sr0 -msinfo) - and use them with xorrisofs to add ./tree2 to the image as /dir2: + Offer a victim to any problem caused by obtrusive demons after tray +loading: +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 + + Use the numbers with xorrisofs to add ./tree2 to the image as /dir2: $ xorrisofs -M /dev/sr0 -C $m -o image_2.iso \ -J -graft-points /dir2=./tree2 @@ -748,7 +751,18 @@ File: xorrecord.info, Node: ExIsoFly, Next: ExAfio, Prev: ExIsoMulti, Up: Ex ===================================== It is possible to combine the run of *xorrisofs* and 'xorrecord' in a -pipeline without storing the ISO 9660 image as file on hard disk: +pipeline without storing the ISO 9660 image as file on hard disk. +The piped run is more vulnerable to the problem that some systems have +not enough patience with automatic tray loading and that demons may +interfere with a first CD-ROM driver read attempt from a freshly loaded +medium. It is advised to load the tray manually or via a separate run +of xorriso with a subsequent run of dd. +Again, xorriso has the patience and dd is a dispensable victim for +demons. + + $ m=$(xorrecord dev=/dev/sr0 -msinfo) + + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ xorrisofs -M /dev/sr0 -C $m \ -J -graft-points /dir2=./tree2 \ @@ -756,8 +770,8 @@ pipeline without storing the ISO 9660 image as file on hard disk: -waiti -multi -grow_overwriteable_iso \ -eject padsize=300k - - This is also the main use case of program *xorriso* itself, where -this run would look like: + This is also the main use case of program *xorriso* itself, where the +run would need no system workarounds and simply look like: $ xorriso -dev /dev/sr0 -joliet on -speed 12 -fs 8m \ -map ./tree2 /dir2 -commit_eject all @@ -1017,13 +1031,13 @@ Node: ExFormat31368 Node: ExDeformat31886 Node: ExIsoSingle32153 Node: ExIsoMulti32437 -Node: ExIsoFly34071 -Node: ExAfio34742 -Node: Files35740 -Node: Seealso36296 -Node: Bugreport36659 -Node: Legal37250 -Node: CommandIdx38179 -Node: ConceptIdx41669 +Node: ExIsoFly34181 +Node: ExAfio35373 +Node: Files36371 +Node: Seealso36927 +Node: Bugreport37290 +Node: Legal37881 +Node: CommandIdx38810 +Node: ConceptIdx42300  End Tag Table diff --git a/xorriso/xorrecord.texi b/xorriso/xorrecord.texi index 5b6cb16e..aa71f2de 100644 --- a/xorriso/xorrecord.texi +++ b/xorriso/xorrecord.texi @@ -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 XORRECORD 1 "Version 1.5.1, Oct 08, 2018" +@c man .TH XORRECORD 1 "Version 1.5.1, Nov 11, 2018" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -998,20 +998,21 @@ For the second session xorrisofs needs to know the -msinfo numbers of the medium. Further it will read data from the medium by using the system's read-only CD-ROM driver. @* -It is advised to load the tray manually -or via dd by the CD-ROM driver, rather than letting xorrecord do this -by its own SCSI driver. Many system CD-ROM drivers do not take notice -of xorrecord's activities. +Many systems do not take notice of xorrecord's write activities. It is +necessary to force their attention by ejecting and reloading the drive tray. +Therefore above run uses option -eject. @* -@sp 1 - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -@* -Now get the -msinfo numbers: +Get the -msinfo numbers (and properly reload the tray if it has a motor) by: @* $ m=$(xorrecord dev=/dev/sr0 -msinfo) @* @sp 1 -and use them with xorrisofs to add ./tree2 to the image as /dir2: +Offer a victim to any problem caused by obtrusive demons after tray loading: +@* + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +@* +@sp 1 +Use the numbers with xorrisofs to add ./tree2 to the image as /dir2: @* @sp 1 $ xorrisofs -M /dev/sr0 -C $m -o image_2.iso \ @@ -1036,7 +1037,21 @@ of the second session and show both directories /dir1 and /dir2. @node ExIsoFly, ExAfio, ExIsoMulti, Examples @section Write ISO 9660 session on-the-fly It is possible to combine the run of @strong{xorrisofs} and @command{xorrecord} -in a pipeline without storing the ISO 9660 image as file on hard disk: +in a pipeline without storing the ISO 9660 image as file on hard disk. +@* +The piped run is more vulnerable to the problem that some systems have not +enough patience with automatic tray loading and that demons may interfere +with a first CD-ROM driver read attempt from a freshly loaded medium. +It is advised to load the tray manually or via a separate run of xorriso with +a subsequent run of dd. +@* +Again, xorriso has the patience and dd is a dispensable victim for demons. +@* +@sp 1 + $ m=$(xorrecord dev=/dev/sr0 -msinfo) +@* +@sp 1 + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 @* @sp 1 $ xorrisofs -M /dev/sr0 -C $m \ @@ -1051,7 +1066,7 @@ in a pipeline without storing the ISO 9660 image as file on hard disk: @* @sp 1 This is also the main use case of program @strong{xorriso} itself, -where this run would look like: +where the run would need no system workarounds and simply look like: @* @sp 1 $ xorriso -dev /dev/sr0 -joliet on -speed 12 -fs 8m \ diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 21100d14..f6ddee6d 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 "Version 1.5.1, Nov 01, 2018" +.TH XORRISO 1 "Version 1.5.1, Nov 11, 2018" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -5820,24 +5820,36 @@ $ xorriso \-as mkisofs prepared_for_iso/tree1 | \\ .br 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 +Follow\-up sessions are written like this (the run of dd is only to give demons +a chance to spoil it): .br $ m=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo) .br +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +.br $ xorriso \-as mkisofs \-M /dev/sr0 \-C $m 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 medium again. -In this case the previous session would not be loaded and the -new session would contain only the newly added files. +Always eject the drive tray between sessions. .br -For the same reason do not let \fBxorriso\fR \-as cdrecord load the medium, -but rather do this manually or by a program that reads from /dev/sr0. +The run of xorriso \-as mkisofs will read old sessions via the CD\-ROM +driver of /dev/sr0. This driver might not be aware of the changed content +as long as the medium is not loaded again. In this case the previous session +would not be properly assessed by xorriso and the new session would contain +only the newly added files. +.br +Some systems have not enough patience with automatic tray loading and some +demons may interfere with a first CD\-ROM driver read attempt from a freshly +loaded medium. +.br +When loading the tray manually, wait 10 seconds after the drive has stopped +blinking. +.br +A safe automatic way seems to be a separate run of xorriso for loading +the tray with proper waiting, and a subsequent run of dd which shall offer +itself to any problems caused by demons assessing the changed drive status. +If this does not help, insert a run of "sleep 10" between xorriso and dd. .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 c93008ef..23e1e82f 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -4882,20 +4882,30 @@ The first session is written like this: $ xorriso -as mkisofs prepared_for_iso/tree1 | \ xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - - Follow-up sessions are written like this: + Follow-up sessions are written like this (the run of dd is only to +give demons a chance to spoil it): - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) + $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ 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 /dev/sr0. Its device driver might not be aware of the changed -content before it loads the medium 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 medium, -but rather do this manually or by a program that reads from /dev/sr0. + Always eject the drive tray between sessions. +The run of xorriso -as mkisofs will read old sessions via the CD-ROM +driver of /dev/sr0. This driver might not be aware of the changed +content as long as the medium is not loaded again. In this case the +previous session would not be properly assessed by xorriso and the new +session would contain only the newly added files. +Some systems have not enough patience with automatic tray loading and +some demons may interfere with a first CD-ROM driver read attempt from a +freshly loaded medium. +When loading the tray manually, wait 10 seconds after the drive has +stopped blinking. +A safe automatic way seems to be a separate run of xorriso for loading +the tray with proper waiting, and a subsequent run of dd which shall +offer itself to any problems caused by demons assessing the changed +drive status. If this does not help, insert a run of "sleep 10" between +xorriso and dd. This example works for multi-session media only. Add cdrskin option --grow_overwriteable_iso to all -as cdrecord runs in order to enable @@ -5849,18 +5859,18 @@ Node: ExCharset256742 Node: ExPseudo257638 Node: ExCdrecord258565 Node: ExMkisofs258885 -Node: ExGrowisofs260242 -Node: ExException261396 -Node: ExTime261854 -Node: ExIncBackup262312 -Node: ExRestore266338 -Node: ExRecovery267284 -Node: Files267856 -Node: Environ269190 -Node: Seealso269899 -Node: Bugreport270616 -Node: Legal271207 -Node: CommandIdx272219 -Node: ConceptIdx289553 +Node: ExGrowisofs260783 +Node: ExException261937 +Node: ExTime262395 +Node: ExIncBackup262853 +Node: ExRestore266879 +Node: ExRecovery267825 +Node: Files268397 +Node: Environ269731 +Node: Seealso270440 +Node: Bugreport271157 +Node: Legal271748 +Node: CommandIdx272760 +Node: ConceptIdx290094  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 71fb799d..022f2ac5 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -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.1, Nov 01, 2018" +@c man .TH XORRISO 1 "Version 1.5.1, Nov 11, 2018" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -6759,26 +6759,38 @@ $ xorriso -as mkisofs prepared_for_iso/tree1 | \ xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - @* @sp 1 -Follow-up sessions are written like this: +Follow-up sessions are written like this (the run of dd is only to give demons +a chance to spoil it): @* @sp 1 -$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -@* $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) @* +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 +@* $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \ @* xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - @* @sp 1 -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 medium again. -In this case the previous session would not be loaded and the -new session would contain only the newly added files. +Always eject the drive tray between sessions. @* -For the same reason do not let @command{xorriso} -as cdrecord load the medium, -but rather do this manually or by a program that reads from /dev/sr0. +The run of xorriso -as mkisofs will read old sessions via the CD-ROM +driver of /dev/sr0. This driver might not be aware of the changed content +as long as the medium is not loaded again. In this case the previous session +would not be properly assessed by xorriso and the new session would contain +only the newly added files. +@* +Some systems have not enough patience with automatic tray loading and some +demons may interfere with a first CD-ROM driver read attempt from a freshly +loaded medium. +@* +When loading the tray manually, wait 10 seconds after the drive has stopped +blinking. +@* +A safe automatic way seems to be a separate run of xorriso for loading +the tray with proper waiting, and a subsequent run of dd which shall offer +itself to any problems caused by demons assessing the changed drive status. +If this does not help, insert a run of "sleep 10" between xorriso and dd. @* @sp 1 This example works for multi-session media only. diff --git a/xorriso/xorrisofs.1 b/xorriso/xorrisofs.1 index 8bf14b34..aca8ee07 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 "Version 1.5.1, Oct 08, 2018" +.TH XORRISOFS 1 "Version 1.5.1, Nov 11, 2018" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -194,11 +194,7 @@ on the intended medium. .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. 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 medium. -.br - dd if=/dev/... count=1 >/dev/null 2>&1 +cdrecord emulation. .br values=$(xorriso \-as cdrecord dev=/dev/... \-msinfo) .br @@ -1737,11 +1733,12 @@ The first session is written like this: .br | 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 +Follow\-up sessions are written like this (the run of dd is only to give demons +a chance to spoil it): .br $ m=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo) +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ xorrisofs \-M /dev/sr0 \-C $m \-graft\-points \\ .br @@ -1749,14 +1746,25 @@ Follow\-up sessions are written like this: .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 medium again. -In this case the previous session would not be loaded and the -new session would contain only the newly added files. +Always eject the drive tray between sessions. .br -For the same reason do not let xorriso \-as cdrecord load the medium, -but rather do this manually or by a program that reads from /dev/sr0. +The run of xorriso \-as mkisofs will read old sessions via the CD\-ROM +driver of /dev/sr0. This driver might not be aware of the changed content +as long as the medium is not loaded again. In this case the previous session +would not be properly assessed by xorriso and the new session would contain +only the newly added files. +.br +Some systems have not enough patience with automatic tray loading and some +demons may interfere with a first CD\-ROM driver read attempt from a freshly +loaded medium. +.br +When loading the tray manually, wait 10 seconds after the drive has stopped +blinking. +.br +A safe automatic way seems to be a separate run of xorriso for loading +the tray with proper waiting, and a subsequent run of dd which shall offer +itself to any problems caused by demons assessing the changed drive status. +If this does not help, insert a run of "sleep 10" between xorriso and dd. .SS .B Let xorrisofs work underneath growisofs growisofs expects an ISO formatter program which understands options \-C and @@ -1809,12 +1817,13 @@ the two disk trees to the medium is desired. Begin with a blank medium and update it until he run fails gracefully due to lack of remaining space on the old one. .br -Do not let xorriso \-as cdrecord load the medium, -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 +Always eject the drive tray between sessions. +A run of dd shall give demons a chance to spoil the first read on freshly +loaded media. .br $ msinfo=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo) +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ load_opts= .br @@ -1909,12 +1918,13 @@ With the first session: With the second session, option \-old\-root refers to /session1 and the new \-root is /session2. .br -Do not let xorriso \-as cdrecord load the medium, -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 +Always eject the drive tray between sessions. +A run of dd shall give demons a chance to spoil the first read on freshly +loaded media. .br $ msinfo=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo) +.br + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 .br $ load_opts= .br diff --git a/xorriso/xorrisofs.info b/xorriso/xorrisofs.info index 48b11a34..604040a8 100644 --- a/xorriso/xorrisofs.info +++ b/xorriso/xorrisofs.info @@ -205,12 +205,7 @@ then a new image is composed from scratch. superblock address on the intended medium. 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. 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 medium. - - dd if=/dev/... count=1 >/dev/null 2>&1 + in its cdrecord emulation. values=$(xorriso -as cdrecord dev=/dev/... -msinfo) echo $values @@ -1530,21 +1525,31 @@ The first session is written like this: /tree1=prepared_for_iso/tree1 \ | xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - - Follow-up sessions are written like this: + Follow-up sessions are written like this (the run of dd is only to +give demons a chance to spoil it): - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) + $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ xorrisofs -M /dev/sr0 -C $m -graft-points \ /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 medium 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 medium, but -rather do this manually or by a program that reads from /dev/sr0. + Always eject the drive tray between sessions. +The run of xorriso -as mkisofs will read old sessions via the CD-ROM +driver of /dev/sr0. This driver might not be aware of the changed +content as long as the medium is not loaded again. In this case the +previous session would not be properly assessed by xorriso and the new +session would contain only the newly added files. +Some systems have not enough patience with automatic tray loading and +some demons may interfere with a first CD-ROM driver read attempt from a +freshly loaded medium. +When loading the tray manually, wait 10 seconds after the drive has +stopped blinking. +A safe automatic way seems to be a separate run of xorriso for loading +the tray with proper waiting, and a subsequent run of dd which shall +offer itself to any problems caused by demons assessing the changed +drive status. If this does not help, insert a run of "sleep 10" between +xorriso and dd.  File: xorrisofs.info, Node: ExGrowisofs, Next: ExIncBackup, Prev: ExMkisofs, Up: Examples @@ -1597,11 +1602,11 @@ get excluded explicitly. the two disk trees to the medium is desired. Begin with a blank medium and update it until he run fails gracefully due to lack of remaining space on the old one. -Do not let xorriso -as cdrecord load the medium, but rather do this -manually or by a program that reads from /dev/sr0. +Always eject the drive tray between sessions. A run of dd shall give +demons a chance to spoil the first read on freshly loaded media. - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -$ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) + $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ load_opts= $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo" $ xorrisofs $load_opts -o - --for_backup -m '*.o' -m '*.swp' \ @@ -1676,11 +1681,11 @@ With the first session: With the second session, option -old-root refers to /session1 and the new -root is /session2. -Do not let xorriso -as cdrecord load the medium, but rather do this -manually or by a program that reads from /dev/sr0. +Always eject the drive tray between sessions. A run of dd shall give +demons a chance to spoil the first read on freshly loaded media. - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -$ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) + $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 $ load_opts= $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo" $ xorrisofs $load_opts -root /session2 -old-root /session1 \ @@ -1989,7 +1994,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -c El Torito boot catalog name: Bootable. (line 114) * -C set load address and write address offset: Loading. (line 25) * -cdrecord-params set load address and write address offset: Loading. - (line 46) + (line 41) * -checksum_algorithm_iso choose .jigdo checksums: Jigdo. (line 72) * -checksum_algorithm_template choose .template checksums: Jigdo. (line 78) @@ -2387,31 +2392,31 @@ Node: Insert3770 Node: Xorriso5616 Node: Options6762 Node: Loading7489 -Node: SetInsert9789 -Node: SetProduct14198 -Node: SetCompl19769 -Node: SetExtras22361 -Node: SetHide33656 -Node: ImageId34960 -Node: Bootable39242 -Node: SystemArea45528 -Node: Charset62894 -Node: Jigdo63919 -Node: Miscellaneous68196 -Node: Examples69841 -Node: ExSimple70335 -Node: ExGraft70818 -Node: ExMkisofs72118 -Node: ExGrowisofs73384 -Node: ExIncBackup74574 -Node: ExIncBckAcc77735 -Node: ExBootable79424 -Node: Files83606 -Node: Environ84701 -Node: Seealso85472 -Node: Bugreport86123 -Node: Legal86716 -Node: CommandIdx87613 -Node: ConceptIdx103480 +Node: SetInsert9531 +Node: SetProduct13940 +Node: SetCompl19511 +Node: SetExtras22103 +Node: SetHide33398 +Node: ImageId34702 +Node: Bootable38984 +Node: SystemArea45270 +Node: Charset62636 +Node: Jigdo63661 +Node: Miscellaneous67938 +Node: Examples69583 +Node: ExSimple70077 +Node: ExGraft70560 +Node: ExMkisofs71860 +Node: ExGrowisofs73669 +Node: ExIncBackup74859 +Node: ExIncBckAcc78036 +Node: ExBootable79741 +Node: Files83923 +Node: Environ85018 +Node: Seealso85789 +Node: Bugreport86440 +Node: Legal87033 +Node: CommandIdx87930 +Node: ConceptIdx103797  End Tag Table diff --git a/xorriso/xorrisofs.texi b/xorriso/xorrisofs.texi index a55baf07..8192daa2 100644 --- a/xorriso/xorrisofs.texi +++ b/xorriso/xorrisofs.texi @@ -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 XORRISOFS 1 "Version 1.5.1, Oct 08, 2018" +@c man .TH XORRISOFS 1 "Version 1.5.1, Nov 11, 2018" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -325,12 +325,7 @@ on the intended medium. @* 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. 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 medium. -@* -@sp 1 - dd if=/dev/... count=1 >/dev/null 2>&1 +cdrecord emulation. @* values=$(xorriso -as cdrecord dev=/dev/... -msinfo) @* @@ -2295,12 +2290,13 @@ The first session is written like this: | xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - @* @sp 1 -Follow-up sessions are written like this: +Follow-up sessions are written like this (the run of dd is only to give demons +a chance to spoil it): @* @sp 1 - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -@* $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +@* + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 @* $ xorrisofs -M /dev/sr0 -C $m -graft-points \ @* @@ -2309,14 +2305,25 @@ Follow-up sessions are written like this: | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - @* @sp 1 -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 medium again. -In this case the previous session would not be loaded and the -new session would contain only the newly added files. +Always eject the drive tray between sessions. @* -For the same reason do not let xorriso -as cdrecord load the medium, -but rather do this manually or by a program that reads from /dev/sr0. +The run of xorriso -as mkisofs will read old sessions via the CD-ROM +driver of /dev/sr0. This driver might not be aware of the changed content +as long as the medium is not loaded again. In this case the previous session +would not be properly assessed by xorriso and the new session would contain +only the newly added files. +@* +Some systems have not enough patience with automatic tray loading and some +demons may interfere with a first CD-ROM driver read attempt from a freshly +loaded medium. +@* +When loading the tray manually, wait 10 seconds after the drive has stopped +blinking. +@* +A safe automatic way seems to be a separate run of xorriso for loading +the tray with proper waiting, and a subsequent run of dd which shall offer +itself to any problems caused by demons assessing the changed drive status. +If this does not help, insert a run of "sleep 10" between xorriso and dd. @c man .SS @c man .B Let xorrisofs work underneath growisofs @node ExGrowisofs, ExIncBackup, ExMkisofs, Examples @@ -2379,13 +2386,14 @@ the two disk trees to the medium is desired. Begin with a blank medium and update it until he run fails gracefully due to lack of remaining space on the old one. @* -Do not let xorriso -as cdrecord load the medium, -but rather do this manually or by a program that reads from /dev/sr0. +Always eject the drive tray between sessions. +A run of dd shall give demons a chance to spoil the first read on freshly +loaded media. @* @sp 1 - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -@* $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +@* + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 @* $ load_opts= @* @@ -2496,13 +2504,14 @@ With the first session: With the second session, option -old-root refers to /session1 and the new -root is /session2. @* -Do not let xorriso -as cdrecord load the medium, -but rather do this manually or by a program that reads from /dev/sr0. +Always eject the drive tray between sessions. +A run of dd shall give demons a chance to spoil the first read on freshly +loaded media. @* @sp 1 - $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 -@* $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) +@* + $ dd if=/dev/sr0 count=1 >/dev/null 2>&1 @* $ load_opts= @*