Cách tắt máy ảo Hyper-V bị kẹt ở trạng thái khởi động/dừng

Hyper-V là một nền tảng ảo hóa phần cứng nổi tiếng và được ưa chuộng vì đây là trình ảo hóa gốc của Windows. Ảo hóa mang lại nhiều lợi ích và việc chạy máy ảo rất thuận tiện. Tuy nhiên, vẫn có thể xảy ra lỗi. Bạn có thể gặp phải lỗi “Hyper-V failed to change state” và máy ảo bị treo khi cố gắng bật hoặc tắt nó. Trong trường hợp này, các nút Bắt đầu, Dừng và Khởi động lại sẽ không hoạt động đối với máy ảo.

Bạn không thể chỉnh sửa cài đặt máy ảo và sử dụng máy ảo cho đến khi giải quyết được vấn đề này. Nếu bạn đang tìm cách tắt Hyper-V hoặc Cách gỡ cài đặt Hyper-V, đừng vội vàng. Bài viết này giải thích các nguyên nhân có thể dẫn đến lỗi “Hyper-V failed to change state” và các phương pháp để khắc phục vấn đề này.

NAKIVO cho sao lưu Hyper-V

NAKIVO cho sao lưu Hyper-V

Sao lưu không cần cài đặt phần mềm đại lý, hỗ trợ nhận diện ứng dụng cho Hyper-V. Bảo vệ chống ransomware, khởi động máy ảo ngay lập tức từ bản sao lưu, hỗ trợ các nền tảng ảo hóa và vật lý khác, cùng nhiều tính năng khác.

Giải thích về lỗi

Các nút Khởi động, Dừng và Khởi động lại thường không hiển thị trong giao diện người dùng đồ họa. Nếu bạn cố gắng nhấp vào các nút này, thông báo lỗi sẽ xuất hiện. Toàn văn thông báo lỗi “Hyper-V VM stuck” hiển thị khi bạn cố gắng khởi động hoặc dừng một máy ảo trong Hyper-V được trình bày dưới đây:

Ứng dụng đã gặp lỗi khi cố gắng thay đổi trạng thái của máy ảo.

Tên-máy-ảo Không thể thay đổi trạng thái.

Hoạt động không thể thực hiện được khi đối tượng đang ở trạng thái hiện tại.

Thông báo “Hyper-V không thể thay đổi trạng thái” cũng có thể chứa cụm từ này:

Trạng thái không thể được thay đổi.

Các nguyên nhân phổ biến gây ra lỗi khởi động/tắt máy ảo (VM) bao gồm sự cố lưu trữ, cấu hình mạng không chính xác, cấu hình Routing and Remote Access, tùy chọn nguồn điện của VM và quyền truy cập không đủ để truy cập tệp tin của VM.

Kết thúc quá trình của máy ảo gặp sự cố

Khi gặp lỗi khởi động/tắt máy ảo, bạn không thể chỉ đơn giản kết thúc máy ảo bằng cách kết thúc quá trình Virtual Machine Worker Process ( vmwp.exe ), đây là một trong những dịch vụ/quá trình quan trọng của Hyper-V. Bạn cần biết Mã định danh duy nhất toàn cầu (GUID) của máy ảo gặp sự cố vì có nhiều phiên bản của quy trình vmwp.exe đang chạy trên Windows và mỗi phiên bản liên quan đến một máy ảo cụ thể. Nếu bạn cố đoán phiên bản vmwp.exe cần thiết và kết thúc từng phiên bản vmwp.exe, bạn có thể vô tình kết thúc một máy ảo không xác định mỗi lần, và cuối cùng có thể kết thúc gần như tất cả các máy ảo trước khi tìm được máy ảo đúng.

Phương pháp 1: Sử dụng các công cụ GUI gốc

Bạn có thể sử dụng giao diện người dùng đồ họa (GUI) của Windows và Hyper-V để xác định quy trình vmwp.exe cần thiết và kết thúc quy trình này. Trình quản lý Hyper-V là một công cụ có GUI để quản lý máy ảo trong môi trường Windows Hyper-V.

Lấy GUID của máy ảo trong Hyper-V Manager. Nhấp chuột phải vào tên máy chủ Hyper-V của bạn trong Hyper-V Manager và trong menu ngữ cảnh, chọn Hyper-V Settings.

Opening Hyper-V settings for virtual machine management

Trong cửa sổ Hyper-V Settings , nhấp vào Virtual Machines ở khung bên trái để tìm đường dẫn nơi các tệp máy ảo được lưu trữ theo mặc định trên máy chủ Hyper-V. Trong ví dụ của chúng tôi, đường dẫn là E:VMs.

Checking the default folder to store Hyper-V virtual machines

Khi bạn đã biết vị trí lưu trữ các tệp VM, hãy chuyển đến thư mục này trong Windows Explorer. Tìm thư mục con chứa các tệp của VM đã bị đóng băng. Trong trường hợp của tôi, tên VM là “Ubuntu Hyper-V”. Mở thư mục máy ảo (VM), bạn sẽ thấy một thư mục con và các tệp có tên dài gồm các chữ số và chữ cái. Đây chính là mã định danh máy ảo (VM GUID) cần thiết để xác định các tiến trình ` `, `vmwp.exe`, ` ` và buộc máy ảo dừng lại. Trong ví dụ của tôi, mã VM GUID là ` ` 3C555937-A999-4542-B77E-FD69488B8579 ` `.

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

Nếu bạn không thể phát hiện GUID của máy ảo trong giao diện người dùng đồ họa của Windows và Hyper-V, bạn có thể sử dụng Process Explorer hoặc PowerShell (xem các phần bên dưới).

Sau khi tìm thấy ID, bạn có thể kết thúc tác vụ liên quan đến máy ảo Hyper-V có vấn đề, chẳng hạn như: vmwp exe

Mở Trình quản lý tác vụ Windows trong hệ điều hành chủ. Nhấp vào Start > Run hoặc nhấn Win+R, nhập taskmgr và nhấn Enter.

Tìm quy trình vmwp.exe có GUID cần thiết trong cột Tên người dùng . Nhấp chuột phải vào quy trình vmwp exe phù hợp và trong menu ngữ cảnh, chọn End task để tắt máy ảo và nhận trạng thái dừng máy ảo chính xác.

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

Lưu ý: Bạn có thể nhấp chuột phải vào tiêu đề cột, ví dụ: Tên người dùng , và nhấp vào Select Columns. Chọn các ô kiểm Command lineDescription trong cửa sổ Select Columns , sau đó nhấp vào OK. Sau đó, bạn có thể xem mã định danh VM (VM GUID) cho từng vmwp exe quá trình trong cột Command Line của Trình quản lý tác vụ.

Ending the vmwp exe service in Windows Task Manager

Phương pháp 2: Sử dụng Process Explorer

Bạn có thể xác định phiên bản cần thiết của quá trình vmwp exe liên quan đến máy ảo (VM) gặp sự cố bằng Process Explorer, một công cụ miễn phí do Microsoft cung cấp. Tải xuống Process Explorer có các tùy chọn nâng cao không có trong trình quản lý tác vụ tiêu chuẩn trên trang web của Microsoft. Giải nén các tệp Process Explorer vào một thư mục tùy chỉnh.

Mở Hyper-V Manager, mở cài đặt VM cho máy ảo đang gặp sự cố của bạn và chọn tùy chọn ổ cứng ảo. Sao chép đường dẫn đầy đủ đến tệp đĩa cứng ảo. Trong trường hợp của chúng tôi, đường dẫn này là:

“E:VMsUbuntu Hyper-VVirtual Hard DisksUbuntu Hyper-V.vhdx”

Checking the location of VM files

Khởi chạy Process Explorer bằng cách chạy tệp thực thi tương ứng ( procexp64.exe trong trường hợp của chúng tôi).

Nhấp vào biểu tượng kính lúp và dán đường dẫn đến tệp đĩa ảo của máy ảo bị treo vào trường “Handle or DLL substring” ( ), sau đó nhấp vào “ Search”.

Thực thể của vmwp.exe cần thiết đã được tìm thấy. Nhấp vào vmwp.exe được tìm thấy trong cửa sổ tìm kiếm và thực thể phù hợp của quá trình vmwp exe sẽ được chọn tự động trong Process Explorer.

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

Nhấp chuột phải vào quá trình vmwp.exe đã chọn và trong menu ngữ cảnh, nhấp vào Kill Process. Killing the vmwp exe process in Process Explorer

Phương pháp 3: Sử dụng PowerShell để kết thúc quá trình của máy ảo Hãy mở PowerShell và khắc phục lỗi. Nếu bạn thử chạy lệnh , bạn sẽ thấy lệnh này không thể dừng máy ảo sau khi máy ảo bị treo. Sử dụng lệnh này để xác định ID duy nhất của máy ảo: Như một giải pháp tinh tế hơn, bạn có thể sử dụng các lệnh này để kiểm tra ID: Trong trường hợp của chúng ta, chúng ta cần biết GUID của máy ảo “Ubuntu Hyper-V” tại . GUID của máy ảo này được lưu trữ dưới dạng biến trong bộ nhớ của phiên PowerShell này. Chạy các lệnh này để kết thúc quá trình và dừng máy ảo: Bây giờ quá trình VM gây sự cố đã bị kết thúc và VM đã dừng. Bạn có thể thử chỉnh sửa cài đặt VM và khởi động lại VM. Các phương pháp khác để khắc phục lỗi “Hyper-V failed to change state” Có thể xảy ra trường hợp bạn đã kết thúc quá trình VM bị treo trong Hyper-V nhưng VM vẫn không khởi động được. Trong trường hợp này, nếu bạn cố gắng khởi động VM, bạn có thể gặp lỗi Hyper-V: Kết nối Máy ảo: Không thể thay đổi trạng thái. Dưới đây, tôi cung cấp các nguyên nhân khác có thể gây ra lỗi “Hyper-V failed to change state” , các phương pháp giúp khắc phục lỗi và cách tắt hoàn toàn các máy ảo Hyper-V sau khi gặp lỗi này. Cài đặt ổ đĩa DVD Mở cài đặt máy ảo và kiểm tra các tùy chọn ổ đĩa DVD cho máy ảo. Nếu máy ảo không thể truy cập tệp ISO, lỗi có thể xảy ra. Đảm bảo tệp ISO tồn tại và đường dẫn được định nghĩa chính xác. Bạn cũng có thể vô hiệu hóa ổ đĩa DVD ảo nếu ổ đĩa này không được sử dụng trong máy ảo. Lỗi lưu trữ Kiểm tra xem có đủ dung lượng đĩa trên bộ lưu trữ máy ảo hay không. Nếu không đủ dung lượng đĩa để lưu trữ tệp máy ảo, sự cố lưu trữ có thể khiến máy ảo bị treo và hiển thị lỗi “Hyper-V không thể thay đổi trạng thái” . Nếu sự cố máy ảo xảy ra do thiếu dung lượng lưu trữ, bạn có thể cần chạy các lệnh này để khắc phục lỗi đĩa bên trong máy ảo: Nếu bạn không thể khởi động máy ảo bình thường hoặc máy ảo bị kẹt trong vòng lặp liên tục, hãy chèn hình ảnh ISO cài đặt Windows vào ổ đĩa DVD ảo, khởi động máy ảo từ hình ảnh ISO này (mở BIOS/UEFI ảo và chọn DVD-ROM làm thiết bị khởi động đầu tiên), chọn Chế độ sửa chữa , khởi động CMD và chạy lệnh: Stop-VM -Force
Get-VM "VM-name" | fl *

Checking the VMID (VM GUID) in PowerShell

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

Get-VM | Select Name, Id

$VMGUID Checking the VM GUID in PowerShell

$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

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

chkdsk /f /r /x c:

Khi quá trình kiểm tra đĩa hoàn tất và các lỗi đĩa đã được khắc phục, hãy khởi động lại máy ảo, khởi động từ ổ đĩa cứng ảo (lúc này máy ảo sẽ khởi động được) và chạy các lệnh đã đề cập trước đó trong hệ điều hành khách:

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

Bạn cũng có thể cần kiểm tra các đĩa vật lý được sử dụng làm bộ nhớ lưu trữ Hyper-V trên máy chủ Hyper-V.

Lỗi cấu hình mạng

Kiểm tra cài đặt bộ điều hợp mạng ảo của máy ảo. Nếu trạng thái Bộ điều hợp mạng – Lỗi cấu hình được hiển thị cho ít nhất một bộ điều hợp mạng, thì bạn có thể gặp vấn đề khởi động/tắt máy ảo trong Hyper-V. Bộ điều hợp mạng ảo phải được kết nối với bộ chuyển mạch ảo hiện có để hoạt động bình thường. Lỗi này có thể xuất hiện nếu cấu hình mạng bị thay đổi hoặc bị hỏng.

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

Phát hiện vấn đề trong nhật ký

Kiểm tra Nhật ký sự kiện Windows và các lỗi liên quan đến Hyper-V. Chạy compmgmt.msc, sau đó truy cập Event Viewer > Applications and Services Logs > Microsoft > Windows > Hyper-V-Worker. Nếu bạn thấy các thông báo lỗi trong nhật ký, giải thích về lỗi có thể giúp bạn xác định nguồn gốc của vấn đề.

Chặn truy cập bởi phần mềm chống vi-rút

Kiểm tra cài đặt phần mềm chống vi-rút của bạn. Phần mềm chống vi-rút không được chặn truy cập vào các tệp máy ảo Hyper-V. Nếu phần mềm chống vi-rút chặn truy cập vào các tệp máy ảo, hãy thêm các thư mục chứa các tệp máy ảo vào danh sách loại trừ trong cài đặt phần mềm chống vi-rút. Hyper-V phải có quyền truy cập đầy đủ vào các thư mục và tệp máy ảo.

Tùy chọn nguồn điện của VM

Kiểm tra các tùy chọn nguồn điện trong cài đặt của hệ điều hành khách. Chế độ ngủ và chế độ ngủ đông phải được tắt. Trong hệ điều hành khách Windows, mở Control Panel, sau đó truy cập Power Options, và đảm bảo rằng tùy chọn “Put the computer to sleep” được đặt thành Never. Nếu Ubuntu Linux được cài đặt làm hệ điều hành khách, sử dụng lệnh sau để tắt chế độ ngủ:

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

Kiểm tra VMMS

vmms.exe là một quy trình được Hyper-V sử dụng. Đảm bảo rằng Dịch vụ Quản lý Ảo hóa Hyper-V (VMMS), một trong những dịch vụ quan trọng của Hyper-V, đang hoạt động bình thường và VMMS không bị treo cũng như không ở trạng thái khởi động hoặc dừng (trạng thái). Trạng thái dịch vụ phải là Đang chạy .

The Hyper-V Virtual Machine Management service is running

Dịch vụ VMMS liên quan đến quy trình vmms.exe .

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

Vô hiệu hóa RRAS

Cấu hình sai của Dịch vụ Định tuyến và Truy cập Từ xa (RRAS) có thể là nguyên nhân khiến máy ảo Hyper-V bị treo do cấu hình mạng không chính xác. Hãy thử vô hiệu hóa RRAS trên hệ điều hành Windows Server đang hoạt động như máy chủ Hyper-V.

Nhấn Win+R để mở hộp thoại Run .

Nhập services.msc và nhấn Enter.

Tìm Routing and Remote Access Service trong cửa sổ Dịch vụ , nhấp chuột phải vào dịch vụ và trong menu ngữ cảnh, nhấp vào Properties. Trong tab General của cửa sổ Thuộc tính Routing and Remote Access , nhấp vào Stop và thay đổi loại khởi động thành Disabled.

Khởi động lại máy chủ Hyper-V

Nếu các phương pháp trên không hiệu quả, hãy thử khởi động lại máy chủ Hyper-V. Nếu bạn có các máy chủ Hyper-V khác hoặc cụm Hyper-V High Availability, bạn có thể di chuyển các máy ảo đang chạy sang các máy chủ khác rồi tắt máy chủ Hyper-V có máy ảo gặp sự cố.

Khắc phục sự cố máy ảo Hyper-V bị kẹt ở trạng thái đã lưu

Máy ảo Hyper-V bị kẹt không chỉ xảy ra ở trạng thái khởi động/tắt máy ảo mà còn ở trạng thái đã lưu. Các triệu chứng tương tự và bạn không thể thay đổi trạng thái của máy ảo gặp sự cố. Các nút Khởi động/Tắt máy ảo không hoạt động. Nếu bạn đóng Hyper-V trong khi máy ảo đang được sao lưu, máy ảo có thể bị kẹt ở trạng thái đã lưu. Điều này có thể xảy ra nếu quá trình sao lưu bị gián đoạn và máy ảo được đặt vào trạng thái đã lưu. Trong trường hợp này, máy ảo có thể bị hỏng hoặc hư hỏng. Hãy cùng tìm hiểu các nguyên nhân phổ biến gây ra lỗi này và các phương pháp khắc phục.

Lỗi đĩa

Nếu đĩa chứa tệp máy ảo bị ngắt kết nối trong khi máy ảo đang chạy, lỗi có thể xảy ra với máy ảo và máy ảo sẽ được đặt vào trạng thái đã lưu. Lỗi này thường xảy ra với người dùng cá nhân sử dụng Hyper-V lưu trữ tệp VM trên ổ USB. Tuy nhiên, các quản trị viên tổ chức cần lưu ý rằng lỗi này có thể do vấn đề lưu trữ gây ra. Trong trường hợp không đủ dung lượng đĩa, máy ảo có thể bị treo và cũng có thể bị đưa vào trạng thái đã lưu. Nếu bạn đã cấu hình máy ảo sử dụng phần cứng ảo không được hệ điều hành khách hỗ trợ, máy ảo có thể bị kẹt trong trạng thái đã lưu. Vấn đề này có thể xảy ra nếu bạn tạo một máy ảo mới và nhập một đĩa ảo hiện có đã cài đặt hệ điều hành khách. Chỉnh sửa tùy chọn máy ảo, chọn bộ điều khiển lưu trữ chính xác và các tùy chọn đĩa khác. Đọc về sự khác biệt giữa Máy ảo thế hệ 1 và máy ảo thế hệ 2 để biết thêm thông tin.

Thiếu tài nguyên phần cứng

Nếu bạn chạy nhiều máy ảo tiêu tốn nhiều tài nguyên trên một máy chủ Hyper-V, trong trường hợp thiếu bộ nhớ và hiệu suất CPU, máy ảo có thể bị treo và được đặt vào trạng thái lưu trữ. Sau đó, bạn nên cố gắng khắc phục sự cố máy ảo bị treo. Để tránh vấn đề này, hãy nâng cấp phần cứng hoặc không chạy nhiều máy ảo nặng trên máy chủ có hiệu suất thấp. Di chuyển máy ảo sang một máy chủ Hyper-V khác nếu có thể.

Quyền truy cập thư mục không chính xác

Nếu không có đủ quyền truy cập cho các thư mục và tệp máy ảo, máy ảo có thể bị kẹt ở trạng thái Saved . Mở thuộc tính của thư mục chứa các tệp máy ảo. Kiểm tra các tab “ Security ” và “ Sharing ” (nếu máy ảo nằm trong thư mục chia sẻ trên bộ lưu trữ chung). Đặt quyền truy cập thành “ Allow all ” cho người dùng hoặc nhóm cần thiết.

Xóa máy ảo

Đây là một phương pháp khác để giải quyết sự cố máy ảo bị kẹt ở trạng thái Khởi động/Dừng/Đã lưu nếu các phương pháp khác không hiệu quả. Bạn không muốn mất dữ liệu và vì lý do này, bạn nên sao chép các tệp đĩa ảo sang một vị trí an toàn. Sau đó xóa máy ảo có vấn đề bao gồm các tệp cấu hình máy ảo khỏi vị trí ban đầu (nhấp chuột phải vào máy ảo và chọn Delete trong Hyper-V Manager). Tạo một máy ảo mới, sao chép các đĩa ảo từ bản sao lưu sang vị trí máy ảo mới và chọn đĩa ảo hiện có khi tạo máy ảo mới trong Hyper-V.

Một máy ảo bị kẹt ở trạng thái “Backing up”

Một vấn đề tương tự khác là máy ảo Hyper-V bị kẹt ở trạng thái Running với trạng thái Backing up . Bạn không thể khởi động hoặc tắt máy ảo ở trạng thái này trong Hyper-V Manager. Khởi động lại máy chủ Hyper-V thường giúp giải quyết vấn đề này, nhưng việc khởi động lại không được mong muốn vì các máy ảo khác đang chạy trên máy chủ phải được tắt hoặc di chuyển.

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

Nguyên nhân có thể gây ra lỗi này là do sự cố với dịch vụ Microsoft Hyper-V VSS Writer trên máy chủ Hyper-V.

Mở dòng lệnh (CMD) với tư cách quản trị viên và chạy lệnh này để kiểm tra trạng thái của các trình ghi VSS:

vssadmin list writers

Nếu không có lỗi, kết quả hiển thị cho mỗi trình ghi VSS sẽ tương tự như kết quả được hiển thị trong ảnh chụp màn hình bên dưới.

Checking VSS writers on a Hyper-V host

Dịch vụ Microsoft Hyper-V VSS Writer phụ thuộc vào dịch vụ Quản lý Máy ảo Hyper-V cấp trên. Vì lý do này, bạn phải khởi động lại dịch vụ Quản lý Máy ảo Hyper-V để khởi động lại dịch vụ VSS cần thiết và khắc phục sự cố.

Cách nhanh nhất để khởi động lại dịch vụ Quản lý Máy ảo Hyper-V là mở Services trong Computer Management hoặc chạy services.msc, nhấp chuột phải vào tên dịch vụ và chọn Restart.

Restarting the Hyper-V Virtual Machine Management service

Nếu Trình ghi VSS của Hyper-V bị treo và không phản hồi, bạn nên kết thúc thủ công quá trình vmms.exe trong Trình quản lý tác vụ. Mở Trình quản lý tác vụ, nhấp chuột phải vào vmms.exe và chọn End Process Tree trong menu ngữ cảnh.

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

Sau khi kết thúc quá trình vmms.exe , các máy ảo sẽ biến mất trong Hyper-V Manager. Khởi động lại dịch vụ Quản lý Máy ảo Hyper-V, và bạn sẽ thấy danh sách các máy ảo của mình trở lại, đồng thời trạng thái sao lưu của máy ảo gặp sự cố sẽ biến mất. Khởi động lại các dịch vụ Hyper-V này sẽ giải quyết vấn đề.

Kết luận

Lỗi “Hyper-V failed to change state” là một sự cố gây phiền toái cho người dùng và quản trị viên khi sử dụng máy ảo. May mắn thay, khả năng khắc phục lỗi liên quan đến tình trạng máy ảo Hyper-V bị treo – khi bạn không thể tắt các máy ảo gặp sự cố – là khá cao. Bài viết này đã phân tích các nguyên nhân phổ biến và các phương pháp khả thi để khắc phục các lỗi “Hyper-V failed to change state” và “failed to restore virtual machine state”.

Bạn nên lưu ý rằng đôi khi dữ liệu máy ảo có thể bị hỏng sau lỗi này, các lỗi khác hoặc sự cố phần cứng. Vì lý do này, bạn nên sao lưu máy ảo Hyper-V thường xuyên để tránh mất dữ liệu. Sử dụng NAKIVO Backup & Replication để sao lưu máy ảo Hyper-V của bạn với hiệu suất tối ưu và các tính năng tiết kiệm dung lượng.

Hãy thử NAKIVO Backup & Replication

Hãy thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp. Dùng thử miễn phí trong 15 ngày. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

People also read