起動中または停止中の状態で固まってしまったHyper-V仮想マシンを無効にする方法

Hyper-Vは、Windowsのネイティブハイパーバイザーであることから広く普及している、よく知られたハードウェア仮想化プラットフォームです。仮想化には多くの利点があり、仮想マシンの実行は便利です。しかし、エラーが発生することもあります。仮想マシンの電源を入れたり切ったりしようとした際に、"Hyper-V の状態変更に失敗しました"というエラーが表示され、仮想マシンが応答しなくなる場合があります。この場合、仮想マシンの"開始"、"停止"、"リセット"ボタンは機能しません。

この問題を解決するまでは、仮想マシンの設定を編集したり、仮想マシンを使用したりすることはできません。すでにHyper-Vを無効にする方法を探している場合は、 Hyper-V をアンインストールする方法……焦らないでください。このブログ記事では、"Hyper-V の状態変更に失敗しました"というエラーが発生する原因と、その解決方法について解説します。

Hyper-V バックアップ用 NAKIVO

Hyper-V バックアップ用 NAKIVO

Hyper-V向けのエージェントレスかつアプリケーション認識型のバックアップ。ランサムウェア対策、バックアップからのVM即時起動、その他の仮想/物理プラットフォームへの対応など。

エラーの説明

通常、グラフィカルユーザーインターフェイスには、起動、停止、リセットのボタンは表示されません。これらのボタンをクリックしようとすると、エラーメッセージが表示されます。Hyper-V で仮想マシンを起動または停止しようとした際に表示される"Hyper-V VM が応答しなくなりました"というエラーメッセージの全文は、以下の通りです。

仮想マシンの状態を変更しようとした際、アプリケーションでエラーが発生しました。

VM名 状態の変更に失敗しました。

オブジェクトが現在の状態にある間は、この操作を実行できません。

その "Hyper-V の状態変更に失敗しました" メッセージには、次のフレーズが含まれている場合もあります:

ステータスを変更することはできません。

仮想マシンの起動/停止エラーの一般的な原因としては、ストレージの障害、ネットワーク設定の不備、ルーティングおよびリモートアクセスの設定、仮想マシンの電源オプション、および仮想マシンファイルへのアクセス権限不足などが挙げられます。

問題のあるVMのプロセスを終了する

VMの起動/停止エラーが発生した場合、従来のように仮想マシンワーカープロセスを強制終了させるだけでは、VMを正常に停止させることはできません(vmwp.exe)、これはHyper-Vの重要なサービス/プロセスの一つです。 Windows では vmwp.exe プロセスの複数のインスタンスが実行されており、各インスタンスは対応する VM に関連付けられているため、問題のある VM のグローバル一意識別子 (GUID) を把握しておく必要があります。必要な vmwp.exe を推測して各インスタンスを強制終了しようとすると、その都度、不明な VM を終了させてしまう可能性があり、正しい VM を見つける前にほぼすべての VM を終了させてしまう結果になりかねません。

方法 1:標準のGUIツールを使用する

Windows および Hyper-V のグラフィカルユーザーインターフェイス(GUI)を使用して、必要な vmwp.exe このプロセスを処理し、終了する。 Hyper-V マネージャー Windows Hyper-V 環境における仮想マシン管理用の GUI ツールです。

Hyper-V マネージャーで仮想マシンの GUID を確認します。Hyper-V マネージャーで Hyper-V ホストの名前を右クリックし、コンテキストメニューから Hyper-V Settings.

Opening Hyper-V settings for virtual machine management

その Hyper-V の設定 ウィンドウで、左ペインの [仮想マシン] をクリックし、Hyper-V ホスト上で VM ファイルがデフォルトで保存されているパスを確認します。この例では、そのパスは E:VM。

Checking the default folder to store Hyper-V virtual machines

VMファイルが保存されている場所がわかったら、Windows エクスプローラーでそのフォルダーを開きます。フリーズしたVMのファイルがあるサブフォルダーを探してください。私の場合、VM名は "Ubuntu Hyper-V". VMフォルダを開くと、数字と文字で構成された長い名前を持つサブフォルダとファイルが表示されます。これが、VMを識別するために必要なVM GUIDです。 vmwp.exe プロセスを強制終了させ、VMを停止させます。この例では、VMのGUIDは 3C555937-A999-4542-B77E-FD69488B8579.

Hyper-V failed to change state - checking the VM GUID to fix the error

Windows や Hyper-V のグラフィカルユーザーインターフェイスで VM GUID を検出できない場合は、Process Explorer または PowerShell を使用できます(以下のセクションを参照)。

ID を確認したら、プロセスを終了できます。 vmwp.exe 問題のあるHyper-V VMに関連するタスク。

ホストOSでWindowsタスクマネージャーを開きます。クリックします Start > Run または、[押す] Win+R、入力 taskmgr そしてクリック Enter.

探す vmwp.exe 必要なGUIDを含むプロセスを ユーザー名 列。該当する項目を右クリックして vmwp.exe 処理を行い、コンテキストメニューから選択します End task VMの電源を切り、VMを正しい停止状態にします。

Turn off Hyper-V Windows services and restart them to fix the error

注: たとえば、列ヘッダーを右クリックすると、 ユーザー名、そしてクリック Select Columns. を選択してください Command line そして Description のチェックボックス 列を選択 ウィンドウを表示し、次にクリックします OKその後、各VMのGUIDを確認できます vmwp.exe ~におけるプロセス コマンドライン タスクマネージャーの列。

Ending the vmwp exe service in Windows Task Manager

方法 2: Process Explorer を使用する

必要なインスタンスを特定するには、 vmwp.exe Microsoftが提供する無料ツール"Process Explorer"を使用して、問題のあるVMに関連するプロセスを確認します。 ダウンロード Process Explorerには、MicrosoftのWebサイトに掲載されている標準のタスクマネージャーには含まれていない高度なオプションが用意されています。Process Explorerのファイルを任意のフォルダーに解凍してください。

Hyper-V マネージャーを開き、問題が発生している仮想マシンの設定を開いて、"仮想ハードディスク"オプションを選択します。仮想ハードディスクファイルのフルパスをコピーします。今回のケースでは、このパスは次のようになります:

"E:VMsUbuntu Hyper-V仮想ハードディスクUbuntu Hyper-V.vhdx"

Checking the location of VM files

適切な実行ファイルを実行して、Process Explorer を起動します(procexp64.exe (当方の環境の場合)。

双眼鏡のアイコンをクリックし、動作が停止したVMの仮想ディスクファイルへのパスを ハンドルまたはDLLのサブストリング フィールドを選択し、次にクリックします Search.

のインスタンス vmwp.exe 必要なものが見つかりました。クリック vmwp.exe 検索ウィンドウで見つかったものと、その vmwp.exe Process Explorerでは、そのプロセスが自動的に選択されます。

Search for the needed instance of the vmwp exe service in Process Explorer

選択した項目を右クリックして vmwp.exe 処理を行い、コンテキストメニューでクリックします Kill Process.

Killing the vmwp exe process in Process Explorer

方法 3: PowerShell を使用して VM プロセスを強制終了する

PowerShellを開いて、エラーを修正しましょう。もし Stop-VM -Force コマンドを実行すると、VMがフリーズした後にこのコマンドではVMを停止できないことがわかります。VMの一意のIDを特定するには、次のコマンドを使用してください:

Get-VM "VM-name" | fl *

Checking the VMID (VM GUID) in PowerShell

より洗練された方法として、以下のコマンドを使ってIDを確認することができます:

$VMGUID = (Get-VM "Ubuntu Hyper-V").ID

Get-VM | Select Name, Id

今回のケースでは、のGUIDを知る必要があります。 "Ubuntu Hyper-V" VM。このVMのGUIDは、 $VMGUID このPowerShellセッションのメモリ内の変数。

Checking the VM GUID in PowerShell

以下のコマンドを実行して、プロセスを終了し、VMを停止してください:

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})

Stop-Process ($VMWMProc.ProcessId) -Force

Ending the vmwp exe process that makes the VM stuck

これで問題のあったVMプロセスは終了し、VMも停止しました。VMの設定を変更して、VMを起動してみてください。

"Hyper-V の状態変更に失敗しました"エラーを解決するその他の方法

Hyper-V で応答しなくなった仮想マシンのプロセスを強制終了したにもかかわらず、仮想マシンが起動しない場合があります。この場合、仮想マシンを起動しようとすると、次のような Hyper-V エラーが表示されることがあります:

仮想マシンへの接続:

状態の変更に失敗しました。

以下に、この現象のその他の考えられる原因を挙げます。 "Hyper-V の状態変更に失敗しました" エラー、その解決に役立つ方法、およびこのエラーが発生した後にHyper-V仮想マシンを完全に停止させる方法。

DVDドライブの設定

VMの設定を開き、VMのDVDオプションを確認してください。VMがISOイメージにアクセスできない場合、このエラーが発生する可能性があります。ISOファイルが存在し、パスが正しく指定されていることを確認してください。また、仮想マシンでそのドライブを使用していない場合は、仮想DVDドライブを無効にすることもできます。

保存エラー

VMストレージに十分なディスク容量があるか確認してください。VMファイルを保存するためのディスク容量が不足している場合、ストレージの障害によりVMがフリーズし、 "Hyper-V の状態変更に失敗しました" エラー。ストレージ容量不足が原因でVMに障害が発生した場合は、VM内のディスクエラーを修正するために、以下のコマンドを実行する必要がある場合があります:

sfc /scannow
dism /online /cleanup-image /restorehealth

VMを通常通り起動できない場合や、VMが無限ループに陥っている場合は、Windowsのインストール用ISOイメージを仮想DVDドライブに挿入し、このISOイメージからVMを起動します(仮想BIOS/UEFIを開き、最初の起動デバイスとしてDVD-ROMを選択します)。次に、 修復モード、CMDを起動し、次のコマンドを実行します:

chkdsk /f /r /x c:

ディスクチェックが完了し、ディスクのエラーが修正されたら、VMを再起動し、仮想ハードディスクドライブから起動します(これでVMが起動するはずです)。その後、ゲストOS内で前述のコマンドを実行してください:

sfc /scannow
dism /online /cleanup-image /restorehealth

また、Hyper-V ホスト上で Hyper-V ストレージに使用されている物理ディスクを確認する必要がある場合もあります。

ネットワーク設定のエラー

VMの仮想ネットワークアダプタの設定を確認してください。もし ネットワークアダプタ – 設定エラー 少なくとも1つのネットワークアダプタにステータスが表示されている場合、Hyper-VでVMの起動/停止に問題が発生している可能性があります。 VMネットワークアダプタ 既存のシステムに接続する必要があります 仮想スイッチ 正常な動作のため。ネットワーク設定が変更された場合や破損した場合、このエラーが表示されることがあります。

Network failure or storage failure can be a reason of errors for Hyper-V VMs

ログ内の問題の検出

Windows イベント ログと Hyper-V に関連するエラーを確認してください。実行してください compmgmt.msc、その後、次のページへ Event Viewer > Applications and Services Logs > Microsoft > Windows > Hyper-V-Worker. ログにエラーメッセージが表示された場合、そのエラーの説明から問題の原因を特定できることがあります。

ウイルス対策ソフトによるアクセスのブロック

ウイルス対策ソフトの設定を確認してください。ウイルス対策ソフトがHyper-Vの仮想マシンファイルへのアクセスをブロックしないようにしてください。ウイルス対策ソフトが仮想マシンファイルへのアクセスをブロックしている場合は、仮想マシンファイルが保存されているフォルダーを、ウイルス対策ソフトの設定で"除外対象"に追加してください。Hyper-Vは、仮想マシンのフォルダーおよびファイルに対して完全なアクセス権を持っている必要があります。

VMの電源オプション

ゲストOSの設定で電源オプションを確認してください。"スリープ"モードと"休止状態"は無効にしておく必要があります。Windowsゲストでは、[設定]を開き、 Control Panel、その後、次のページへ Power Options、そして、 “Put the computer to sleep” オプションは Never. ゲストOSとしてUbuntu Linuxがインストールされている場合は、次のコマンドを使用してスリープモードを無効にしてください:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

VMMSの確認

vmms.exe これはHyper-Vで使用されるプロセスです。Hyper-Vの重要なサービスの一つであるHyper-V仮想管理サービス(VMMS)が正常に実行されていることを確認してください。また、VMMSが応答しなくなったり、起動中または停止中の状態(ステータス)になっていないことを確認してください。サービスのステータスは ランニング.

The Hyper-V Virtual Machine Management service is running

VMMSサービスは、以下のものと関連しています。 vmms.exe プロセス。

The vmms.exe process is related to the Virtual Machine Management service in Hyper-V

RRAS を無効にする

ルーティングおよびリモートアクセスサービス(RRAS)の設定ミスは、ネットワーク設定の不備によりHyper-V仮想マシンが応答しなくなる原因となる場合があります。Hyper-Vホストとして動作しているWindows Serverで、RRASを無効にしてみてください。

クリック Win+R を開くには Run ダイアログボックス。

タイプ services.msc そしてクリック Enter.

探す Routing and Remote Access Service ~の中で サービス ウィンドウで、そのサービスを右クリックし、コンテキストメニューから Properties. その General タブの "ルーティングとリモートアクセス"のプロパティ ウィンドウで、クリック Stop そして、スタートアップの種類を Disabled.

Hyper-V ホストマシンの再起動

上記の方法で解決しない場合は、Hyper-V ホストマシンを再起動してみてください。他の Hyper-V ホストや Hyper-V 高可用性クラスターがある場合は、実行中の仮想マシンを他のホストに移行してから、問題のある仮想マシンが動作している Hyper-V ホストをシャットダウンすることができます。

Hyper-V 仮想マシンが"保存済み状態"で停止してしまう問題の解決

Hyper-V 仮想マシンがフリーズする現象は、仮想マシンの起動/停止状態だけでなく、保存状態でも発生する可能性があります。症状は似ており、問題のある仮想マシンの状態を変更できなくなります。 "VMの起動/停止"ボタンが機能しなくなります。VMのバックアップ中にHyper-Vを終了すると、Hyper-V VMが"保存済み"状態でフリーズしてしまうことがあります。これは、バックアップ処理が中断され、VMが"保存済み"状態になった場合に発生する可能性があります。この場合、VMが破損したり、損傷したりする恐れがあります。このエラーの一般的な原因と、その解決方法について見ていきましょう。

ディスクエラー

仮想マシンが実行中の状態で、仮想マシンファイルが保存されているディスクを取り外すと、仮想マシンでエラーが発生し、仮想マシンが保存状態になることがあります。このエラーは、USBディスクに仮想マシンファイルを保存しているHyper-Vの個人ユーザーにおいて発生しやすい傾向があります。ただし、組織の管理者は、このエラーがストレージの問題によって引き起こされる可能性があることを認識しておく必要があります。ディスク容量が不足している場合、仮想マシンがフリーズし、保存状態になることもあります。 ゲストOSでサポートされていない仮想ハードウェアを使用するようにVMを設定した場合、VMが"保存済み"状態で停止してしまうことがあります。この問題は、新しいVMを作成し、ゲストOSがインストールされた既存の仮想ディスクをインポートした際に発生する可能性があります。VMオプションを編集し、適切なストレージコントローラーやその他のディスクオプションを選択してください。以下の違いについてご確認ください。 第1世代VMと第2世代VM 詳細については、こちらをご覧ください。

ハードウェアリソースが不足しています

Hyper-V ホスト上でリソースを大量に消費する仮想マシンを複数実行している場合、メモリや CPU パフォーマンスが不足すると、仮想マシンがクラッシュして"保存済み"状態になることがあります。その場合は、クラッシュした仮想マシンの復旧作業を行う必要があります。この問題を回避するには、ハードウェアをアップグレードするか、パフォーマンスの低いホスト上で負荷の高い仮想マシンを複数実行しないようにしてください。可能であれば、仮想マシンを別の Hyper-V ホストに移行してください。

フォルダのアクセス権が正しくない

フォルダやVMファイルに対する権限が不十分な場合、VMが 保存済み 状態。VMファイルが保存されているフォルダーのプロパティを開きます。 Security そして Sharing タブ(VMが共有ストレージ上の共有フォルダにある場合)。権限を Allow all 必要なユーザーまたはグループに対して。

仮想マシンの削除

他の方法で解決できなかった場合、VMが"起動中""停止中""保存済み"の状態から抜け出せなくなる問題を解決するための別の方法をご紹介します。データの損失を防ぐため、まず仮想ディスクファイルを安全な場所にコピーしてください。その後、元の場所から問題のあるVM(VMの設定ファイルを含む)を削除します(VMを右クリックして Delete (Hyper-V マネージャー内)。新しい仮想マシンを作成し、バックアップから仮想ディスクを新しい仮想マシンの保存場所にコピーし、Hyper-V で新しい仮想マシンを作成する際に既存の仮想ディスクを選択します。

VMが"バックアップ中"の状態から抜け出せなくなっています

これと似た別の問題として、Hyper-V VM が ランニング ~の状態 バックアップ ステータス。この状態では、Hyper-V マネージャーで仮想マシンの起動や停止を行うことはできません。通常、Hyper-V ホストを再起動することでこの問題は解決しますが、ホスト上で実行中の他の仮想マシンをシャットダウンまたは移行する必要があるため、再起動は望ましくありません。

How to turn off Hyper-V VMs hanging with the backing up status

このエラーの原因として考えられるのは、Microsoft Hyper-V の問題です VSS Hyper-V ホスト上のライター サービス。

管理者としてコマンド プロンプト (CMD) を起動し、次のコマンドを実行して VSS ライターの状態を確認します。

vssadmin list writers

エラーがなければ、各VSSライターの出力は、以下のスクリーンショットに表示されているものと同様になります。

Checking VSS writers on a Hyper-V host

Microsoft Hyper-V VSS ライター サービスは、親となる Hyper-V 仮想マシン管理サービスに依存しています。このため、必要な VSS サービスを再起動して問題を解決するには、Hyper-V 仮想マシン管理サービスを再起動する必要があります。

Hyper-V 仮想マシン管理サービスを再起動する最も手っ取り早い方法は、 ServicesComputer Management または実行する services.msc、サービス名を右クリックし、[ Restart.

Restarting the Hyper-V Virtual Machine Management service

Hyper-V VSS ライターが応答しなくなっている場合は、手動で終了させる必要があります。 vmms.exe タスクマネージャーでプロセスを確認します。タスクマネージャーを開き、右クリックして vmms.exe そして選択してください End Process Tree コンテキストメニューで。

Ending the vmms.exe process and restarting Virtual Machine Management service

終了した後、 vmms.exe この処理が完了すると、Hyper-V マネージャーから仮想マシンが消えるはずです。Hyper-V 仮想マシン管理サービスを開始すると、仮想マシンの一覧が再び表示され、問題のあった仮想マシンのバックアップステータスも解消されているはずです。これらの Hyper-V サービスを再起動すれば、問題は解決するはずです。

結論

"Hyper-V の状態変更に失敗しました"というエラーは、仮想マシンを使用するユーザーや管理者にとって厄介な問題です。幸いなことに、問題のある仮想マシンを停止できない場合など、Hyper-V 仮想マシンがフリーズした状態に関連するエラーは、高い確率で修正可能です。本ブログ記事では、"Hyper-V の状態変更に失敗しました"および"仮想マシンの状態の復元に失敗しました"というエラーの一般的な原因と、その解決策について解説しました。

このエラーやその他のエラー、あるいはハードウェア障害が発生した後、仮想マシンのデータが破損する場合があることに注意してください。そのため、データ損失を防ぐために、Hyper-V 仮想マシンのバックアップを定期的に実行することをお勧めします。使用 NAKIVO Backup & Replication Hyper-V 仮想マシンを、最適なパフォーマンスと省スペース機能でバックアップします。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルをご利用いただき、本ソリューションのデータ保護機能をすべてお試しください。15日間無料です。機能や容量の制限は一切ありません。クレジットカードも不要です。

People also read