パーティションのKVMゲストOS

パーティションのKVMゲストOS

LinuxとWindowsのデュアルブート構成があります。これで、デュアルブート設定を維持し、LinuxのKVM内でWindowsを実行することもできます。

次の構成は正常に機能します。 KVMにディスク全体(/dev/sda)を含めました。 Windowsを実行するために、そのパーティション()からWindowsを起動するgrub-mkresqueように構成されているgrub()のISOイメージを作成しました。/dev/sda2ただし、Windowsゲストはすべてのパーティションを含むディスク全体にアクセスできるため、このソリューションは満足のいくものではありません。

コメントの作成者@telcoMと@kenneth-b-jensenも指摘したように、これは両方のオペレーティングシステムの同時アクセス/インストールを防ぎ、損傷を防ぐための私の戦略の一部である必要があります。

必要な回避策は、Windowsパーティション(/dev/sda2)を含み、そこからWindowsを起動することです。パーティションが起動できないため、このパーティションだけではWindowsを起動できません。 KVMは明らかに独自のパーティションテーブルを使用して単一のパーティションをディスクにバインドするため、起動するイメージにそのgrubパーティションを見つけることはできません。

動作する構成を取得するには、構成やその他のアイデアを完了する必要があります。

  • VirtualBoxを使用すると、rawディスクアクセス用のイメージを作成し、パーティションテーブルを保持しながら必要なパーティションのみを指定できます。 IMHO KVMはより高いパフォーマンスを提供するため、これは避けるべきです。

  • 上記のように、KVMでパーティションテーブルを保存するソリューションを見つけました。

  • grubKVM内で正しいパーティションを有効にします。私の目標に応じて、Grubを整理する方法についての専門家の指示を受けたいと思います。

ベストアンサー1

同じWindowsディスクをハードウェアと仮想マシンの内部で交互に実行してみましたが、仮想マシンの内部に表示されているデバイスが実際のハードウェアと異なるため、常に失敗しました。

しかし、他のアイデア「」という用語を使用して、同じシステムでLinuxとWindowsを実行する方法を説明します。

WindowsはKVM仮想マシンで実行されますが、virt-viewerは仮想コンソールを制御できます。コンソールに切り替えると、世界は専用のWindowsコンピュータのように見えます。そして、LinuxとWindowsに独立してログインしてログアウトできます。 (そしてシビンWindowsにインストールされており、sshWindowsを切り替えることができます。 )

私が設定するために取ったおおよそのステップは次のとおりです。 Microsoftから.isoをダウンロードし、ライセンスを別途購入しました。既存の Windows ライセンスを再インストールすることもできます。

sudo vgcreate vg0 /dev/sd...
sudo lvcreate --size 128G --name win10 vg0
sudo virt-install --name Windows --connect qemu:///system --virt-type kvm --disk path=/dev/vg0/win10,format=raw --cdrom '<path>/Win10_1607_English_x64.iso' --network bridge=br0 --video qxl --chanel spicevm,target_type=virtio --graphics spice,listen=0.0.0.0,port=5900 --os-variant win10 --memorybacking nosharepages=true --memory 2048 --vcpus 1

br0仮想マシンを透過的に接続できるように、Linuxホストにブリッジデバイスを作成しました。しかし、それは別のトピックです。

このvirt-installコマンドは初めて自動的に実行され、virt-viewerWindows 10 セットアップ プログラムを起動します。表示される唯一のディスクは、virt-install私が作成してコマンドラインに入力した仮想ディスクです。次に、次のように実行します。

virsh --connect qemu:///system start Windows

これによりコンピュータが起動しますが、出力は表示されません。出力を表示するには、未使用の仮想コンソールに切り替え、exampleを押してCTRLALTF6このコマンドを入力します。virt-viewerウィンドウマネージャなしでXサーバー()から直接Xアプリケーションを起動することに注意してください。

この-kスイッチはvirt-viewerをオンにします。キオスクモデルこれは、実際に仮想マシンで実行されているという事実を効果的に隠します。

startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :6  -config CtrlAltBksp.conf -nolisten tcp -novtswitch

このCtrlAltBksp.confファイルはオプションです。を押してvirt-viewerを閉じることができますCTRLALTBackspace。これはxorg/etc/X11/またはホストの他の既知のディレクトリに配置する必要があります。ここにいる:

Section "ServerFlags"
        Option "DontZap" "false"
EndSection
Section "InputClass"
        Identifier "CTRL_ALT_BACKSPACE"
        MatchIsKeyboard "on"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

注:私のようにSPICEとQXLをインストールする必要はありませんが、インストールする場合はインストールすることをお勧めします。スパイスツール

おすすめ記事