xenカーネルを非xenカーネルに置き換える

xenカーネルを非xenカーネルに置き換える

Xen 形式 (XVA) の仮想アプライアンスがあり、それを別のハイパーバイザー (MS Hyper-V) で実行したいと考えています。これまでに何をしましたか:

XenConvert を使用して XVA を OVF に変換し、vhd ファイルを作成しました。新しい VM を作成し、それに vhd をアタッチしました。

VM が起動に失敗しました。これは、xen dom0 カーネルを実行しているために発生するものだと思います。エラーは次のとおりです。

エラー 13: 無効またはサポートされていない実行形式です

xen カーネルを非 xen カーネルに置き換える必要があると思います。コンパイル済みのカーネルをダウンロードし (どこで入手できますか?)、ライブ CD で起動し、それをディスクに配置して grub.conf を変更するだけでよいのでしょうか?

編集:

Doug O'Neal の回答を試したところ、lvm2 (apt-get install lvm2) をインストールし、VolGroup00 をマウントする必要がありました。その後、yum を使用してカーネルをインストールし、ブート パーティションにコピーしました。grub.conf を編集してブートを試みました。カーネルのブート後にシステムがハングします。何か提案はありますか?

ブーツにぶら下がっている

編集2:

grub をコンソールとして tty0 を使用するように変更しました (以前は xvc0)。現在はもう少し進んでおり、まずはそれをトラブルシューティングします。編集 3:

@Nils の回答に従って、XEN 広告への参照をいくつか変更しました。カーネルを置き換える必要はまだあり、これが現在の問題だと思います。yum install kernel を実行すると、次のエラーが発生します。

/sys/block を開くときにエラーが発生しました: そのようなファイルまたはディレクトリはありません /sys/block を開くときにエラーが発生しました: そのようなファイルまたはディレクトリはありません 警告: カーネル 2.6.18-348.18.1.el5 のモジュール xenblk が見つかりません

CentOS バグトラッカーでこのエラーを見つけました:http://bugs.centos.org/view.php?id=2083 そこに提案されているように、私は試しました: mkinitrd -v --with=xenblk --omit-scsi-modules --omit-raid-modules /boot/initrd-2.6.18-348.18.1.el5.img 2.6.18-348.18.1.el5 しかし、次のエラーで失敗します:

カーネル 2.6.18-348.18.1.el5 のモジュール xenblk が見つからないため、中止します

答え1

ここでの主な問題は XEN カーネルではありません。Hyper-V ディスク モジュールを initrd に組み込む必要があります。

その後、xvda (または同様のもの) へのすべての参照を削除し、「古い」DomU のブートローダ、Grub、および /etc/fstab 内で sda (または同様のもの) に置き換える必要があります。

2.6.32 より新しいカーネルでは、Linux メインストリームにこれらのモジュールが含まれているため、これは簡単です。

その前に、これらのモジュールをカーネル用にコンパイルする必要があります。

こここのトピックに関する Microsoft Technet の良い出発点です。

答え2

レスキュー CD から起動して、ローカル ディスクをマウントしてみてください。マウントされたファイル システムに chroot して、 を実行しますyum install kernel。これで問題が解決する可能性があります。

関連情報