[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:49082] Re: i386 -> x86_64



早瀬です.

移行ガイドの存在は寡聞にして知りませんが, sarge のころに同様のことをしま
した.メモを取っていたわけではないので,記憶は曖昧です.


> 佐藤と申します。
> 
> i386の環境で現在etchを使っているのですが、この環境をx86_64環境に移行す
> ることを検討しています。
> 
> CPU種別が変更になります(VIA C3 -> Athlon X2?)が、i386としてはとりあえ
> ずカーネルを再構築をしておいてからHDDをつなぎかえればとりあえず動きそ
> うです。
> 
> 動く環境を確保した後に、システムをx86_64環境に移行させていきたいのです
> が、そのようなことは可能でしょうか。
> やはり入れ直しのほうが安全なのでしょうか。

安全かつ楽なのは入れ直しです.新しい HDD を調達してきてインストールした後
に,古いHDDをマウントして,必要なデータをコピーするのが良いです.

どうしても新規インストールをしたくない場合は,以下のような手順でなんとか
なるかもしれません.しかし,トラブルが起こったときに自力で解決できる自信
がない場合は,やめたほうが良いでしょう.

1. HDD を x86_64 な PC に接続して使用できるようにする.

2. x86_64 のカーネルを作ってインストールし,i386ユーザランド+x86_64カー
   ネルな状態を作る.他に自由になる amd64 環境を持っていない場合は,ク
   ロスコンパイルしてください.また,パッケージ管理できませんので,既存
   の i386 カーネルを上書きしないように注意してください

3. chroot 下に amd64 用のユーザランドをインストールする.
   以下の説明では,↓のようにした場合を仮定します.
   # debootstrap --arch amd64 etch /etch-amd64

4. 元の / と chroot 環境を入れ替える.
   (a) debootstrap でインストールした環境はそのままでは使えないため,
       /etc 以下の必要なファイル (passwd*,shadow*,group*,fstab など) 
       を i386 環境からコピーしたり,いくつかのパッケージを追加したり
       する必要がある.
   (b) (a) で作った環境が正しく動作するか確認する.
       kernel の引数に init=/bin/sh として init の替わりに sh を起動し,
       # exec chroot /etch-amd64
       # exec init
       とすれば確認できる……と思います.
   (c) シングルユーザモードで起動するなどして, i386 のユーザランドを
       どこかのディレクトリ (/etch-i386 等) に移動し, /etch-amd64 の
       ユーザランドを / に移動する. /bin/sh ではなく, sash を使うの
       が比較的安全だと思います.

以上です.
細かな作業は忘れてしまいましたので,臨機応変に何とかしてください.