Joerg Schilling wrote:
My assumption is that if you start with a working bootable media, all you have to do is find out what tricks were used in the first place. As you note below you can get that information from isoinfo, and since you are changing the content rather than the boot logic or image you just need to keep what you have. I was more aiming this at xorriso, since that already does most of what's needed, and Thomas may be more inclined to prove it can be done than explain why it can't.Bill Davidsen <email@example.com> wrote:This has been on my "someday list" for a while, does it have the capability of taking a bootable image, letting me change the non-boot files, and then giving me another burnable image? I'm thinking Linux install disks with the extras and upgrades added, to simplify creation. While I know how to make bootable media, from scratch if need be, I don't much enjoy the steps. :-(This will not work without non-artficial intelligence as you need tricks to make a CD boot on every BIOS.
Clearly making a bootable CD is very easy, since I have done it just by following the explanation you made in an early man page, and knowing that the the "boot block" in eltorito is just a floppy image, which happens to be the largest size you can fit on a standard floppy using four 32k sectors per track, or maybe eight 16k with a short IRG.
I appreciate that you are mentioning all the odd case which are difficult, but if eltorito boot can be done correctly, and other boot methods are rejected, that would still be useful.
The best way to re-create a bootable CD is to manually find the boot image first. This can be done by calling "isodebug": isodebug -i /tmp/sol-nv-b87-x86-dvd.iso ISO-9660 image created at Mon Apr 7 12:32:02 2008 Cmdline: 'mkisofs 2.01 -b boot/grub/stage2_eltorito -c .catalog -no-emul-boot -boot-load-size 4 -boot-info-table -relaxed-filenames -l -ldots -r -N -d -D -V SOL_11_X86 -o .../solarisdvd.iso .../solarisdvd.product' As yoou see, the boot image is "boot/grub/stage2_eltorito", however only the first 2048 bytes of this file are announced in the ElTorito header: isoinfo -d -i /tmp/sol-nv-b87-x86-dvd.iso CD-ROM is in ISO 9660 format System id: Solaris Volume id: SOL_11_X86 Volume set id: Publisher id: Data preparer id: Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING Copyright File id: Abstract File id: Bibliographic File id: Volume set size is: 1 Volume set sequence number is: 1 Logical block size is: 2048 Volume size is: 1984486 El Torito VD version 1 found, boot catalog is in sector 10559 NO Joliet present Rock Ridge signatures version 1 found Eltorito validation header: Hid 1 Arch 0 (x86) ID '' Key 55 AA Eltorito defaultboot header: Bootid 88 (bootable) Boot media 0 (No Emulation Boot) Load segment 0 Sys type 0 Nsect 4 Bootoff 2940 10560 What you see with this output is that the file /boot/grub/stage2_eltorito starts at Sector # 10560. As ElTorito only announces 2048 bytes from: -r--r--r-- 1 0 0 133008 Apr 2 2008 [ 10560 00] stage2_eltorito (this output if from isoinfo -i /tmp/sol-nv-b87-x86-dvd.iso -lR) it is obvious that any automated attempt to re-create a bootable DVD from the Solaris install DVD will not work. BTW: Linux CDs/DVDs look very similar.
I appreciate the warning, but doing the common case right and avoiding doing the other cases wrong is still useful.
-- Bill Davidsen <firstname.lastname@example.org> "Woe unto the statesman who makes war without a reason that will still be valid when the war is over..." Otto von Bismark