2007年8月14日火曜日

USBメモリブートのpuppy linuxの作り方。

PuppyはライブCDだけどUSBフラッシュメモリからも起動できる。
本来はPuppyをCDブートさせ、セットアップからUSBフラッシュメモリにインストールする。

しかし自分は無駄な電気を使いたくないので殆ど使わないくせに常時電気を消費する光学系のドライブは内蔵していない。
かといってわざわざUSBの外付けドライブからCDブートしたくない。
なのでWindows上でCDイメージから直接インストールすることにした。

広い世の中には同じ考えを持ってるものの挫折してる人がいるかもしれないのでとりあえず方法を書いておく。
この方法を覚えておけばOSのアップグレードもWindowsから簡単に出来るようになるしね。



まず始めに知っておいて欲しいのは、全てのPCがUSBフラッシュメモリからのブートに対応しているわけではない事。
USB-CDからブート出来るからといってUSBフラッシュメモリからブート出来るとは限らない。
BIOSのブートデバイスの一覧にUSB-HDDやUSB-ZIP等のUSB-CD以外のUSBデバイスが載っていなければブート出来ないと思って間違いない。ダメ元で試すしかありません。

もう一つはUSBフラッシュメモリにもブート出来ないUSBフラッシュメモリがあるということ。
多くの場合はツールを使って起動できるように書き換えることが出来るけど、書き換えてもブート出来ないUSBフラッシュメモリも存在が確認されています。
その場合は諦めて別のUSBフラッシュメモリを用意してください。

さて、本題。
このページでは既にブート出来る、もしくは出来たUSBフラッシュメモリが既にあるものとして話を進めます。

Daemon-ToolsAlcohol 52%CD革命等その類の仮想CDツール、もしくはISOイメージからファイルを展開できるツールを使ってPuppyのCDイメージからファイルを抜き取る。
ちなみにここでは古いバージョンのDaemon-Toolsを使っているけど、現在入手できる最新版ではアドウェアが入ってるらしいので注意。
フリーで済ませたいならAlcohol 52%がフリーウェア化してるのでそちらを使う方がいいかもしれません。


ISOファイルをマウントして仮想CDドライブにアクセス。

ファイルをUSBメモリにコピーする。
コピーするのはisolinux.***以外のファイル全て。

isolinux.***のファイルはHDDにコピーする。


そしてファイル名の"iso"の部分を"sys"に書き換える。


大文字小文字は特に関係ない模様。

次にsyslinux.cfgのファイルの属性を変更する。
ファイルを右クリックからプロパティを選択。


属性の読み取り専用のチェックをはずし、適用する。


そして属性を変更したsyslinux.cfgをメモ帳などで開く。


"pmedhia=cd"のcdの部分をusbflashに変更。

この変更をしていないとUSBフラッシュからブートさせるとCDからブートしてないよ!と怒られる。

変更が終わったら読み取り専用にチェックを入れてOKを選択。


ここまで終わったらsyslinux.binsyslinux.cfgの二つのファイルをUSBフラッシュメモリにコピーする。

ここまででファイルのコピーは終了。
ここからはUSBメモリのMBRを書き換えてブートできるように仕様変更させる。

この手のUSBフラッシュメモリを利用したLinuxは殆どの場合、syslinuxが利用される。
isolinux.***syslinux.***に書き換えたのはこのsyslinuxってブートローダを使うためです。
syslinuxsyslinuxのwebサイトからダウンロードできます。
ちょっと分かりにくいので面倒な人はダウンロードのページからどうぞ。

ダウンロードするのはzip形式(syslinux-*.**.zip)が良いでしょう。
圧縮されているので解凍します。解凍の方法とかは割愛

必要なのはWindows用のsyslinux.exeだけなのでそのファイルだけ抜き取ります。
CUIのアプリケーションなのでコンソール(OSによってはコマンドプロンプト)から実行しましょう。
書式はsyslinux -ma USBフラッシュメモリのドライブレター
のようになります。
syslinux.exeがc:\でUSBフラッシュメモリがe:とすると
c:\syslinux -ma e:
で実行します。
実行に成功したら、lblinux.sysというファイルが作成されます。(隠し属性)


MBRの書き換えが済めばUSBフラッシュメモリから起動するpuppylinuxの完成です。
ちゃんと起動するか早速試してみましょう。