Linux KVM-virtualization上にWindows Server 2012 R2をインストールしようとしています。
インストールプロセスが停止し、続行するにはドライバーが必要です。
Fedoraのvirtioドライバーを試していますが、動作しません。インストールプロセスでは、インストールするストレージデバイスが表示されません。
ストレージにさまざまなオプションを試しています:SATA、IDE、Virtio、Virtio SCSI。
Diskpart(リストディスク)にディスクが表示されますが、インストーラーはそれを使用できません。
Virtioドライバーの異なるバージョンを使用しました:virtio-win-0.1.105.iso、virtio-win-0.1.96.iso、virtio-win-0.1.101.isoは同じ結果でした。
私のインストールディスクは:SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_Spanish_-4_MLF_X19-82897.ISO
これは、現在インストール時にvirtioドライバーを使用してWindowsをインストールする方法です。
正規のWindowsインストールISOイメージを使用して、新しいVMを作成します。Windowsの海賊版コピーを使用した場合、またはISOイメージのダウンロードが不完全であるか破損している場合、何でも動作することを保証できません。
インストール前にマシン構成をカスタマイズすることを選択します。
IDEハードドライブを選択し、そのタイプをVirtIOに変更します。適用をクリックします。
IDE CDROMを選択し、タイプをSATAに変更します。適用をクリックします。
[ハードウェアの追加]をクリックし、virtio-win.isoイメージを使用して2つ目のSATA CDROMドライブを追加します。
(オプション)また、仮想NICをVirtIOに変更します。Windowsのインストール後にそのドライバーをインストールできるため、後で煩わしい「イーサネット2」が発生するのを防ぐことができます。
「インストールの開始」をクリックして、Windowsのインストールを開始します。
セットアップがWindowsをインストールする場所を尋ねてきたら、[ドライバのロード]をクリックします。
次のページ。 [参照]をクリックして、\viostor\2k12R2\AMD64
2番目のCDドライブのフォルダ、virtio-win-0.1.xx
。
Red Hat VirtIO SCSIコントローラが表示されます。次へをクリックします。
これで仮想ディスクが正常に検出されました。楽しい!
インストールが完了したら、virtio-win CDを使用して、NIC、バルーンドライバーなど、残りのハードウェアのドライバーをインストールできます。デバイスマネージャーを開いて、ドライバーをロードする必要があるデバイスを確認します。ドライバーのインストールが完了したら、2番目の仮想CDROMドライブを仮想マシンから削除できます。
最後に、このイメージをsysprepする場合は、ゴールデンマスターを作成するには、 CtrlShiftF3 ここから直接監査モードに移動します。
(そして、ビデオドライバーをアップグレードするには、 (私が書いた別の答え を参照)。
私が抱えていた主な問題は、ドライバーを入手することでした。私はここからダウンロードしました https://fedoraproject.org/wiki/Windows_Virtio_Drivers そして、KVMでwin 2012 r2を動作させることに成功しました
私が使用したプロセス全体を示すビデオをアップしました https://youtu.be/9SPCa4TKues
Bus = 'virtio'を使用して問題を検出し、Fedoraドライバーイメージからvirtioドライバーをインストールしました。私たちのホストスペック(ショートバージョン):
この問題のため、カーネルとqemu-kvmバージョンを更新したことに注意してください。これは問題の解決策ではありませんでした!
お客様の仕様:
ここで興味深い部分があります(ゲストを管理するためにvirshを使用しています):これは、古いディスク定義の例です。
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/kvm/pathToWhatever/MYGUEST.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
かなり基本的な特別なものは何もないことに注意してください。bus= 'virtio'は、私が見つけたすべてのチュートリアルやフォーラムで基本的に提案されていました。
その後、Windows Serverをインストールします...これまでのところ問題はありません。次に、fedoraprojectイメージからvirtioドライバーをインストールしました。大きなDBインポート/更新などを実行するため、現在はI/Oが重いです。巨大なデータベーステーブルに対してクエリを実行しましたが、数分後に起動しましたが、ゲストがフリーズしました。これを数時間/日の間デバッグしましたが、ログには何も見つかりませんでした。
Virtualboxを使用してこれを複製することも試みましたが、そこでは問題なく動作しました。
ちょうど今日、bus = 'ide'に切り替えてSQLクエリ(インポート)を再び開始すると、まったく問題なく動作することがわかりました。高いI/Oはまったく問題ではありません。
今、私はvirtioドライバーが単に壊れているか、互換性がないと思います。それに関しては私は専門家ではありませんが、一時的な解決策はIDEに切り替えることでした。私は現在、bus = 'scsi'を使用してテストしています。次に示すように、コントローラータイプの定義でvirtio-scsiをモデルとして定義します。
<controller type='scsi' model='virtio-scsi' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
適切にテストしたら、結果を投稿します。