Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Lỗi Windows

Sửa chữa Windows 10/11 bằng DISM.exe /online /cleanup-image /scanhealth – Hướng dẫn từng bước

Nếu Windows 10/11 không hoạt động bình thường, nguyên nhân có thể do thiếu hoặc hỏng các file hệ thống. Hướng dẫn này sẽ chỉ cho bạn quy trình sửa chữa cài đặt bằng công cụ dòng lệnh Deployment Image Servicing and Management (DISM) và System File Checker (SFC).

DISM là gì?

Deployment Image Servicing and Management (DISM) là công cụ dòng lệnh cấp quản trị viên cho phép chuẩn bị, sửa đổi và sửa chữa các image hệ thống như Windows Recovery Environment, Windows Setup và Windows PE (WinPE). Người dùng có image phục hồi cục bộ cũng có thể dùng công cụ này để khắc phục các sự cố hệ thống phổ biến.

Ngoài ra, khi cần khắc phục lỗi cụ thể, xác định lý do thiết bị không khởi động đúng hoặc giải quyết vấn đề hiệu năng, bạn có thể dùng công cụ System File Checker để quét và thay thế file hệ thống bị thiếu hoặc hỏng bằng image phục hồi.

Mẹo chuyên nghiệp: Chạy công cụ tối ưu hóa PC chuyên dụng để loại bỏ cài đặt sai, file rác, ứng dụng độc hại và mối đeọa bảo mật gây ra sự cố hệ thống hoặc chậm máy.

Mặc dù các lệnh trong hướng dẫn này không gây hại, bạn vẫn nên sao lưu đầy đủ dữ liệu trước khi tiến hành vì sẽ thực hiện thay đổi hệ thống. Cũng nên chạy công cụ sửa chữa PC như Outbyte PC Repair để thử sửa lỗi bạn đang gặp.

DISM là gì?

Công cụ Deployment Image Servicing and Management (DISM) là file thực thi dòng lệnh cấp quản trị viên Windows, dùng để sửa chữa image Windows hoặc sửa đổi phương tiện cài đặt Windows. Nó có thể mount các image Windows định dạng .wim, .vhd hoặc .vhdx và khắc phục sự cố với hệ điều hành Windows đang cài đặt.

DISM lần đầu xuất hiện trên Windows 7 và Windows Server 2008 R2, kết quả từ sự thay đổi tư duy của Microsoft về cách loại bỏ ImageX đúng đắn, giải quyết sự phát triển của WIM và Virtual Images, cũng như thêm các tính năng hữu ích cho quản trị viên và người dùng cuối.

DISM có thể dùng với file image Windows cũ hơn, nhưng không dùng được với image mới hơn phiên bản DISM đã cài đặt.

DISM có thể service các image Windows từ Windows 7, Windows Server 2008 R2 và các phiên bản WinPE, WinRE đi kèm. Các lệnh và tùy chọn service image khác nhau tùy thuộc vào hệ điều hành Windows bạn đang service và image là offline hay OS đang chạy.

Khi nào nên dùng DISM?

Khi máy tính gặp sự cố khởi động, hiệu năng hoặc lỗi bất ngờ, công cụ đầu tiên nên dùng là System File Checker (sfc /scannow) – nó sẽ phát hiện và thay thế file hỏng hoặc thiếu trên image cục bộ.

Tuy nhiên, đôi khi vấn đề nằm sâu hơn trong image và SFC không thể sửa. Lúc này, DISM là lựa chọn tốt tiếp theo để thử sửa vấn đề gốc.

Theo Microsoft, DISM phù hợp nhất trong các trường hợp:

  • Quản lý dữ liệu/thông tin trong image Windows: liệt kê hoặc kiểm kê thành phần, cập nhật, driver, ứng dụng; capture hoặc tách image; thêm/xóa image trong file .wim; mount image.
  • Service chính image: thêm/xóa gói driver và driver, thay đổi cài đặt ngôn ngữ, bật/tắt tính năng Windows, nâng cấp lên phiên bản Windows cao hơn.

Tóm lại: thu thập thông tin, nâng cấp và sửa chữa.

DISM nằm trong thư mục c:\windows\system32 trên mọi cài đặt Windows 10/11, nhưng bạn có thể chạy từ bất kỳ vị trí nào trong Command Prompt. DISM phải khởi chạy từ Command Prompt nâng cao (Run as administrator).

DISM trên Windows 10/11

DISM trên Windows 10/11 hỗ trợ các tính năng mới:

  • Full Flash Update (.FFU): Định dạng Full Flash Update (.FFU) nắm bắt toàn bộ thông tin ổ đĩa bao gồm thông tin phân vùng, được DISM hỗ trợ. Giúp triển khai nhanh hơn và đơn giản hơn.
  • Capabilities (Khả năng): Loại gói Windows mới này cho phép yêu cầu dịch vụ như .NET hoặc ngôn ngữ mà không cần chỉ định phiên bản. Dùng DISM tìm và cài phiên bản mới nhất từ nhiều nguồn như Windows Update hoặc server nội bộ.
  • Nén OS và gói provisioning: Có thể nén hệ điều hành và gói provisioning, chạy OS và file hệ thống khác từ file nén để tiết kiệm dung lượng trên image Windows. Thay thế tính năng WIMBoot của Windows 8.1.

Cách chạy DISM trên Windows 10/11

Như đã nói, bạn không cần điều hướng thủ công đến C:\Windows\System32 để tìm DISM.exe. Hãy dùng Command Prompt hoặc Windows PowerShell để thực thi lệnh DISM.

Để có đủ đặc quyền, hãy chạy Command Prompt hoặc Windows PowerShell với quyền quản trị viên:

  1. Nhấn Win + S để mở tìm kiếm Windows trên Windows 10/11.
  2. Trong ô tìm kiếm, gõ cmd hoặc powershell.
  3. Chuột phải kết quả phù hợp nhất và chọn Run as administrator.
  4. Gõ lệnh DISM bạn muốn dùng và chờ kết quả.

Lệnh DISM /Online /Cleanup-Image /ScanHealth là gì?

Để kiểm tra hỏng hóc, chạy DISM /Online /Cleanup-Image /ScanHealth trên image. Lệnh này giúp người dùng quét và định vị vấn đề trong hệ điều hành.

ScanHealth chỉ thực hiện quét ban đầu và báo cáo kết quả – không thực hiện sửa chữa.

Các bước chạy quét nâng cao với DISM:

  1. Mở Start.
  2. Tìm Command Prompt, chuột phải kết quả đầu tiên và chọn Run as administrator.
  3. Gõ lệnh sau và nhấn Enter: DISM /Online /Cleanup-Image /ScanHealth.

Quá trình này mất lâu hơn CheckHealth, nhưng cơ hội phát hiện sự cố cao hơn.

ScanHealth vs CheckHealth: Khác biệt gì?

DISM có tham số /cleanup-image để quét, kiểm tra và khôi phục sức khỏe image Windows mục tiêu. Bạn có thể tự test bằng các lệnh sau trên image Windows 10/11 đang dùng:

  • dism /online /cleanup-image /checkhealth
  • dism /online /cleanup-image /scanhealth

Hiểu sự khác biệt bằng cách xem tài liệu tham chiếu. Lệnh CheckHealth chỉ kiểm tra log hiện có để xem các tiến trình Windows có báo lỗi khi chạy item từ component store không. Lệnh này chỉ tìm lỗi đã tồn tại và hoàn thành rất nhanh.

Lệnh ScanHealth kiểm tra từng item trong component store, tính giá trị hash cho file hiện tại và so sánh với hash đã tính trước cho phiên bản khỏe mạnh của file đó – Microsoft thường tính toán này như một phần quy trình quản lý phát hành và toàn vẹn. Trong khi quét, ScanHealth cũng ghi file log.

Đó là lý do ScanHealth lâu hơn: nó thực sự làm nhiều việc hơn. Nếu xem Performance Monitor hoặc công cụ báo tiêu thụ CPU/lưu trữ real-time, bạn sẽ thấy sự khác biệt rõ rệt về hoạt động nguồn lực giữa CheckHealth và ScanHealth.

Nếu dùng CheckHealth, nó sẽ báo nếu phát hiện lỗi. Cũng chỉ ra image Windows khỏe, có thể sửa, hoặc không thể sửa. Nếu khỏe thì không cần ScanHealth, xong trong vài giây. Nếu có thể sửa, chạy ScanHealth sẽ cho biết cần sửa gì nếu bạn sẵn sàng dành thời gian xem file CBS.log (DISM ghi mặc định tại %windir%/Logs/CBS).

Lưu ý: CBS là component-based servicing – thứ DISM làm bên dưới với component store. Nếu image báo không thể sửa, Microsoft khuyên "bạn nên loại bỏ image và bắt đầu lại" (cách nói ngắn cho quy trình tốn thời gian và đôi khi khó khăn). Nếu image có thể sửa, bạn dùng tùy chọn RestoreHealth để fix.

Mặt khác, có thể có sự cố với image Windows chưa gây entry lỗi để CheckHealth phát hiện. Nếu cài đặt Windows hoạt động lạ và CheckHealth không thấy gì, có thể đáng giá chạy ScanHealth để ép kiểm tra từng item trong component store. Tôi khuyên dùng đây là phương án cuối cùng nếu CheckHealth không ra kết quả và Windows vẫn bị lệch.

Các thành phần của DISM /Online /Cleanup-Image /ScanHealth

Như đã nói, lệnh này báo cáo các vấn đề được xác định trong OS hiện tại.

Nhưng chính xác mỗi switch trong lệnh làm gì? Chúng tôi giải thích ý nghĩa và gom lại cho bạn:

DISM.exe /Online vs /Image

Khi chạy lệnh DISM.exe, bạn phải chỉ định switch /Online hoặc /Image.

Khi dùng switch /Online, DISM.exe không mong đợi đường dẫn đến image offline. Thay vào đó, công cụ sẽ nhắm đến OS đang chạy.

Nếu dùng switch /Image, công cụ Deployment Image Servicing and Management sẽ yêu cầu bạn chỉ định đường dẫn đến thư mục gốc của image Windows offline.

DISM.exe /Cleanup-Image

Switch /Online hoặc /Image phải theo sau các lệnh service image khác để DISM.exe hoạt động. Switch /Cleanup-Image là một trong các tùy chọn dòng lệnh cho DISM.exe /Online.

Trong lệnh "DISM /online /cleanup-image /scanhealth", switch /Cleanup-Image làm gì? Nó dọn dẹp và khôi phục OS đang chạy.

DISM.exe /ScanHealth

Thành phần /ScanHealth quét image tìm hỏng hóc component store. Tùy chọn này không khắc phục hỏng hóc. Chỉ kiểm tra hỏng hóc component store và ghi vào file log. Có thể mất 5-10 phút. Sẽ dừng ở 20% một lúc trước khi tiếp tục.

Kết quả DISM /Online /Cleanup-Image /ScanHealth

Lệnh quét ScanHealth mất bao lâu? Lệnh kiểm tra image Windows có thể khá tốn thời gian (10-30 phút). Sẽ cho ra một trong 3 kết quả:

  • No component store corruption detected – DISM không phát hiện lỗi trong component store.
  • The component store is repairable – DISM tìm thấy và sửa lỗi trong component store.
  • The component store is not repairable – DISM không thể sửa component store Windows (thử DISM phiên bản mới hơn, hoặc phải khôi phục image Windows từ backup, reset hoặc cài lại hoàn toàn Windows).

Cách khắc phục lỗi thường gặp của DISM ScanHealth

Người dùng gặp nhiều lỗi khi chạy lệnh DISM scanhealth. Xem một số trường hợp:

DISM /online /cleanup-image /scanhealth bị treo

Có báo cáo tiến trình DISM bị treo ở scanhealth, thậm chí vài giờ không tiến triển.

Điều đầu tiên: kiểm tra cập nhật. Cài đặt các bản cập nhật có sẵn để đưa build OS lên mới nhất. Có thể sửa một số file hệ thống. Lỗi này có thể do vấn đề file hệ thống. File ISO cũng có thể dùng để sửa offline.

Lỗi DISM exe /online /cleanup-image /scanhealth Error 87

Khi dùng DISM /CheckHealth hoặc DISM /ScanHealth, bạn có thể gặp "DISM error 87: the parameter is incorrect" do gõ sai lệnh. Thứ nhất kiểm tra xem lệnh đã đúng chưa.

Nếu lệnh xác nhận đúng, xem các khả năng sau:

  • Windows Update gặp sự cố. Khi DISM phát hiện image/file hỏng, nó dùng Windows Update tải file cần thiết. Quy trình sẽ dừng nếu Windows Update fail.
  • DISM /AddPackage dùng copy file > 48GB từ phân vùng này sang phân vùng khác.
  • Dịch vụ cần thiết không khởi động – ví dụ không kết nối được mạng.

Để khắc phục: gõ lệnh đúng, bao gồm dấu cách trước dấu gạch chéo. Nhớ chạy cmd as administrator – không làm vậy là một nguyên nhân gây error 87.

Nếu lỗi vẫn tồn tại, bạn có thể khôi phục Windows Update về trạng thái hoạt động trước đó và dọn dẹp component store. Lựa chọn cuối: thực hiện System Restore.

Nếu chạy DISM /ScanHealth trên Windows 7 và Windows Server 2008, cần cài đặt bản cập nhật KB2966583 trước. Nếu không, sẽ nhận thông báo: "Error 87. In this context, the ScanHealth option is not recognized."

Hy vọng hướng dẫn hữu ích. Đừng ngần ngại liên hệ nếu có câu hỏi hoặc góp ý về chủ đề này.