ttt

getttyent

実家のサーバーマシンのOSをアップデート

2009-12-29 23:55:12 | デジタル・インターネット

実家のサーバーマシン、といっても、

ジャンク・ノートパソコンで家庭内サーバ

という、しょぼいパソコンなんですが、3年半前にセットアップして以来、ほぼそのまんま。

FreeBSD 5.4というなんとも古いバージョンですが、とくに問題はなかったんです(ホント?)

しかし、他のFreeBSDマシンをすべて7.2へアップデートしてしまったもので、それじゃ大掃除のつもりで、こいつもアップデートするかと。

ハードディスクではなくて、コンパクトフラッシュで動かしていたんですが、256MBだったのか・・・512MBかと思ってた。少ないなぁ。

200912291

前回のセットアップ作業ってどうやったっけ?けっこう泥臭い試行錯誤を繰り返したような気がするけど、うーん、忘れた。

ということで、今回は、ちょっとばかり洗練されたやり方を。

まず、FreeBSDなデスクトップパソコン(これも、現役を引退したお古ですが)で、jail環境を構築。

方法は、基本的にはjailのマニュアルに書いてあるとおり。

ただし、make buildworldするとき、src.confにWITHOUT_PROFILE=yesなどあれこれ指定して、不要なものがインストールされないように細工をしておきます。

また、kernelのCONFIGファイルも、いらないドライバを抜くなどチューニングして、ダイエットしてやります。

こうすることで、普通にインストールすると162MBほどディスクを使用していたところが、119MBに減りました。う~ん微妙

つぎにjail環境の中で、portsを使って、あれこれソフトウェアをインストール。
そうだ、前回は、/usr/local/binとか/usr/local/libのファイルを、手でコピーしたんだっけ。そのせいで、ソフトウェアをアップデートするのがおっくうになってたんだ 

そうして、jail環境で、ちゃんと動くことを確認。ちょっと洗練された方法ですね。自画自賛。

仮想マシンを使わずにjailを使う、ってのがミソかもしれません。何しろ、デスクトップマシンも、Pentium4 2.4GHz、1GBという、今となっては非力なマシンなもので、仮想マシンでエミュレートでもしようものなら、さらに遅くなってしまう。その点、jailなら、まったくといっていいほどオーバーヘッド無しに、快適に作業できます。
それと、jailの場合だと、host環境の方からは、ファイルシステムが丸見えになっているので、作業しやすいですね。うん、これはホント、すばらしく使いやすいです。

一方で、今運用中のサーバーマシンのディスクの内容を、/dev/ad0s1aとかから、直接ddで吸出して、デスクトップパソコンのほうへ、コピーしちゃいます。
このディスクイメージファイルは、mdconfigしてマウントしちゃえば、必要なファイルを新環境側へ自由自在にコピーできます。

というような感じで、jailを使って、満足の行く環境ができたので、ファイルをコピー・・・しようと思ったら、すでに256MBには入りきらなくなっていました。

というわけで、/usr/local/share、/usr/local/man、/usr/local/libあたりにあるファイルを、たとえば/extraといったディレクトリ以下へ移動して、シンボリックリンクを張っておきます。
CFへコピーするときは、/extraを抜いておく、という作戦です。

そして、mdconfigしたディスクイメージをいったんnewfsしてから、新環境のファイル一式を、tarでコピー。

さあ、これで、ディスクイメージができちゃいました。

いよいよ、サーバーのアップデート。サーバーをシャットダウンして、CFを取り出します。

あとは、CFをデスクトップパソコンに挿して。さきほど完成したディスクイメージを、ddコマンドで、CFへまるごとコピー。たぶん、このほうが、ファイルを1つずつコピーする場合よりも、短時間で書き込めると思います。

200912292

それから、たぶん、bsdlabel -w -b boot/boot /dev/da2s1a というようなおまじないコマンドで、ブートローダーをコピーする必要があるんじゃないかな。

で、CFをノートパソコンに挿して、ブート。

200912293

おっと、/etc/fstabを書くのを忘れてた 

・・・とか、ちょっとしたミスはありましたが、無事、アップデート作業完了。

まあこれで、新しいOSで、新年を迎えられます。

200912294