2009年5月12日火曜日

OpenSolaris Live USB Creator v0.03

各方面にてアナウンスしましたが、OpenSolaris Live USB Creator をバージョンアップし、 Version 0.03 をリリースいたしました。( OpenSolaris-announce でのアナウンス / JPOSUG でのアナウンス )

相変わらず英語のUIですが、exeファイル一発でインストーラーもレジストリも不要となっておりますので、OpenSolaris に興味があるという方はぜひ genunix.org などの USB イメージと共にお試しください。

OpenSolaris Live USB Creator (Windows/.NET)


今回のバージョンアップの目玉は "USB Stick template" の廃止です。

v0.02では実はMBRやdisklabelといったパーティションやスライスの情報を作る機能は実装されていなく、OpenSolaris実機でfdiskやformatコマンドを使って先頭からパーティション0スライス0の開始位置までを切り出してデータとして用意し、"USB Stick template" の選択に応じて先頭部分のデータを使い分けていました。ですので、あえて言えば「劣化版dd」ということができるかと思います。

HDDなどでは、シリンダ・ヘッダ・セクタといった物理的な構造に合わせてこういった情報を生成するのですが、USBメモリの場合物理的にそういったものがないのと、デバイスが報告するパラメータはさておいて、1シリンダ=4096セクタでパーティション構造を作り、現実的にはLBAでストレージ内の位置を示すようでしたので、「それならばいっそのこと何種類かパターンを作っておいて、適宜使い分ければddもどきでもLiveUSBメモリを作ることができるだろう」というねらいがありました。

そういった意味では非常にインスタントなネタツールというつもりだったのですが、意外にも多くの方に使ってもらい大きな反響を呼ぶことになり、この "USB Stick template" がなぜ必要なのかといった問い合わせももらったこともあり、真面目にてこ入れをしようということで今回のバージョンアップとなりました。

v0.03 では usbcopy スクリプトで実行されている fdisk および format コマンドの中で必要な部分を実装し、USBメモリ全体についてパーティションとスライスを作成し、その後にUSBイメージを書き込む流れになっています。またパーティションを設定するだけではブートできませんので、OpenSolaris で配布されている GRUB の stage1 stage2 のイメージをファイルリソースとして埋め込んでいます。また、"USB Stick template" を廃止したのでその分配布サイズが小さくなるという効果もありました。

今回のバージョンアップでようやく usbcopy スクリプト相当の働きとなってなんとか「ネタツール」から脱却した格好ですが、次のバージョンの構想も固まりつつあります。リリース時期は約束できませんが、近いうちにお見せできるのではないかと思います。