シリアル接続を受け付けるヘッドレスFreeBSDシステムの構築
さて,筆者も少しずつFreeBSDが使えるようになってきたので,将来はちゃんとしたサーバーでも立ててみたいと思うようになってきたのだが,ブレードサーバーみたいなキーボードもモニターもないマシンにってどうやってインストールするんだろう.っていうか,筆者のもう一つの企みとしてVIAのArtigoってマシンが欲しいのである.その二つがどうつながるかというと,serial console接続を受け付けるheadless machineを組みたいということなのである.
そうと決めたからにはキーボードを即座にリサイクルに出していいかというとそういうわけでもないらしい.あなたの使っているパソコンのキーボードや何やら全て引っこ抜いて電源を入れてみよう.大丈夫,壊れないから(たぶん).すると,パソコンがHDDにアクセスする前にキーボードがないと文句を言って起動を止めてしまう(たぶん).これはBIOSの設定でHalt on: All errorsとか何とかの設定が効いていると止まってしまうのだ(動くマシンもあるらしい).その場合仕方ないので電源を落としてキーボードをつないでBIOSの設定を変更しなければならない.BIOSの設定をHalt on: All but keyboardにすれば第一段階は通過だ.安心して全てを引っこ抜いて準備してよい.
--- ケーブル
次に,サーバーをインストールするリモートのPCとコントロールするPCをつなぐケーブルを準備しなければならない.デスクトップ同士であれば多分両方にcomポートがついているのでクロスケーブル一本ですむが,できればノートパソコンにつないで寝っ転がってコントロールしたい.ノートパソコンにはUSBしかついていない.そこで秋葉原に行って仕入れてきた.まず,USBとserialの変換ケーブルを秋月で購入した.前回書いたものである.これが1000円弱.続いて並びの千石通商に行って,D-sub 9 pinのクロスのケーブル(メスーメス)を購入した.これが500円弱.だったのが,間違えてインターリンクのオスーオスを購入してしまって,また買いなおしに行った.まあそれでもどこぞのメーカーのもので揃えるより格段に安い.
--- インストールメディア
FreeBSDのハンドブックには,シリアルコンソールでインストールする手順が書いてあるが,フロッピーでブートしてネットワークインストールというのもナニである.ここでは,FreeBSD 7.1のインストールDVDに細工して,それでブートしてインストールすることとする.
元ネタはftp://ftp.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/7.1/の7.1-RELEASE-i386-dvd1.iso.gz.これを適当なディレクトリに解凍してisoファイルを取り出す.
そうしたら,次のようにしてisoイメージを展開.
> sudo mdconfig -a -f 7.1-RELEASE-i386-dvd1.iso
> sudo mount -t cd9660 /dev/md0 /mnt
> mkdir temp
> cd temp
> tar -C /mnt -cf - . | tar -xf -
> sudo umount /mnt
> sudo mdconfig -d -u 0
boot/loader.confの先頭にに次の記述を追加.
console="comconsole"
boot.configの先頭に次の記述を追加.
/boot/loader -h
ひょっとすると,これは冗長なやり方かもしれない.詳しくはFreeBSDハンドブックの該当部分を参照.
出来上がったら,これらのファイルを再びまとめてisoイメージにする.手順は次のとおり.
> sudo rm -Rf rr_moved
> cd /usr/ports/sysutils/cdrtools
> sudo make install clean
さっきのiso imageを展開したディレクトリに戻る.
> sudo mkisofs -V FreeBSD7 -J -R -b boot/cdboot -no-emul-boot -o freebsd7.iso .
これで,展開したぐじゃぐじゃしたファイルの中にfreebsd7.isoというファイルができている.これをDVDに焼こう.
(参考)
ozakiさんのwiki
yebo blog
--- Terminal machineの準備
シリアルを通してFreeBSDマシンを操作するためには手元のマシンの通信環境を整えなければならない.筆者は二通りやってみた.一つはWindows xpの入ったLibrettoにPuTTYを入れて.もう一つは,Ubuntu 8.10の入ったThinkPadのminicomを使ってやってみた.Windowsの方はUSB-serial変換ケーブルのドライバーが必要で秋月で買ったのについてきたものを使用した.COMポートの番号をデバイスマネージャーで確認する.後は,PuTTYでCOMポートの指定をすればOK(確か,通信速度は9600ボーがデフォルトで変える必要がない).Ubuntuの方は
$ sudo apt-get install minicom
でインストールして,
$ minicom -s
で,通信パラメータの設定をするのだが,変更するところはただ一ヶ所で”シリアルポート”の”速度”のところを9600にすればよい.
--- インストール
以上の準備が整ったら,DVD-ROMを挿入して,パソコンとパソコンをケーブルでつなぎ,先に手元のコントロールするパソコンを立ち上げPuTTYだかminicomだかを立ち上げておく.次に,インストールされる側のパソコンをブートしよう.しばらくするとコンソールプログラムに表示が始まるはずだ.ただ,ブートの途中でターミナルタイプを選ぶ場面が訪れるが,PuTTYを使っている場合はxtermを(そうすると,sysinstallの画面がきちんとカラーになる),minicomの場合はvt100にしよう.あとは普通にインストールを進めればいいが,唯一気をつけなければならないのはnetwork configurationでSSH接続を有効にしておくことだ.すなわち,インストールの開始はserial consoleをつかって進められているが,インストールが終わって再ブートするとserial consoleは有効にならない.SSH接続だけが唯一の接続手段だ.
--- インストール後
インストール後は,SSHでserial consoleの構築をすればいい(なるべく早くやる方がいい).FreeBSDハンドブックを見てもいいが,portsにsysutils/comconsoleというのがある(otsuneさんに教わった)これを入れれば煩雑な設定をしないでシリアルコンソールがばっちり組める.pkg-installってファイルに9600って書いてあったから,ここを増やしたら通信速度が早くなるかと思って変えてインストールしてみたが,結果はひどい目にあった.そういうことをするなら上のリンクをよく読むことみたい.
これで気分はデータセンター.
−以上−
« Ububtu 8.04 (Hardy) から8.10 (Intrepid) にアップグレードしたところ,Sambaの中身がNautilusで見えない件 | Main | ETC車載器新規導入助成って言うけど,ETC車載器売り切れだよ.だから国土交通省に電話してみた. »




![: 親和産業 [SS-EC100] エレクリーン100/グリス取リーナー](http://ecx.images-amazon.com/images/I/41D68bXXyJL._SL75_.jpg)
![: AINEX シリコングリス用ヘラ [GH01]](http://ecx.images-amazon.com/images/I/21YS3Y0DTVL._SL75_.jpg)
![: AINEX シルバーグリス [AS05]](http://ecx.images-amazon.com/images/I/21BASYAFF6L._SL75_.jpg)














Comments