Mac版のUnetbootinだとブートストラップをちゃんと書き込んでくれなくて困った話

これ困ってる人あんまりいないのかな・・・。

光学ディスクドライブが手元にない場合、まっさらな環境にOSを入れたいとなると、USBフラッシュメモリを使うのが一番手っ取り早い(ネットワーク越しに撒いたりできる人は別)わけですが、ものぐさなもんで自分でfdiskとか叩きたくありません。

そういうものぐさのためにUnetbootin(http://unetbootin.sourceforge.net)という、USBメモリにインストールしたいLinux/BSDのディストリビューションとバージョンを指定するか、手元のディスクイメージを指定するかすることによって、勝手にブータブルなUSBメモリを作ってくれるツールが存在します。
UnetbootinはWindows用をはじめ、Mac版、Linux版が提供されていて、世の中の90%くらいの人が自由に使えるようになっています。

家ではMacをメインで使っているので、Mac版を使って何個がブータブルなUSBメモリを作成してみました。

が、ことごとくブートしない。

どうも、MBRブートストラップがうまく書き込まれていないようです。マジか・・・。
この件でググると英語のブログやフォーラムはひっかかりますが、日本語の記事はあまりひっかかりません。
色々調べた結果、UNetbootinを使ってUSBメモリにデータを書く前に、MBRブートストラップを焼けばいいことがわかったので、以下にその方法を記載します。

#ターゲットのUSBメモリをアンマウント
diskutil unmountDisk /dev/disk2

#USBメモリMBRを編集する
sudo fdisk -e /dev/disk2
#パーティションのリストを表示する
print
#一番目のパーティションを選ぶ
f 1
#パーティション情報を書き込む
write
#終わり
exit
diskutil unmountDisk /dev/disk2

ここまででMBRパーティションを作りました。次はここにブートストラップを焼きます。
定番のSYSLINUXを使うので、以下から好きなバージョンをダウンロード。

http://www.kernel.org/pub/linux/utils/boot/syslinux/

アーカイブを展開して、その中からmbr.binというデータをUSBメモリに焼きます。

sudo dd conv=notrunc bs=440 count=1 if=mbr.bin of=/dev/disk2

後はUNetbootinを使えばブータブルUSBが作れます。