SqueezeからビジネスカードサイズのCDイメージがUSB起動にも対応して

■SqueezeからビジネスカードサイズのCDイメージがUSB起動にも対応していた件。

 後でどうにでも出来る空のUSBメモリやUSBディスク、USBアダプタで繋げる事が出来る各種メディア...
 があるのなら、容量に関わらず以下でコピーして再起動するだけで、インストーラが立ち上がる。
 ※約50MBなので、最近のUSBメモリであれば待つ必要も無い。

 例えば、dmesgでUSBドライブが「/dev/sdb」として認識している場合。

$ dd if=debian-509-i386-businesscard.iso bs=512k of=/dev/sdb

■Lennyでは確かに以下だったので、別途ブートローダをインストールしていた。

$ dd if=debian-508-amd64-netinst.iso bs=512 count=1 2> /dev/null | hexdump -C | head -3
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

$ dd if=debian-509-i386-businesscard.iso bs=512 count=1 2>/dev/null | hexdump -C | head -5
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

■一部のアーキテクチャでは既に対応していたのかも知れない。

$ dd if=debian-508-alpha-hppa-ia64-netinst.iso bs=512 count=1 2> /dev/null | hexdump -C | head -3
00000000  80 00 50 41 4c 4f 00 04  03 53 68 00 00 3f e4 b3  |..PALO...Sh..?..|
00000010  02 ab 38 00 00 4f 40 fa  30 2f 76 6d 6c 69 6e 75  |..8..O@.0/vmlinu|
00000020  78 20 69 6e 69 74 72 64  3d 30 2f 72 61 6d 64 69  |x initrd=0/ramdi|

$ dd if=debian-508-amd64-i386-powerpc-netinst.iso bs=512 count=1 2> /dev/null | hexdump -C | head -3
00000000  45 52 02 00 00 0e c8 00  00 01 00 01 00 00 00 00  |ER..............|
00000010  a0 f0 54 03 00 00 00 00  30 f1 54 03 00 00 00 00  |..T.....0.T.....|
00000020  60 f2 54 03 00 00 00 00  d0 f2 54 03 00 00 00 00  |`.T.......T.....|
■気づけば公式にも。。。

 参考:4.3. USB メモリでの起動用ファイルの準備
 http://www.debian.org/releases/stable/i386/ch04s03.html.ja

■手元にあるCDイメージを確認。
 今年の4月頃に気づこうと思えばそこにあったのです。。。
 私のハードディスクにあるのですから。。。

$ dd if=debian-6.0.4-i386-businesscard.iso bs=512 count=1 2>/dev/null | hexdump -C | head -5
00000000  fa 31 ed 8e d5 bc 00 7c  fb fc 66 31 db 66 31 c9  |.1.....|..f1.f1.|
00000010  66 53 66 51 06 57 8e dd  8e c5 52 be 00 7c bf 00  |fSfQ.W....R..|..|
00000020  06 b9 00 01 f3 a5 ea 2b  06 00 00 52 b4 41 bb aa  |.......+...R.A..|
00000030  55 31 c9 30 f6 f9 cd 13  72 16 81 fb 55 aa 75 10  |U1.0....r...U.u.|
00000040  83 e1 01 74 0b 66 c7 06  d1 06 b4 42 eb 15 eb 00  |...t.f.....B....|

$ dd if=debian-6.0.5-amd64-businesscard.iso bs=512 count=1 2>/dev/null | hexdump -C | head -5
00000000  fa 31 ed 8e d5 bc 00 7c  fb fc 66 31 db 66 31 c9  |.1.....|..f1.f1.|
00000010  66 53 66 51 06 57 8e dd  8e c5 52 be 00 7c bf 00  |fSfQ.W....R..|..|
00000020  06 b9 00 01 f3 a5 ea 2b  06 00 00 52 b4 41 bb aa  |.......+...R.A..|
00000030  55 31 c9 30 f6 f9 cd 13  72 16 81 fb 55 aa 75 10  |U1.0....r...U.u.|
00000040  83 e1 01 74 0b 66 c7 06  d1 06 b4 42 eb 15 eb 00  |...t.f.....B....|

■「0x80」で起動パーティションも設定されています。

$ dd if=debian-6.0.4-i386-businesscard.iso bs=2 skip=223 count=32 2> /dev/null | hexdump -C | head -3
00000000  80 02 01 00 17 3f 20 2d  40 00 00 00 c0 6f 01 00  |.....? -@....o..|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*

■最後の起動ディスクのフラグ「0xAA55」も。。。

$ dd if=debian-6.0.4-i386-businesscard.iso bs=2 skip=255 count=1 2> /dev/null | hexdump -C | head -3
00000000  55 aa                                             |U.|
00000002

■isolinuxが対応したと考えるのが自然なのかな。。。

$ dd if=debian-6.0.4-i386-businesscard.iso bs=512 count=1 2>/dev/null | strings | grep "\."
isolinux.bin missing or corrupt.
Operating system load error.

■以下を参照する限り、「syslinux」の4.01からの対応のようです。

 参考:Changes in 4.01
 http://www.syslinux.org/wiki/index.php/Syslinux_4_Changelog

 参考:Version 4.01 of Syslinux
 http://site.freecode.com/projects/syslinux/releases/319005

■debian6.0.4からだった。
 ということで、2012128日から可能だったということですね。。。

 参考:Updated Debian 6.0: 6.0.4 released
    〜Stop treating ISO hybrid images on USB sticks as real optical drives〜
 http://www.debian.org/News/2012/20120128