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

Re: Debian GNU/Hurd 2017 released!



Hi,

my assembler reading skills are obviously insufficient. It turns out that
the bytes in the MBR partition table range are not significant for booting
the ISO from qemu -hda.

I boldly zeroed them in a copy of the GNU/Hurd ISO and it still boots.
(To make sure that it does not boot by El Torito i copied the
 terminating volume descriptor from block 19 to block 17.)

Encouraged by this outcome, i repacked the ISO by these commands:

  # Obtain GRUB image file from start of original ISO
  dd if=debian-hurd-2017-i386-NETINST-1.iso bs=2048 count=16 of=grub_embed

  mount debian-hurd-2017-i386-NETINST-1.iso /mnt/iso

  # Most options as learned from file /mnt/iso/.disk/mkisofs
  # but adding option --protective-msdos-label to create a partition table.
  xorriso  -as mkisofs \
    -o test.iso \
    -J -joliet-long -r \
    -V 'Debian 9.0 h-i386 n' \
    --embedded-boot grub_embed \
    --protective-msdos-label \
    -cache-inodes \
    -c boot/boot.cat \
    -b boot/grub/grub_eltorito \
       -no-emul-boot -boot-load-size 4 -boot-info-table -no-pad \
    /mnt/iso

The resulting test.iso boots as qemu -hda to the same GRUB menu as
the original ISO.

The partition table is what grub-mkrescue would ask for in case of
i386-pc without any efi platform:

  $ sbin/fdisk -lu test.iso
  ...
  Disklabel type: dos
  ...
  Device     Boot Start    End Sectors   Size Id Type
  test.iso1  *        1 311555  311555 152.1M cd unknown

This partition is not mountable because of its start offset 1.
But that's how Vladimir wanted it for grub-mkrescue.

------------------------------------------------------------------
Udate after receiving reply on grub-devel:
  http://lists.gnu.org/archive/html/grub-devel/2017-06/msg00043.html

Vladimir 'phcoder' Serbinenko wrote:
> Those are only for floppies with old BIOS. If your image is over 2.88 MiB
> and thus never useful on floppies, it's safe to overwrite.

This explains why it looks like somewhat plausible executable code
and why i386-pc/boot.img of Debian 8 is in the state it is in.


------------------------------------------------------------------

So my proposal to Debian GNU/Hurd is to boldly add option 
  --protective-msdos-label
to the debian-installer run of xorriso -as mkisofs for hurd.

If an empty partition table is desired instead, then at least zeroize
the 64 bytes beginning at offset 446 of file "grub_embed" before it
gets handed over to xorriso.


Have a nice day :)

Thomas


Reply to: