関連する質問に対するこの回答の指示に従いました: 物理ディスクをKVM_仮想マシンに追加
VMの.xmlファイル内の結果のコードは次のとおりです。
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/disk/by-partuuid/d8b63353-34n6-6587-ac07-810dmf36d544'/>
<target dev='vdb' bus='virtio'/>
<boot order='2'/>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</disk>
/dev/disk/by-partuuid/d8b63353-34n6-6587-ac07-810dmf36d544
の代わりに<source>
要素に/dev/sda4
を使用したことに注意してください。
私を悩ませているのは、私のユースケースはdiskの代わりにpartitionをQEMUに渡すことです。 Windows 10をインストールすると、セットアップインストーラーがストレージを認識しないため、 FedoraProject からviostor
ドライバーをロードする必要がありました。
Windowsのインストールは問題なく行われ、パフォーマンスは驚くべきものでしたが、VMがオフになっていると、ホストシステムはパーティションフォーマットを認識しません。
viostor
ドライバーがロードされたWindowsインストーラーが ベアディスク上のWindowsで通常必要な追加のパーティション を作成したのは興味深いことです。言い換えれば、それはおそらくパーティションの内部にパーティションを作成しました。これは不可能であるべきだ、またはそう思った。
/dev/sda4
はホストに存在しますが、NTFSファイルシステム(実際には予期されていません)、LVM、LDM( ldmtool でテスト済み)として認識されません。
VMは、 Q35チップセット で EFIモード で正しく起動しています。
質問:virt-managerにパーティションを追加する手順は正しいですか、それともディスクではなくパーティションに対してのみ行うべきですか?また、どのパーティションタイプまたはフォーマットになったのですか?
解決策は、/dev/sda
または/dev/disk/by-id/
の同等物のようなブロックデバイス全体を<source dev=''>
設定に渡すようです。
これにより、Windowsセットアップは、ホストのルートパーティションを含む既存のパーティションを確認できます。
次の条件が満たされる限り、競合は発生しません。
すでにホストにマウントされているゲストのパーティションをマウント/変更しようとしないでください。そして
VMがパワーオンされている間、ゲストが現在使用しているパーティションをホストからマウント/変更しません。
最初の点に関しては、VMを起動する前にホストからESP(EFIシステムパーティション)をアンマウントする必要があります。私はそのためのスクリプトを最初に書いてから、QEMUオートメーションフックの形で より良い解決策 を思いつきました。 https://gitlab.com/ranolfi/rvirtesp で利用できるようにしています。
これの素晴らしいところは、デュアルブートのように、マザーボードのブートメニューで新しいエントリを選択することで、仮想化OSをネイティブにブートできることです。
これが「サポートされている」かどうかは正確にはわかりません。しかし、ほぼ1年間、問題なく使用しています。