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 で上がってくる。
次回。
セコメントをする