まずは結果のご報告です。
-----
1.etchの環境で動いていた仮想サーバのイメージは、そのまま、lennyで動いているホスト機へ持っていって大丈夫です。ちゃんと動きます。
ただし、lennyで動作しているホスト機の/bootに、etchの仮想サーバ用のkernelをおいておく必要があります。
もちろん、/etc/xen/においてあるcfgファイルを変更すれば、/bootじゃなくても大丈夫かもしれません。
ターゲットとなる仮想サーバがetchでの最終upgradeされていれば
kernel = '/boot/vmlinuz-2.6.18-6-xen-686'
ramdisk = '/boot/initrd.img-2.6.18-6-xen-686'
となっているはずです。
ですので、lennyで動いているホスト機の/bootへ上記二つのファイルをコピーしてあげてください。
そうすれば、何事も無かったかのようにlenny上でetchの仮想サーバーが起動します。
-----
2.それではetchがインストールされている仮想サーバをlennyへアップグレードします。
これは、残念ながら単にアップグレードしただけでは動きません。
以下にアップグレード手順を書いてみますが、私がいろいろ試した結果なので正式な手順とは異なるかもしれません。
/etc/apt/sorce.lstを更新して、lenny用にします。
deb http://cdn.debian.or.jp/debian/ lenny main contrib non-free |
次に、lennyへアップグレードします。
#aptitude update
#aptitude install aptitude
#aptitude upgrade
#aptitude dist-upgrade
次に、localesとudevが入っているか確認してください。
※特にudevが入っていないと、sshでつながりません。
#dpkg -l | grep locales
#dpkg -l | grep udev
インストールするには、
#aptitude install locales udev
既に入っている場合には、
#dpkg-reconfigure locales で、キャラクターコードを設定してください。 昔と違い、今ならUTF-8でしょうね…
最後にkernelを新しくしますが、Xenの仮想サーバでは/boot直下には何もありません。
Domain0であるホスト機よりkernelを持ってきます。
/etc/xen/にあるcfgファイルを編集します。
kernel = '/boot/vmlinuz-2.6.18-6-xen-686'
ramdisk = '/boot/initrd.img-2.6.18-6-xen-686'
となっている部分を
kernel = '/boot/vmlinuz-2.6.26-1-xen-686'
ramdisk = '/boot/initrd.img-2.6.26-1-xen-686'
へ変更してください。
次に、kernelが読むモジュールファイルがあるので、これをゲスト機(例ではrickdom)へ転送します。
scp -r /lib/modules/2.6.26-1-xen-686 rickdom:/lib/modules
あとはおまじないを一つ!
extra = 'xencons=tty' これを、cfgファイルに書いておくと一発で起動するはずです。
私が設定したcfgファイルを参考に書いておきます。
# |
以上、準備が出来たら気合を入れて仮想サーバを再起動して下さい。
日ごろの行いがよければ、ちゃんと立ち上がるはずです。
起動画面を見ていると、unable set system clock … となにやらワーニングが出ます。
ちょっと調べてみたのですが、なにやらバグのようですので、そのうち治ると思います(謎)。
※すくなくてもHWCLOCKPARS="--directisa"では治りませんでした( TДT)