ラット渡辺です。
amd64バージョンのFreeBSDをatom330 (Intel D945GCLF2) にインストールして自宅サーバ化を進めていますが、ちょっと負荷試験を兼ねて FreeBSDのシステム再構築をやってみましたので、手順を書いておきます。
手順概要 (参考:FreeBSDハンドブック)
(1) stable-supfile の編集
(2) cvsup の実行
(3) 以前構築した場合は、既存ファイルの削除 (chflags -R noschg ・・・)
(4) ユーザーランド(buildworld)とカーネルの再構築(buildkernel)
(5) カーネルのインストール (installkernel)
(6) 設定ファイルのバックアップ&ユーザーランドのインストール(installworld)
(7) 設定ファイルのマージ&再起動
amd64バージョンのFreeBSDをatom330 (Intel D945GCLF2) にインストールして自宅サーバ化を進めていますが、ちょっと負荷試験を兼ねて FreeBSDのシステム再構築をやってみましたので、手順を書いておきます。
手順概要 (参考:FreeBSDハンドブック)
(1) stable-supfile の編集
(2) cvsup の実行
(3) 以前構築した場合は、既存ファイルの削除 (chflags -R noschg ・・・)
(4) ユーザーランド(buildworld)とカーネルの再構築(buildkernel)
(5) カーネルのインストール (installkernel)
(6) 設定ファイルのバックアップ&ユーザーランドのインストール(installworld)
(7) 設定ファイルのマージ&再起動
作業はすべて root 権限で行うものとします。
(1) stable-supfile の編集
# cp /usr/share/examples/cvsup/stable-supfile /tmp
# vi /tmp/stable-supfile
host の部分を "cvsup.jp.freebsd.org" に変更します。
*default host=cvsup.jp.FreeBSD.org
(2) cvsup の実行
# cvsup -g -L 2 stable-supfile
ネットワークから更新したソースコードが手元のサーバーにインポートされていきます。
自宅のIPP環境で10分~15分くらいかかりました。
(3) 以前構築した場合は、既存ファイルの削除 (chflags -R noschg ・・・)
以下のコマンドを実行します。初めて再構築する場合は不要です。
# chflags -R noschg /usr/obj/usr && rm -r /usr/obj/usr
(4) ユーザーランド(buildworld)とカーネルの再構築(buildkernel)
/usr/srcに移動して、makeします。これが3時間ほどかかりました。
-j 4 はジョブの並列度です。なんちゃって4コアなので -j 4 にしました。
# cd /usr/src
# make -j 4 buildworld && make buildkernel
(ずっと待つ・・・)
このときの負荷ですが、 w コマンドの結果です。ロードアベレージが4を越えています。
そういう意味では、負荷テストの意味があったかな、とは思います。
atom330% w
4:24PM up 1 day, 15:58, 3 users, load averages: 4.20, 4.25, 4.03
USER TTY FROM LOGIN@ IDLE WHAT
root v0 - Mon03AM 1day -csh (csh)
me pts/0 xxx.rat.jp 2:53PM 1:09 /usr/obj/usr/src/tmp/u
me pts/1 xxx.rat.jp 3:20PM - w
CPU温度も計測できるので、計測してみました。
atom330% sysctl -a | grep temper
dev.cpu.0.temperature: 53
dev.cpu.1.temperature: 54
dev.cpu.2.temperature: 60
dev.cpu.3.temperature: 60
ずいぶん高いですね・・・起動時はCPU0で40度弱だったんですが・・
ちなみに、このコア温度計測をやるには、事前に以下のコマンドを実行します。
# kldload coretemp
起動時に coretemp カーネルモジュールを自動ロードするには
/boot/loader.conf に 「coretemp_load="YES"」の行を追加します。
おまけ HDDの温度計測をやるには、smartmontools というパッケージを
インストールして、以下のコマンドを実行すると結果がでます。(44度でした)
# /usr/local/sbin/smartctl -a /dev/ad4 | grep Temperature_Celsius | awk '{print $10}'
44
(5) カーネルのインストール (installkernel) と再起動
# make installkernel
# reboot
(6) 設定ファイルのバックアップ&ユーザーランドのインストール(installworld)
再起動後、またログインして、 root になります。
# mergemaster -p
# cd /usr/src
# make installworld
ここでハマリました。 (/)のディスク容量が足りない、と。
atom330# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad4s1a 507630 499064 -32044 107% /
devfs 1 1 0 100% /dev
/dev/ad4s1e 507630 7422 459598 2% /tmp
/dev/ad4s1f 464978168 6997976 420781940 2% /usr
/dev/ad4s1d 3014286 17064 2756080 1% /var
FreeBSDインストーラーのデフォルト設定で、 / には 512MBしか
割り当ててなかったのですが、/boot に目一杯入っていたのが敗因です。
atom330# du /boot/
24 /boot/defaults
2 /boot/firmware
238084 /boot/kernel
2 /boot/modules
2 /boot/zfs
237294 /boot/kernel.old
476096 /boot/
仕方が無いので、 kernel.oldのデータを圧縮して別ディレクトリ /usr/tmp
に移動して230MBの空きをつくり再チャレンジ。
次に再構築する時にハマらないよう、 /boot/kernel.old を
/usr/boot/kernel.old ディレクトリを作ってシンボリックリンクを張ってごまかしました。
atom330# mkdir /usr/boot/kernel.old
atom330# cd /boot
atom330# rm -rf kernel.old
atom330# ln -s /usr/boot/kernel.old kernel.old
(カーネルの再構築が失敗して、かつ起動時に/usr をマウントしてくれないときが怖いです)
(7) 設定ファイルのマージ&再起動
# mergemaster
# reboot
(8) 動作確認
再起動後、またログインして uname -a のコマンドを実行します。
% uname -a
FreeBSD atom330 8.0-BETA4 FreeBSD 8.0-BETA4 #0: Tue Sep 15 18:07:55 JST
2009 me@atom330:/usr/obj/usr/src/sys/GENERIC amd64
ちゃんとビルド時の日付になってますね。めでたしめでたし。