Steve McIntyre: Isohybrid CDs being produced
New feature for Debian CDs
We've had a wishlist bug
(#551951) open against
debian-cd for some time, asking for the creation of "isohybrid" CD
images for i386 and amd64. These are special in that as well as the
normal CD-based ISO9660 filesystem they also contain a valid-looking
DOS-style partition table. Thus, if you simply copy one of these
images raw to a USB stick a normal PC BIOS will boot the image
directly. This would be a neat feature, making it much easier for
people to use standard Debian installer images on their USB sticks
without having to
follow a lot
more instructions.
Support for this feature was added in syslinux/isolinux quite a
while back (thanks to H Peter Anvin and the other syslinux
contributors), but this depended on post-processing images with
the
isohybrid
program. Due to the special way that we
make our CD and DVD images to produce jigdo images as well, that
wouldn't work for us: the jigdo files would no longer match the ISO
files. Bugger...! Recently, along came more help in the form of Thomas
Schmitt (author of xorriso) and George Danchev, its Debian
maintainer. Recent versions of xorriso support creating isohybrid
images directly, which is very handy. We've worked together in the
last few months on porting my old JTE code (which creates our jigdo
images) from cdrkit to xorriso, and after a lot of testing and
debugging we now have things working fully. I've added a small amount
of code in debian-cd to use the new xorriso features, and for the last
couple of weeks all of the i386, amd64 and i386-amd64 multi-arch CDs
and DVDs have been built as hybrids.
It's been a delight working with Thomas and George - they're
enthusiastic, helpful and friendly. Thanks, guys!
What does this mean for end users?
Instead of having to specially prepare USB sticks for the
installer, you can now simply use dd
to write the image
straight to the raw stick, e.g.:
# dd if=debian-testing-i386-netinst.iso of=/dev/sdXThe USB stick should now boot directly, showing exactly the same bootup screen as if you'd written the image directly to a CD. Yay! I'm expecting to be using this code from now on for new releases, i.e. d-i beta and RC releases and for Squeeze itself when we get there. I'm not planning on backporting this code into the Lenny branch of debian-cd as it's a lot of work and I don't want to destabilise things there. What's next? We need to clear up some of the maintenance around the code as it stands; I'm planning on moving libjte inside my existing jigit package, as that's a sensible place to put it. That will come after the Squeeze release, though. We need to finalise boot support for other architectures in xorriso; I added support for them into mkisofs/genisoimage a long time ago and we've already moved some of that into xorriso. Thomas and George have also been working hard to give me faster/better size estimation code, useful for making debian-cd run faster. Finally: I'd like to add support into xorriso for creating the nasty HFS hybrid images that are needed for booting Macs. The code that does this in cdrkit is probably some of the worst that I've ever worked with, and I'd like to get away from it. If only Apple hadn't stupidly built their proprietary platform around this shit and had used open standards instead. :-( Once we have these bits in xorriso, I'll be able to move production of all of the CDs across from genisoimage to xorriso. Very nearly there for being able to drop the last remnants of Schily-ware from the Debian archive...