自作 3号機 FreeBSD 5.2.1 → 6.2

2008年 1月 12日 掲載, 2008年 1月 23日 一部修正


メインマシンである自作 3号機の OS は 4年前の FreeBSD 5.2.1 で,さすがに古い. サポートはとっくに切れているし, 新しいアプリケーション,ツールのインストールも困難になってきた. そこで,一応最新のリリースである 6.2 に入れ換えることにした.

今回のシステム入れ換えでは, FreeBSD のバージョンを 5.2.1 から 6.2 に上げるだけでなく, atacontrol で行っていた RAID1 の構築を, gmirror を使うように変更した.

インストールするハードディスクは, Maxtor の 4R120L0(120GB,ATA/133)である. 3台あるので,作業手順の解説のために, それぞれのディスクに番号を付けて呼ぶ.

作業には,システムを入れ換える 3号機のほかに, データバックアップ用の 自作 2号機, インストール作業用の 自作 4号機, の 2台のマシンを使用した.

以下にシステム入れ換えの手順を記す.


3号機のバックアップ

念のためにデータを別マシンにバックアップしておく.

/home/kdo の内容を 2号機にバックアップする. 2号機から起動して,

$ rsync -e ssh -a --delete kdo3:/home/kdo /home2/kdo/kdo3/

2番ディスクの ATACONTOROL RAID の解除

2番ディスクをはずし,4号機のセカンダリマスタにつなぐ. 4号機の FreeBSD 6.2 から起動し,

# atacontrol delete ar0

再起動し,dmesg で ar0 が無くなっているのを確認.

なお,1番ディスクは,いつでも環境を戻せるように保存しておくので, ar0 もそのままにしておく.

3番ディスクに FreeBSD 6.2 をインストール

4号機のプライマリマスタを 3番ディスクと交換し, インストールCD1 を使って FreeBSD 6.2 をインストール.

FreeBSD 6.2 試行錯誤:インストール を参考にして行った, ただし,Partition を切りなおすのは ad0 のみ. ad2(元の 3号機のディスク)は, あとで内容を ad0 にコピーするので,いじらない.

2番ディスクの内容をコピー

旧システムの 2番ディスク(現在 ad2)の内容を, 新システム 3番ディスク(現在 ad0)にコピーする.

タイムスタンプなども保持したままコピーしたいので, rsync コマンドをインストールして使う.

$ su
# mount /dev/ad2s1f /mnt
# cd /mnt/home/kdo/FreeBSD_6.2/packages
# pkg_add rsync-2.6.8_2.tbz
# exit
$ cd ~kdo
$ sh sync.sh |sh

ここで,sync.sh は 2番ディスクの /home/kdo の内容をリストアップして rsync するスクリプト.

#!/bin/sh

LIST=`ls -d /mnt/home/kdo/*`

for DATA in $LIST
do
  echo rsync -a $DATA /home/kdo/
done

ドットファイルとかは新しく作りなおしたいので, /home/kdo 丸ごとの rsync はしない.

ファイルのユーザID とグループID が, 旧システムと新システムでは違っていたので, パーミッションが 600 のファイルなどのコピーに失敗する. su して chown -R kdo,chgrp -R wheel してから,rsync しなおす,

$ su
# cd /mnt/home
# chgrp -R wheel kdo
# chown -R kdo kdo
# exit
$ cd ~
$ sh sync.sh | sh

100GB 以上あるから時間がかかる. 4時間以上かかった.

~/GNUstep はドットファイルではないが, 古い設定ファイルなので rm -r しておく.

gmirror で RAID1 の構築

インストールCD1 から起動して, gmirror で RAID1 を構築.

FreeBSD 6.2 試行錯誤:gmirror で RAID を参考にして行った.

120GB の同期に 70分かかった.

以前に 4号機で RAID を構築したときは,ハードディスクのエラーではまったが, 今回は問題なく終了.

ハードディスクを 3号機に移植

3番,2番のディスクを 3号機のプライマリマスタ,セカンダリマスタにつなぐ. 電源を入れ,2台のハードディスクが認識され,FreeBSD 6.2 が立ち上がるのを確認.

その後の設定,インストール

ネットワークの設定が違うので /etc/rc.conf を書き換える.

hostname="kdo3.localhost"
ifconfig_rl0="inet 192.168.107.80 netmask 255.255.255.0"

ここで rl0 は, 3号機で使っている NIC GreenHouse GH-EL100/RT のデバイス名である.

reboot して,ifconfig でネットワークの確認をする.

いろいろインストールする前に,まず libiconv のインストールを行っておく. これはいろいろなアプリケーションが依存していて, あとでアップグレードするのはめんどうなのだ.

# cp libiconv-1.9.2.tar.gz /usr/ports/distfiles/
# cp libiconv-1.9.2-cp932.patch.gz /usr/ports/distfiles/
# cd /usr/ports/converters/libiconv
# make WITH_EXTRA_PATCHES=yes install clean

あとは FreeBSD 6.2 試行錯誤にしたがって, いろいろインストール,設定していく.

以下,インストールしたアプリケーション(など)と設定ファイルのメモ.

  1. bash (~/.bash_profile, ~/.bashrc)
  2. X, windowmaker (/etc/X11/xorg.conf, ~/.xinitrc, ~/.Xdefaults)
  3. sound (/boot/loader.conf)
  4. ppp (/boot/loader.conf, /etc/ppp/ppp.conf, /etc/group, /etc/resolv.conf)
  5. kterm, jless, lv, nkf, kcc (~/.Xdefaults, ~/.bash_profile, ~/.bashrc)
  6. Emacs, Anthy, Mew (~/.emacs)
  7. w3m (~/.w3m/bookmark.html)
  8. local network, inetd, ftp, sshd (/etc/hosts, /etc/hosts.allow, /etc/inetd.conf)
  9. uim (~/.uim, ~/.xinitrc)
  10. ImageMagick
  11. eb, eblook, lookup (~/.emacs)
  12. lftp
  13. win32-codecs, mplayer
  14. mpg123
  15. firefox
  16. ipa-ttfonts (/usr/X11R6/lib/X11/fonts/TrueType/fonts.dir)
  17. gimp
  18. xpaint
  19. tgif (/usr/X11R6/lib/X11/app-defaults/Tgif)
  20. gv
  21. TeX (/etc/X11/xorg.conf)
  22. psutils
  23. sudo (visudo)
  24. netcdf, GMT (~/.bash_profile, /etc/manpath.config)
  25. xtide (/usr/X11R6/share/xtide/harmonics.tcd)
  26. jman (~/.bashrc, ~/.xinitrc)

朝 6時にはじめた作業は,16時すぎに終わった.


[ KDOホームにもどる ]


(C) 2008 KDO