二つのスライスを利用した FreeBSD i386 から amd64 への移行2008年09月19日 05時36分59秒

AND Turion64 x2 を使っている。一年ぐらいは快適に使っていたのだが、最近引っかかる様な動作をすることも出てきた。どうすれば速くなるのだろうと考えているとふと一つの案が思い付いた。Turion64 だ。64 なのだから、64 bit に移行すれば良いと。

amd64 として使うと、使えるレジスタの数が倍になるため、同じプログラムでもコンパイルし直すだけで倍になると聞いた事がある。

以前に 64 bit を試したときは、CURRENT や ports を頻繁に更新していたため、i386 と amd64 の同期を取るなどの管理が面倒になって止めてしまった。最近は、時間が取れないのでいたって平穏な環境に浸っている。

インストール CD を作るのも面倒なので、FreeBSD に 2 スライス割り当てているので、その一つを amd64 に変えることにした。以前は、一スライスのみで i386 から amd64 に移行もしたが、手順はほぼ似ている。再起動と、一時的なシステムのインストールが無いので、大変楽になる。

手順としては、TARGET_ARCH を指定して、全てをコンパイルする。その後、インストール先スライスからマウントした場所に DESTDIR も共に用いてインストールするだけで終わる。

ソースを取得してある。また、インストール先の ad4s3a と ad4s3d は特に newfs する必要も無いので、そのままインストールした。


# cd /usr/src
# make TARGET_ARCH=amd64 build{world,kernel}
# mount /dev/ad4s3a /mnt/local/
# tar cf - /etc | tar xvf - -C /mnt/local
# vi /mnt/local/etc/fstab
# mount /dev/ad4s3d /mnt/local/usr
# make TARGET_ARCH=amd64 DESTDIR=/mnt/local install{kernel,world}

とても簡単手順だ。なお、vi で、ルートファイルシステム等を書き換える。ここで間違うと悲惨な目にあうので注意が必要だ。

この後、reboot をして、ブートローダの時に F3 を押して、第三スライスから起動すると、amd64 になっている。手元では、F4 の第四スライスがもう一つの FreeBSD で、こちらで起動すると i386 で上がってくる。

次回