Friday, 07 January 2011
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
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 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.
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...