USBメモリのレスキューディスクを作る

仕事でのとある用事からUSBメモリから起動するLinuxを入れた。
使ったのはSLAXというSlackwareベースのdistro。名刺サイズのCDなんかに焼いて使うことを想定したディストリビューションだけあって小さいのだけど、今回の用途ではコンソールがあればいいので、Xも含まれていないFrodo Editionというのを使った。isoイメージ段階で53MBという大きさ。
インストール(というか単純に展開するだけ)の手順などはUbuntu-JPのページに参考になる記述があった。このページ自体はPartimageというパーティション単位でバックアップを取るツールのベースとして使うことを想定している。このツールはこのツールで便利そうである。
要約すれば以下の通り

  1. インストール先のUSBメモリをFATでフォーマット
  2. SLAXのisoイメージをloopbackデバイスでmount
  3. 内容をコピー
  4. ブートローダの関係で一部のファイルの置き場所を変更
  5. 同じくブートローダの設定でファイルのパスを指定しているところを変更
  6. syslinux(ブートローダ)を転送

というのが最低限の手順。今回はLinux上でやったけど、ISOイメージのmount環境があればWindows上でも行える作業ばかり。
USBメモリはデバイス全体をFATでフォーマットしなければならないようで、全体を一つのパーティションに切っていたらBIOSから先に進んでくれなかった。
SLAXには標準で配布されている状態にアドオンする形で機能が追加できる。公式サイトの"modules"というのがそれ。.moという形式で配られているのでこれを先に作ったUSBメモリの/modules以下に置いておけば起動プロセス中にRAMディスク上に展開される。標準状態だとviも入っていなかったので、nviと使いそうなdump/resotreなどを入れた。
使われているkernelが2.6.16とかなり新しめということもありデバイスのサポートもそれなりに良かった。手元の幾つかのPCで起動したが、ほぼ全てのデバイスをサポートしているようだった。