web-dev-qa-db-ja.com

KVMのWindows 10:ブートディスクをVirtioに変更

IDEディスクを使用してWindows 10仮想マシンをインストールしましたが、今度はVirtioドライバを使用するようにディスクを変更したいと思います。

Windowsの他のバージョンでは、この質問のアプローチで十分であるようです - IDE VMをvirtio VMに移行するにはどうすればいいですか?

しかしWindows 10では、これはINACCESSIBLE_BOOT_DEVICEの問題を引き起こします。

推奨される方法は、最初からVirtioデバイスを使用し、プロンプトが表示されたら適切なvirtioドライバーをインストールすることです。残念ながら私はKVMのCDを交換することに関していくつかの別々の問題を抱えていました(私は2つのCDROMデバイスを動かすことができませんでした)。

再インストールせずにこの問題を解決する方法はありますか?

ここで同様の問題 - - https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/#comment-36090

23
Graeme

すべての答えは正しいですが、virtioドライバーをインストールした後に、いくつか追加のステップを実行する必要があるかもしれません。私が従った手順は次のとおりです。

  1. 昇格したコマンドプロンプトを開き、次のように入力してセーフモードで起動するようにVMを設定します。

    bcdedit/set {current} safeboot minimal

  2. VMをシャットダウンし、起動デバイスの種類をvirtioに変更します。

  3. vMを起動します。セーフモードで起動します。

    注:セーフモードでは、virtioドライバーを含むすべてのブートスタートドライバーが有効になりロードされます。これを使用するためのミニポートがインストールされているので、カーネルは起動時にロードされるドライバの一部にし、再び無効にすることはしません。

  4. 起動したVMでbcdeditの設定をリセットし、次のように入力してマシンを通常モードで起動できるようにします(昇格したコマンドでもう一度プロンプト)。

    bcdedit/deletevalue {current} safeboot

  5. 完了しました。

14
llegolas

かなり 簡単な答えが提供されています - そして、他の選択肢のヒントと共に、多くの場合うまくいくでしょう。 (私のように)IDEに切り替えられず、VirtIOを使用することを強制されない場合は、次の代替アプローチが機能する可能性があります。

  1. Windows 10 DVD/CD ISOとvirtioドライバISOの両方をVMに追加してください。
  2. Windows 10 DVD/CDを起動して、修復モードから起動するオプションを選択します。
  3. CLIを介してドライバをロードします。 drvload e:\viostor\w10\AMD64\viostor.inf
    • 私の場合e:は、virtioのインストールISOが割り当てられた場所です。
    • ドライバをロードした後、f:はWindowsインストールがマウントされるようになった場所でした。
  4. DISMコマンドを使用して、ストレージコントローラドライバを挿入します。
    • 例えば。 dism /image:f:\ /add-driver /driver:e:\viostor\w10\AMD64\viostor.inf
    • 上記のように、環境に応じてドライブ文字の割り当てを変更してください。

特別なウィンドウにCD /イメージをブートさせたり、実際のウィンドウにイメージを 'パッチ'でインストールする手間を省く必要がなくなります。

このニッチなケースでは、起動時の修復を回避することをお勧めします(これは失敗しました)。それはそれをロードした後にvistor.infをインクルードする方法を知らないようで、あなたがそれを試みるならば、すべてを復元または再インストールするためにWindows 10のDVD熱望を避けるように注意してください...

DISMアプローチの功績: dismを使用してドライバを追加する

10
JPvRiel

一般的に従うべき手順は次のとおりです。

  1. VMにVirtIOドライバをインストールする
  2. VirtIOを使用するようにVMのシステムディスクを設定します。
  3. VMが起動しない場合は、スタートアップ修復を実行するか、修復インストールを実行します。

手続き の詳細は:

  1. 起動ディスクをIDEに戻します。
  2. ウィンドウVMがシャットダウンされていることを確認してください。
  3. VirtIOドライバのISOをこちらからダウンロードしてください。
  4. VM用のCDドライブにマウントします。
  5. VirtIOタイプのストレージデバイスを追加します。ドライバのインストールに使用しているので、サイズの割り当ては関係ありません。
  6. Windows VMを起動します。ドライバをインストールしようとします。そうでない場合は、[デバイスマネージャ]を開くと、SCSIデバイスが感嘆符のアイコンとともに表示されます。ドライバを更新して、マウントされたISOの適切なディレクトリを指すように選択できます。インストールしたら、再起動せずにマシンをシャットダウンします。
  7. Windowsのvirt-manager設定で、ストレージタイプをIDEからVirtIOに変更します。
  8. 以前に作成した記憶装置を削除できます。もう必要ありません。
  9. Windowsを起動すると、起動してSCSIドライバをインストールするはずです。再起動したら再起動する必要があります。
  10. VMが起動せず、ドライバがインストールされている場合は、次のようにします。

    1. スタートアップ修復 。Windowsの起動を妨げる可能性がある特定のシステム問題を修正できます。
    2. 最後の解決策: 修復インストール しながらWindows 10 ISOから起動する。これにより、すべてのアプリケーションとユーザー設定が保持され、Windowsと起動が更新されます。最近のWindows 10 ISOを使用してください。

残念ながら最後の手順が必要な場合は、WindowsブートCDがVirtIOディスクを認識できないために発生する可能性があるもう1つの問題は、これらのドライバがMicrosoftによって含まれていないためです。この場合、これらのドライバを含むカスタムブートCD/USBを作成する必要がありますが、最新のもの(現在1511)を入手して、インストールと同じレベルのWindows ISOから起動するようにしてください。

Windowsでドライバをスリップストリーム化する方法についてのチュートリアルがいくつかあります。

10
harrymc

harrymcからの答えは私のためにうまく働きます。

私が従った次のステップ:

  1. Windowsにvirtioドライバーをインストールする
  2. 追加の「ダミー」virtioディスクを追加する
  3. ブートディスクをvirtioに切り替えます
  4. リブート
  5. 追加の「ダミー」virtioディスクを削除します
  6. ...
4
sdhd

残念ながら、ドライバを完全にインストールしたままで「アクセスできない起動デバイス」となる可能性があります。その理由は少し衝撃的です(私が見つけます):Win 10のインストールは最初にインストールされたときに必要とされたドライバを「記憶」し、デフォルトでは起動時に他のストレージドライバをロードしません。これは「著作権侵害」とされているようです。異なるハードウェアで「同じ」インストールを実行するのは困難です。この "feature" に関するすばらしい文書がgentooフォーラムのこの投稿にあります 。本質は次のとおりです。

ブート禁止ロードの対象となるドライバは、次のように決定できます。レジストリキーComputer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Servicesには、インストールに認識されるすべてのドライバに対して1つのサブキーがあります。このサブキーの名前は単なるドライバの名前です。各ドライバサブキー内に、そのドライバが起動時にロードされないようにする場合は、サブキー "STARTOVERRIDE"があります。特に、STARTOVERRIDEサブキー内には、名前が "0"のパラメータがあります。このパラメータの値が "3"の場合、起動時にロードされません。代わりにこの値を0に設定すると、動作が「上書き」されます。

私は自分でComputer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Servicesに行き、 "STARTOVERRIDE"を検索します。その下に "0"という名前の値が "3"である場合、それを見つけるたびに、 "0"に変更します。これはやり過ぎであるように思われます、あなたはロードする必要があるドライブを変える必要があるだけです。私の場合、それらのいくつかがあります、そして、私はどれを覚えていません、それで私はただその「サービス」セクションの中で「F3検索」をするだけです。

現在の署名付きのvirtioストレージには必要ない最後のヒントですが、まだ署名されていないもっと実験的なドライバを使用したい場合は、これを読んでいる他の人に役立つ可能性があります。トリック、私はまた高度なオプション画面に起動し、F7キー( "ドライバの署名の検証を無効にする")を選択する必要がありました。迷惑なことに、マシンがBCDを読み取って署名を検証する必要がないことを確認する前にドライバをロードする必要があるため、ドライバの検証を無効にするためにbcdフラグを設定するだけでは不十分でした。

結局のところ、Microsoftの最も輝く時間ではない。合法的なユーザーに人工的な人工のブルースクリーンを提供するのではなく、ユーザーがSATAディスクをNVMeディスクに交換して「正しく動作する」ようにするよりも、ユーザーを憎む必要があります。

1
Scott Petrack