FreeBSD i386 から amd64 へ ― 2007年06月02日 11時30分46秒
ディアルブートの環境でなくても、一時的に利用できるパーティションが一つ以上あれば、単体で i386 から amd64 に移行できるかも知れない。後で、実験したいと思う。
今回は、結局ディアルブートを利用した。ad3s2a から起動した環境で、amd64 用のバイナリを作る。
# make TARGET_ARCH=amd64 buildworld
# make TARGET_ARCH=amd64 buildkernel
i386 の環境から、そのままインストールしてみた。
# make installkernel TARGET_ARCH=amd64 KODIR=/boot/amd64 DESTDIR=/
クロスビルドだと、DESTIDR が設定されていないようだ。
何度か失敗した後に、結局もう一つの ad3s1a から i386 環境を起動して、ad3s2a の環境を /mnt/tmp 以下にマウントした後に
# make installworld TARGET_ARCH=amd64 DESTDIR=/mnt/tmp
で、インストールした。システムはそのまま起動したが、いくつかの ports から入れたアプリケーションは動かなかった。32-bit 互換は入っているが、恐らく今回試している 6.1 以前の古い 32-bit 互換のライブラリが無いからではないかと予想している。
i386 環境から直接 amd64 に移行できるかを幾つか試したが、以下の理由でまだ出来ていない。
-
i386 で動いているまま
make installworld TARGET_ARCH=amd64 DESTDIR=/
した。ライブラリをインストールしている途中に i386 版の物が無くなってしまうので、ldd が失敗する。 -
他にも、
make installworld
の後に、カーネルだけ、amd64 で起動しようとしてみたが、sh が i386 版で、amd64 の 32-bit 互換はまだ入っていなかったので、シングルユーザモードにも落とせなかった。 -
最後に、
make install32
をやって、32-bit 互換をいれたが、結局ライブラリは amd64 からアクセスできない i386 型なので、/boot/amd64 からのブートに失敗した。
次回。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2007/06/02/1550018/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。