中古の ThinkPad X21 を入手しました。手持ちのPCでは2番目に速いマシンになり
バリバリです。
さっそく Debian GNU/Linux をインストールするのですが、その失敗と成功の物語?
をレポートします。
| |||||||||
インストール | |||||||||
ありがたいことに当機は Windows 2000 が入っていて、D2D (Disk to Disk)
リカバリもできるようであった。 手持ちのUSB接続のCDRドライブを繋ぎ KnoppixのCDを入れて起動する。 USB1.1なので遅いが、CUIモードにすればそこそこ使える。 まず、 parted を使って Windowsパーティションを縮小し、Linux パーティションを確保する。 が、Windowsが起動しなくなった。 (-_-) 敗因: parted はHDDパラメータをカーネルから取得し、その値を元にパーティション テーブルを書き込む。 HDDのBIOSパラメータは 2584(1024)/240/63 であったが、カーネルは ATAインターフェイスで取得した値 41344/15/63 で認識していた。 そのためパーティションテーブルが 1024/15/63 を元にした値で書き込まれ BIOSパラメータと異なるため Windowsが起動できなくなった。 対策: Knoppixの起動時に knoppix 2 hda=2584,240,63 と入力して 立ち上げ、 parted でWindowsパーティションを縮小する。 注意: D2Dでリカバリするとパーティションテーブルも書き換えられる。 Windowsパーティションを縮小後、後ろに空きがある状態でD2Dすると、 Windowsパーティションが目一杯広げられる。
気を取り直し、D2Dでリカバリ後、 parted でWindowsパーティションを
縮小し、 fdisk でLinuxパーティション(hda5:ext2, hda6:swap,
hda7:予備)を確保しファイルシステムを作成する。
ここで ブートローダをどうするか悩む。
D2DはMBRとその後の数セクタを使用しているため、MBRにGRUBをインストールするのは
ためらわれた。
熟考の末、GRUBのstage1は拡張パーティション(hda3)の
先頭にインストールし、stage2はHDD末尾の空き領域にインストール
することにした。
fdiskで hda3 に起動フラグを立てればGRUBが動くはずだ。
次に、 /sbin/grub を起動して、 (/mnt/hda5/sbin/grub だったか?) GRUBをインストールする。
/mnt/hda5/boot/grub-menu を以下のように書き込む。
Knoppixを終了して、起動してみる。うまく WindowsとLinuxのデュアルブートが
できるようになった。
| |||||||||
無線LAN | |||||||||
安い無線LANカード Buffalo WLI2-CB-G54Lを買った。一応 Windowsで自宅内の
どこでもInternetできるようになった。
Linuxではあまり期待はしていなかったのだが、少し調べると ndiswrapper
を使えばできるようであった。 まず、我が家最速のデスクトップ機にLinuxソース(素の2.6.13.4)と ndiswrapper-source (etchのdeb)をダウンロード、展開して debian パッケージのbuildをする。
ThinkPadに kernel-image と ndiswrapper-modules の
deb を転送し、 dpkg -i でinstallする。
合わせて ndiswrapper-utils も apt-get でinstallする。
次に、自宅無線APのセキュリティ設定は WPA-PSK AES を使用しているのだが、
wpa_supplicant で設定できるらしい。
apt-get install wpasupplicant した後、
/etc/default/wpasupplicant を編集する。
ifconfig wlan0 192.168.11.21 して ping 192.168.11.1 するとちゃんと通信できた。 次は、自動でIPアドレスが付いて通信できるようにする。 DHCPは使ってないので /etc/network/interfaces に以下を追加編集する。
wgetで大きいファイルをダウンロードしてみる。 APが10baseT でつながっているので、速度は 1.07MB/s であった。
| |||||||||
ネットワーク・ブート | |||||||||
ThinkPad内蔵のEthernetはネットワーク・ブートできるはずなので
起動できるか試してみた。
まずはブートローダだが、GRUBでネットワーク・ブートできそうなので、Tryする。
makeが終わると、stage2ディレクトリ内に pxegrub が出来ているので、それを tftpdとdhcpパッケージを インストール済のサーバ機の /srv/tftp/ ディレクトリにコピーする。
次に、DHCPサーバの設定をする。
/etc/init.d/dhcp restart して、Etherケーブルを接続して、 ThinkPadの電源を入れ F12 を押し、 Intel(R) Boot Agent を選択すると 見事にGRUBが起動された。 (追記) dhcpd.conf に option-150 を追加すると GRUB menu.lst のパスを指定できる。よって以下は Obsolete 。 ところで、GRUBのメニューのデフォルトは /boot/grub/menu.lst なのでメニューは出ず、コマンドモードになる。 メニューを出したいので以下のパッチをあて、再度 pxegrub をbuildする。
次に、ネットワーク・ブート用のカーネルのbuildをする。
次に、母機の tftp/nfsサーバにクライアント用OS、Debian sarge を
debootstrap でインストールする。
(注意) tftpサーバに netkitのtftpdではなくtftpd-hpaを
インストールしていて、in.tftpdの引数に -s オプションを指定している場合
(デフォルト) は、指定したパスがtftpクライアントから見るとルートディレクトリに
なる(普通の感覚)ので、 GRUB menu.lstのパスの指定やGRUB kernel
コマンドに指定するパスは上記の例から /srv/tftp を取り除いたものになる。
| |||||||||
FreeBSD | |||||||||
FreeBSD 6.0R も出ていることだしインストールしてみることにしたが、私のThinkPad
でブートできるデバイスはUSB-CDRとEthernetブートの2つである。CDRを焼かずに何とか
ネットワークからインストーラーを起動できないかとググってみると以下があった。 http://www.freebsd.org/doc/en_US.ISO8859-1/articles/pxe/
まず、pxebootを入手しなければならないのだが、ネットのどこかにないか
少し探してみたが見あたらないので自前でビルドすることにする。
次に、 boot.flp, kern1.flp, kern2.flp を配布元からダウンロード
してきた。
/etc/dhcpd.conf の中で filename "pxeboot"; と指定して
起動してみると絶対パス /boot/loader.rc で tftpサーバに
取得しに行っていた。netkitの tftpd はこんなパスには対応していない。
ここで悲劇におそわれた。
翌日、ThinkPadとFreeBSD 相性が悪いのかな〜 と思いググってみると、あるわあるわ。
BIOSバグってる。 −パーティションIDが n5h (n: 1以上) のハード・ディスクから、システムを 起動できない。以前さらっと目を通していたけど、気付かなかった。 ひとことFreeBSDと書いといてくれたらBIOSアップしただろうに。 古いHDDを取り付けて電源を入れると、かなり待ったあとWindowsが起動した。 よかった。そしてBIOSを更新した。 FreeBSDをインストールしたHDDを取り付けて起動すると、いきなりFreeBSD 6.0R が起動した。FreeBSDインストール時、MBRには何も入れないを選択したけど、 FreeBSDインストーラーは自分のパーティションをアクティブにしてしまっていた。 とりあえず無事起動したので安堵した。 (追記) pxeboot を LOADER_TFTP_SUPPORT なしでビルドすると、 pxeboot は NFS でファイルを取得しにいくらしい。 そうすれば netkitのtftpd でも対応できたはずだ。 特にDISKLESSマシンを構築する場合はその方がよいだろう。 |