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

Re: How to change installer image?



Hi,

Steve McIntyre wrote:
> You'll also need to use xorriso rather than genisoimage.

Thank you for flying xorriso. :)


> If you look in the
> file .disk/mkisofs on the original CD, you'll see the exact command
> that was used to make the original image,

.disk/mkisofs is one of my favorites. So i can see what Steve
does with my program.
One needs some background knowledge, though, to derive the options
for a new run:

The option -isohybrid-mbr, which is essential for BIOS USB stick,
needs an MBR input file, which has to stem from the same SYSLINUX
version as isolinux/isolinux.bin in the ISO:

  -isohybrid-mbr syslinux/usr/lib/syslinux/isohdpfx.bin

The first 512 bytes of the original isohybrid ISO image
are a harmlessly modified copy of the original input file.
So one may retrieve the new isohybrid MBR template by:

  dd if=debian-7.8.0-i386-CD-1.iso bs=512 count=1 of=/tmp/isohdpfx.bin

and use it in the xorriso run as

  -isohybrid-mbr /tmp/isohdpfx.bin


Further one may leave out the Jigdo producing options:

  -checksum_algorithm_iso md5,sha1,sha256,sha512
  ...
   -jigdo-jigdo /org/cdbuilder.debian.org/dst/deb-cd/out/2amd64/debian-7.7.0-amd64-NETINST-1.jigdo -jigdo-template /org/cdbuilder.debian.org/dst/deb-cd/out/2amd64/debian-7.7.0-amd64-NETINST-1.template -jigdo-map Debian=/org/cdbuilder.debian.org/src/ftp/debian/ -jigdo-exclude boot1 -md5-list /org/cdbuilder.debian.org/src/deb-cd/tmp/2amd64/wheezy/md5-check -jigdo-min-file-size 1024 -jigdo-exclude 'README*' -jigdo-exclude /doc/ -jigdo-exclude /md5sum.txt -jigdo-exclude /.disk/ -jigdo-exclude /pics/ -jigdo-exclude 'Release*' -jigdo-exclude 'Packages*' -jigdo-exclude 'Sources*'
  ...


So i propose to do for an i386 ISO:

  dd if=debian-7.8.0-i386-CD-1.iso bs=512 count=1 of=/tmp/isohdpfx.bin

  xorriso -as mkisofs \
     -r \
     -V 'Debian 7.8.0 i386 1' \
     -o debian-7.8.0-i386-CD-1-mod.iso \
     -J \
     -isohybrid-mbr /tmp/isohdpfx.bin \
     -partition_offset 16 \
     -joliet-long \
     -cache-inodes \
     -b isolinux/isolinux.bin \
     -c isolinux/boot.cat \
     -no-emul-boot \
     -boot-load-size 4 \
     -boot-info-table \
     ./debian-7.8.0-i386-CD-1-mod/

   rm /tmp/isohdpfx.bin

The amd64 ISOs get some extra options for EFI after -boot-info-table:

  -eltorito-alt-boot \
  -e boot/grub/efi.img \
  -no-emul-boot \
  -isohybrid-gpt-basdat \
  -isohybrid-apm-hfsplus \

The last option -isohybrid-apm-hfsplus is actually useless here,
because no HFS+ flesystem tree gets produced.


If you get xorriso-1.3.8 from http://www.gnu.org/software/xorriso
then you can inspect the result's boot equipment:

  xorriso -indev debian-7.8.0-i386-CD-1-mod.iso \
          -report_el_torito plain \
          -report_system_area plain

My test (with debian-7.3.0-i386-netinst.iso) yields:

  El Torito catalog  : 1658  1
  El Torito cat path : /isolinux/boot.cat
  El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
  El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        1659
  El Torito img path :   1  /isolinux/isolinux.bin
  El Torito img opts :   1  boot-info-table isohybrid-suitable
  System area options: 0x00000102
  System area summary: MBR isohybrid cyl-align-on
  ISO image size/512 : 571392
  Partition offset   : 16
  MBR heads per cyl  : 64
  MBR secs per head  : 32
  MBR partition table:   N Status  Type        Start       Blocks
  MBR partition      :   1   0x80  0x17           64       571328

Else have a look at the MBR partition table by fdisk :

  $ /sbin/fdisk -lu debian-7.8.0-i386-CD-1-mod.iso
  ...
  64 heads, 32 sectors/track, 0 cylinders, total 0 sectors
  Units = sectors of 1 * 512 = 512 bytes

                         Device Boot      Start         End      Blocks   Id  System
debian-7.8.0-i386-CD-1-mod.iso1   *          64      571391      285664   17  Hidden HPFS/NTFS


Have a nice day :)

Thomas


Reply to: