Trong bài viết này, chúng ta sẽ tìm hiểu cách khắc phục sự cố khi hệ điều hành Windows gặp lỗi dừng (stop error) 0xC0000102, làm cho máy ảo Azure không thể khởi động. Lưu ý rằng đây chỉ là hướng dẫn tổng quan, nếu cần trợ giúp chi tiết hơn, hãy liên hệ với chúng tôi.
Contents
Triệu chứng
Khi bạn sử dụng boot diagnostics để xem ảnh chụp màn hình của máy ảo, màn hình hiển thị thông báo rằng hệ điều hành gặp lỗi mã 0xC0000102 trong quá trình khởi động.
Nguyên nhân
Lỗi 0xC0000102 là một lỗi STATUS_FILE_CORRUPT_ERROR, có nghĩa là một tập tin bị hỏng đang ngăn máy ảo của bạn khởi động đúng cách. Có hai nguyên nhân có thể gây ra mã lỗi này:
- Tập tin được hiển thị trong thông báo lỗi đã bị hỏng.
- Cấu trúc đĩa đã bị hỏng và không thể đọc được.
Giải pháp
Thử khôi phục máy ảo từ bản sao lưu
Nếu bạn có bản sao lưu gần đây của máy ảo, bạn có thể thử khôi phục máy ảo từ bản sao lưu để khắc phục vấn đề khởi động. Nếu không thể khôi phục máy ảo từ bản sao lưu, làm theo các bước sau:
Bước 1: Tạo và truy cập máy ảo sửa chữa
- Làm theo các bước 1-3 của quy trình sửa chữa máy ảo để chuẩn bị một máy ảo sửa chữa.
- Sử dụng kết nối Remote Desktop để kết nối với máy ảo sửa chữa.
Bước 2: Sửa chữa hoặc thay thế tập tin bị hỏng
-
Sửa chữa tập tin bị hỏng:
- Mở cửa sổ CMD với quyền quản trị và chạy lệnh
chkdsk <<DRIVE LETTER>>: /F
, trong đó<<DRIVE LETTER>>
là chữ cái đại diện cho đĩa cần kiểm tra.
- Mở cửa sổ CMD với quyền quản trị và chạy lệnh
-
Thay thế tập tin bị hỏng:
- Sử dụng boot diagnostics để xem ảnh chụp màn hình của máy ảo và ghi nhớ tên tập tin được hiển thị trong thông báo lỗi.
- Để thay thế tập tin nhị phân bị hỏng, làm theo các bước sau:
- Duyệt đến vị trí của tập tin được hiển thị trong ảnh chụp màn hình.
- Ghi nhớ phiên bản của tập tin (Nhấp chuột phải vào tập tin và chọn tab “Chi tiết”).
- Đổi tên tập tin thành
<<FILENAME.EXT>>.OLD
. Ví dụ, tập tin hiển thị trong ảnh trên sẽ được đổi tên từwindowssystem32driverscng.sys
thànhwindowssystem32driverscng.sys.old
.
- Khôi phục tập tin này từ kho lưu trữ nội bộ:
- Mở phiên CMD và định vị phân vùng chứa thư mục Windows của bạn.
- Duyệt đến
windowswinsxs
và tìm kiếm tập tin nhị phân được hiển thị trên ảnh chụp màn hình của bạn bằng lệnhdir <<binary from the screenshot with extension>> /s
. - Lệnh trên sẽ liệt kê tất cả các phiên bản khác nhau của tệp tin cụ thể đó mà máy ảo có và sẽ cung cấp lịch sử đường dẫn của thành phần đó. Bạn nên chọn phiên bản mới nhất của cùng một phiên bản từ danh sách và tiếp tục sao chép tệp tin đó vào thư mục mà ảnh chụp màn hình mô tả.
Bước 3: Kích hoạt Serial Console và thu thập bộ nhớ đệm
Trước khi xây dựng lại máy ảo, nên kích hoạt việc thu thập bộ nhớ đệm và Serial Console. Để làm điều này, hãy chạy đoạn mã sau:
- Mở phiên lệnh cấp cao (chạy dưới quyền quản trị).
- Liệt kê dữ liệu BCD store và xác định giấy phép boot loader (boot loader identifier), bạn sẽ sử dụng giấy phép này trong bước tiếp theo.
- Đối với máy ảo thế hệ 1, nhập lệnh sau và ghi nhớ giấy phép được liệt kê:
bcdedit /store <<BOOT PARTITON>>:bootbcd /enum
. - Đối với máy ảo thế hệ 2, nhập lệnh sau và ghi nhớ giấy phép được liệt kê:
BCDEDIT /store <<LETTER OF THE EFI SYSTEM PARTITION>>:EFIMicrosoftbootbcd /enum
.
- Đối với máy ảo thế hệ 1, nhập lệnh sau và ghi nhớ giấy phép được liệt kê:
- Chạy các lệnh sau để kích hoạt Serial Console:
BCDEDIT /store <<VOLUME LETTER WHERE THE BCD FOLDER IS>>:bootbcd /ems {<<BOOT LOADER IDENTIFIER>>} ON
.BCDEDIT /store <<VOLUME LETTER WHERE THE BCD FOLDER IS>>:bootbcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
.
- Kiểm tra rằng không gian trống trên đĩa hệ điều hành lớn hơn kích thước bộ nhớ (RAM) trên máy ảo.
- Nếu không đủ không gian trên đĩa hệ điều hành, bạn nên thay đổi vị trí mà tệp tin bộ nhớ đệm sẽ được tạo ra. Thay vì tạo tệp tin trên đĩa hệ điều hành, bạn có thể tham khảo đến ổ đĩa dữ liệu khác đã được gắn vào máy ảo với không gian trống đủ. Để thay đổi vị trí, hãy thay thế
%SystemRoot%
bằng chữ cái ổ đĩa (ví dụ: F:) của ổ đĩa dữ liệu trong các lệnh dưới đây. - Nhập các lệnh sau (cấu hình dump được đề xuất):
REG LOAD HKLMBROKENSYSTEM <<VOLUME LETTER OF BROKEN OS DISK>>:windowssystem32configSYSTEM
.REG ADD "HKLMBROKENSYSTEMControlSet001ControlCrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
.REG ADD "HKLMBROKENSYSTEMControlSet001ControlCrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%MEMORY.DMP" /f
.REG ADD "HKLMBROKENSYSTEMControlSet001ControlCrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
.REG ADD "HKLMBROKENSYSTEMControlSet002ControlCrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
.REG ADD "HKLMBROKENSYSTEMControlSet002ControlCrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%MEMORY.DMP" /f
.REG ADD "HKLMBROKENSYSTEMControlSet002ControlCrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
.REG UNLOAD HKLMBROKENSYSTEM
.
- Nếu không đủ không gian trên đĩa hệ điều hành, bạn nên thay đổi vị trí mà tệp tin bộ nhớ đệm sẽ được tạo ra. Thay vì tạo tệp tin trên đĩa hệ điều hành, bạn có thể tham khảo đến ổ đĩa dữ liệu khác đã được gắn vào máy ảo với không gian trống đủ. Để thay đổi vị trí, hãy thay thế
Bước 4: Xây dựng lại máy ảo
Sử dụng bước 5 của các lệnh sửa chữa máy ảo để xây dựng lại máy ảo.
Nếu bạn có câu hỏi hoặc cần trợ giúp, hãy tạo yêu cầu hỗ trợ hoặc hỏi cộng đồng hỗ trợ Azure. Bạn cũng có thể gửi phản hồi sản phẩm đến cộng đồng phản hồi Azure.