[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Announcing xorriso-0.1.6

Joerg Schilling wrote:
Bill Davidsen <davidsen@tmr.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.

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.

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: 
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 <davidsen@tmr.com>
  "Woe unto the statesman who makes war without a reason that will still
  be valid when the war is over..." Otto von Bismark 

Reply to: