Development

Khắc Phục Lỗi BSOD WSL2: Ổn Định Hyper-V và Windows Subsystem

By Ginbok5 min read

Giới thiệu

Trải qua lỗi Màn hình Xanh Chết Chóc (BSOD) sau khi kích hoạt Windows Subsystem for Linux (WSL2) là một trải nghiệm khó chịu đối với các nhà phát triển. Nhiều người cho rằng việc hệ thống bị crash có nghĩa là WSL2 không tương thích với phần cứng của họ hoặc phải bị vô hiệu hóa vĩnh viễn. Tuy nhiên, hầu hết sự cố không ổn định đều xuất phát từ xung đột driver, cấp phát bộ nhớ quá mức, hoặc trình tự kích hoạt tính năng không đúng.

Trong hướng dẫn này, bạn sẽ tìm hiểu một giải pháp khắc phục lỗi BSOD của WSL2 đáng tin cậy để ổn định Hyper-V và đảm bảo môi trường Linux của bạn chạy trơn tru bên cạnh Windows mà không có nguy cơ gây ra sự cố hệ thống.


Hướng Dẫn Từng Bước Khắc Phục Sự Cố BSOD của WSL2

Bước 1: Cập Nhật Windows và Kernel WSL

WSL2 phụ thuộc rất nhiều vào các cải tiến kernel mới nhất. Khởi động vào Windows (với Hyper-V đã tắt nếu cần để truy cập desktop), mở PowerShell với quyền Administrator và chạy:

wsl --update

Đảm bảo phiên bản Windows của bạn đã được cập nhật. Độ ổn định được cải thiện đáng kể trên Windows 10 (22H2+) và Windows 11 (23H2+).

Bước 2: Cập Nhật Driver Đồ Họa từ Nguồn Gốc

Các driver chung từ Windows Update thường thiếu các hook ảo hóa cụ thể cần thiết cho WSLg (thành phần GUI của WSL2).

Bước 3: Cấu Hình Giới Hạn Tài Nguyên thông qua .wslconfig

Theo mặc định, WSL2 có thể cố gắng chiếm tới 80% RAM của bạn, thường gây ra lỗi BSOD MEMORY_MANAGEMENT. Tạo hoặc chỉnh sửa tệp cấu hình toàn cục tại C:\Users\<YourUsername>\.wslconfig:

[wsl2]
# Giới hạn bộ nhớ để ngăn chặn host bị đói tài nguyên
memory=4GB 
# Giới hạn lõi CPU để giảm chi phí hypervisor
processors=2
# Bật swap cho trường hợp tràn bộ nhớ
swap=2GB
# Tắt ứng dụng GUI nếu BSOD vẫn tiếp diễn (WSLg)
guiApplications=false

Bước 4: Kích Hoạt Lại Các Tính Năng theo Trình Tự

Thay vì bật tất cả cùng một lúc, hãy sử dụng các lệnh DISM sau theo trình tự, và khởi động lại sau bước cuối cùng:

# 1. Kích hoạt Nền tảng Máy Ảo (Virtual Machine Platform)
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 2. Kích hoạt Windows Subsystem for Linux
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 3. Đặt Kiểu Khởi chạy Hypervisor
bcdedit /set hypervisorlaunchtype auto

Các Lỗi Thường Gặp và Giải Pháp

Mã Lỗi / Triệu Chứng Nguyên Nhân Khả Thi Giải Pháp
MEMORY_MANAGEMENT BSOD Driver Ballooning của WSL2 chiếm quá nhiều RAM. Áp dụng giới hạn memory trong .wslconfig (Bước 3).
HYPERVISOR_ERROR BSOD Xung đột với hypervisor của bên thứ 3 (VirtualBox/VMWare). Gỡ cài đặt các phiên bản cũ hoặc tắt "Nested Virtualization" trong BIOS.
SYSTEM_THREAD_EXCEPTION Xung đột với bảo mật sinh trắc học của Lenovo. Tắt Enhanced Windows Biometric Security trong BIOS (Xem Nghiên Cứu Trường Hợp).
WslRegisterDistribution failed Ảo hóa bị tắt trong BIOS hoặc dịch vụ chưa được khởi động. Xác minh Intel VT-x hoặc AMD-V đã được Bật trong cài đặt BIOS/UEFI.

Nghiên Cứu Trường Hợp: Ổn Định Dòng Lenovo T490/T590 & T15

Triệu Chứng

Mã dừng SYSTEM_THREAD_EXCEPTION_NOT_HANDLED xuất hiện ngay sau khi kích hoạt các tính năng ảo hóa hoặc trong lần khởi động đầu tiên sau khi cài đặt WSL2 trên Windows 10 hoặc 11.

Giải Pháp

Lỗi crash này thường do xung đột giữa Bảo mật Dựa trên Ảo hóa của Windows (VBS) và việc triển khai bảo mật sinh trắc học độc quyền của Lenovo trong BIOS. Để giải quyết vấn đề này:

  1. Khởi động lại và vào BIOS/UEFI Setup (thường bằng cách nhấn F1 hoặc Enter khi khởi động).
  2. Điều hướng đến Security > Virtualization.
  3. Tìm tùy chọn Enhanced Windows Biometric Security.
  4. Đặt tùy chọn này thành Disabled (Vô hiệu hóa).
  5. Lưu thay đổi và thoát (F10).

Việc vô hiệu hóa tính năng bảo mật sinh trắc học cụ thể này cho phép hypervisor của Windows khởi tạo chính xác mà không bị các ngắt ở cấp độ phần cứng gây ra lỗi ngoại lệ luồng hệ thống. Giải pháp này đã được xác minh để ổn định các hệ thống từ T490 đến T15 Gen 2.


Xác Minh: Cách Kiểm Tra Việc Triển Khai

Sau khi khởi động lại, hãy xác minh độ ổn định bằng các lệnh sau trong PowerShell:

  1. Kiểm tra Trạng thái: wsl --status sẽ hiển thị phiên bản kernel và phiên bản mặc định (2).
  2. Liệt kê Distros: wsl -l -v sẽ hiển thị các bản phân phối đã cài đặt của bạn đang chạy phiên bản 2.
  3. Kiểm tra Ổn định: Khởi chạy distro của bạn và chạy một tác vụ tiêu tốn nhiều bộ nhớ (ví dụ: apt update && apt upgrade). Nếu hệ thống vẫn ổn định trong 10 phút, việc khắc phục đã thành công.
#WSL2#BSODFix#WindowsSubsystemForLinux#Troubleshooting#Virtualization#HyperV#Windows11#DevOps#Linux#TechGuide
← Back to Articles