ブータブルなUSBメモリを作ってみた
4GBで2000円ぐらいのUSBメモリを2つ買ってきて、
- レスキュー用
- インストール用
なブータブルなUSBメモリを作ったメモ。
レスキュー用
UNetbootinを使うと、CD用のISOイメージからぺろっとブータブルなUSBメモリが作れる。
なのでまずは中身がubuntu-8.04.1-desktop-amd64.isoなブータブルUSBメモリを作る。
UNetbootinでUSBメモリを作った後、isolinuxからsyslinuxへのリネームを忘れずに。
mv syslinux.cfg syslinux.cfg.bak mv isolinux/isolinux.cfg isolinux/syslinux.cfg mv isolinux syslinux
これでUSBでブートするとUbuntuのインストーラが上がるので、Try Ubuntu without any change to your computerを選択すればUbuntuが起動する。
fdiskとかshredとかは入っているけど、sshdが入ってない。ここでaptitude install openssh-serverしても起動しなおすと消えちゃう。毎回installするのはめんどいしネットワークが使えないとsshdが入れられないのはまずい。
でどうするかというと、LiveCD用の仕組みで、変更をUSBとかに記録しておくのがあるので、これをブータブルUSBメモリでも使えばOK。
まず、UNetbootinでISOをコピーする前に、予めパーティションを切っておく。
- sdb1 800MB
- sdb2 残り全部
な感じで。
で、sdb1 にUNetbootinでISOをコピってマウントして、
のinstall_usb.shを参考に、syslinux.cfgをいじってブートパラメータに「persistent」を追加する。あと、initrd.gzの中のscripts/casperから,mode=755の部分を削除する。
sdb2のファイルシステムはLinuxでネイティブで使えるやつにすればOK。ext2, ext3, xfs, reiserfsとか。キモは、ラベルを「casper-rw」にすること。なんでもいいわけじゃなくこのラベルにしないとだめ。自分はext2にしたので、
mkfs.ext2 -L casper-rw /dev/sdb2 とか、mkfs済みなら tune2fs -L casper-rw /dev/sdb2
な感じで。詳しくは前出のUbuntu Weekly Recipeを参照のこと。
これでaptitude installとかしたものはsdb2に書き込まれるので、次に起動したときもちゃんと残ってる。あとXは起動しなくていいので/etc/rc2.dからgdmを削除したりもろもろの調整をやっておく。
インストール用
最初、 UNetbootin で ubuntu-8.04.1-server-amd64.iso をUSBメモリにコピってみたんですが、インストーラは立ち上がりいけるかと思いきや、途中で cdrom が見つからないと泣かれたり、手動でmountしようと思ったらこの時点ではisofsとfatのドライバしかないとか、fatでmountしたらシンボリックリンクがただのファイルになってるとか長いファイル名がちょんぎれてるとか、なんかそんなこんなでインストールできず。
結局、
を参考に、またパーティションを2つ切って、sdb1には
を
zcat boot.img.gz > /dev/sdb1
で書き込んで、sdb2はext2とかでmkfsして、ごろっとubuntu-8.04.1-server-amd64.isoのファイル1個だけをコピーしておいた。
hd-media/boot.img.gzに収録されているインストーラは、他のパーティションにある*.isoなファイルをみつけてインストールを開始するので、このUSBメモリがあればネットワーク要らずでUbuntu Server Editionがインストールできます。
が、インストールされたカーネル関係がのきなみ-genericだったので、あとで手動で-serverなのに入れ替えました。