Thứ Năm, 10 tháng 12, 2015

Nguyên nhân và cách khắc phục lỗi màn hình xanh (BSOD) trên Windows

Màn hình xanh chết chóc, hay còn gọi là blue screen of death ( BSOD), có lẽ là nối ám ảnh lớn nhất với anh em nào sử dụng máy tính. Nó thực chất là thông báo của Windows khi máy tính gặp một lỗi rất nghiêm trọng không thể tự khôi phục hay tiếp tục chạy nữa, lúc đó chúng ta buộc phải khởi động lại PC và nhiều khả năng là sẽ bị mất dữ liệu đang làm việc chưa kịp lưu. Không như app bị crash, BSOD sẽ làm sập cả hệ thống và bạn chẳng thể làm gì được để cứu vãn tình hình, và nguyên nhân thì có nhiều thứ, từ phần cứng cho đến phần mềm.

Nguyên nhân gây ra màn hình xanh chết chóc

BSOD thường hay bị nhất là vì máy tính của bạn bị mỗi lỗi phần cứng hoặc driver phần cứng. Những phần mềm bình thường ít khi nào có khả năng gây ra BSOD bởi Windows có cơ chế cô lập chúng khỏi phần còn lại của hệ điều hành, app nào crash thì thôi đóng lại là xong. Trong khi đó, driver cũng là phần mềm nhưng nó lại can thiệp rất sâu vào phần nhân của Windows (kernel) nên nếu driver lỗi thì kéo theo cả chiếc máy tính của chúng ta cũng gặp vấn đề.

Trong trường hợp bị lỗi BSOD, trước khi tắt Windows sẽ hiển thị một màn hình với rất nhiều chữ gọi là "minidump". Đây là thứ sẽ hiển thị cho bạn biết lỗi có thể xảy ra là gì, và đôi khi nó cũng đưa ra gợi ý giúp bạn giải quyết vấn đề.

Nhưng không phải lúc nào bạn cũng kịp đọc màn hình xanh này. Có những lỗi ít nghiêm trọng thì BSOD sẽ còn hiển thị liên tục và bạn có thời gian từ từ xem xem nó nói cái gì, còn với những lỗi trầm trọng hơn thì BSOD chỉ xuất hiện chớp nhoáng rồi máy tính sẽ tự khởi động lại ngay, bạn không kịp xem xét gì cả. Nếu bỗng dưng bạn rời mắt khỏi PC chút xíu mà máy tự restart, nhiều khả năng đó cũng là BSOD, có điều bạn không kịp thấy nó mà thôi.

Trong trường hợp máy của bạn có thể chạy lên được bình thường, bạn có thể xem lại lỗi màn hình xanh của mình bằng cách dùng phần mềm NirSoft BlueScreen Viewer (miễn phí).


Cách xác định mã lỗi khi bị BSOD

Mỗi khi máy của bạn dính BSOD, nó sẽ xuất hiện một dòng mã lỗi ghi bằng CHỮ IN HOA. Ví dụ, trong tấm ảnh ngay bên dưới, bạn có thể thấy dòng mã lỗi là THREAD STUCK IN DEVICE DRIVER. Nó là BSOD của Windows 10 và Windows 8.


Còn ở Windows 7 trở về trước sẽ có nhiều thông tin hơn nhưng về cơ bản là bạn cũng sẽ tìm thấy được những dòng chữ tương tự như đánh dấu ở hình bên dưới. Thường thì mã lỗi sẽ nằm ở ngay đầu màn hình, không cần phải tìm đâu xa xôi cả.


Khi đã xác định được mã lỗi rồi, mời bạn xem qua cách khắc phục cho một số lỗi phổ biến. Những lỗi nào không được liệt kê ra đây thì bạn chịu khó Google để xem cách giải quyết nhé.

Những mã lỗi phổ biến và cách khắc phục

BAD_POOL_HEADER

Lỗi này mình thấy rất rất rất nhiều trong suốt quãng đường mấy chục năm xài máy tính Windows của mình. Nó bắt nguồn từ việc một tiến trình nào đó đã đi vào bộ nhớ (RAM, paging...) nhưng lại không thể tự mình thoát ra khỏi bộ nhớ đó khi đã xong việc. Điều này làm hỏng phần header của bộ nhớ. Thường những nguyên nhân gây ra lỗi BAD_POOL_HEADER có thể là:
  • Phần mềm chống virus bị lỗi
  • Driver phần cứng bị xung đột lẫn nhau
  • Drive cũ
  • RAM bị hỏng hoặc bị lỗi
Cách khắc phục như sau:

Trong trường hợp bạn có xài phần mềm chống virus, trước tiên hãy thử gỡ nó ra và sử dụng thêm một thời gian xem máy có bị lỗi này hay không. Lúc trước mình đã từng bị với cả Kaspersky lẫn Norton, gỡ ra thì hết, cài lại bản mới nhất và update mới nhất là xong.

Nếu bạn không xài phần mềm chống virus mà vẫn bị thì chúng ta sẽ kiểm tra đến driver của thiết bị. Đầu tiên, bạn vào Start, gõ devmgmt.msc vào ô tìm kiếm rồi chạy phần mềm này lên. Sau đó, bạn thử xác định xem driver nào có thể gây lỗi, thường là driver của các thiệt bị ngoại vi như máy in, chuột, bàn phím, ổ quang (hoặc driver ổ quang ảo, như phần mềm ISO Magic chẳng hạn)... Nhấn phải chuột vào chúng, chọn "Update Driver Software" để cập nhật driver, "Disable" để vô hiệu hóa tạm thời, và "Uninstall" để gỡ bỏ driver này hoàn toàn.

Cách check driver này cực kì hữu hiệu nếu bạn vừa mới cài driver nào đó và ngay lập tức máy bị BSOD. Trong trường hợp này hãy gỡ driver đó ra rồi cài lại, nếu vẫn còn bị hoài thì driver đó không tương thích với máy tính của bạn và nên tìm driver khác thay thế hoặc liên hệ nhà sản xuất phần cứng để được hỗ trợ.

Với laptop, bạn nên lên website chính hãng để download driver, hạn chế download từ các nguồn bên ngoài dù cùng tên phần cứng vì có thể hãng của bạn có tối ưu gì đó thêm mà chúng ta không biết được. Mình đã từng gặp nhiều trường hợp cùng phần cứng nhưng driver của hãng laptop thì chạy tốt còn driver bên ngoài là bị BSOD ngay.

IRQL_NOT_LESS_OR_EQUAL

Lỗi này liên quan đến bộ nhớ RAM và nó thường xuất hiện khi một tiến trình hệ thống hoặc driver nào đó cố gắng thâm nhập vào một địa chỉ trên RAM mà không được phép. Một số nguyên nhân có thể dẫn đến mã IRQL NOT LESS OR EQUAL:
  • Lỗi file system
  • Driver không tương thích
  • Cài phần mềm nào đó mà bị lỗi
  • Hạ cấp từ Windows bản cao hơn xuống Windows bản thấp hơn, ví dụ từ Win 8 xuống Win 7
Cách khắc phục như sau:

Đầu tiên, hãy thử gỡ bỏ bất kì phần cứng ngoại vi nào không cần thiết, như chuột, bàn phím, máy in, máy scan... Sau đó, khởi động lại máy tính để xem là lỗi còn hay không. Nếu còn thì xem tiếp bên dưới, còn không thì lỗi nằm ở phần cứng hoặc driver của nó. Trong trường hợp này thì bạn xem lại phần cập nhật driver của mã lỗi BAD_POOL_HEADER (nằm ngay bên trên)

Nếu vẫn không được, chúng ta sẽ thử vô hiệu hóa cache bộ nhớ:
  1. Chạy Windows lên, vào Settings > Update & Security > Recovery
  2. Trong mục Advanced Startup, chọn Restart Now
  3. Trong màn hình kế tiếp, chọn Troubleshoot > Advanced Options > UEFI Firmware Settings
  4. Nhấn nút Restart để khởi động lại máy tính
  5. Khi bạn đã vào được BIOS hoặc UEFI của máy tính, tìm mục nào đó ghi là "Cache Memory", chọn Disabled để vô hiệu hóa nó rồi khởi động lại PC

Cài đặt các bản update mới nhất cho Windows: mình biết là nhiều anh em rất ngại update Windows nên nguy cơ bị dính BSOD sẽ cao hơn. Đôi khi, lỗi IRQL NOT LESS OR EQUAL có thể được khắc phục chỉ bằng việc cài đặt các bản update mới từ Microsoft để khắc phục vấn đề gì đó mà thôi. Cố lên, đừng lười!

Clean boot: đây là giải pháp cuối cùng nếu 2 cách trên không thành công. Clean boot sẽ chạy Windows với chỉ những phần mềm và tiến trình cần thiết mà thôi, bằng cách này chúng ta có thể tránh được tình trạng BSOD xuất hiện liên tục do lỗi của một app bên thứ ba hay của driver. Để chạy clean boot:
  1. Nhấn Windows + R, trong hộp thoại Run, gõ msconfig
  2. Chuyển sang thẻ General > chọn vào Selective Startup
  3. Bỏ ô "Load startup items"
  4. Chuyển sang tẻ Services, chọn "Hide all Microsoft services"
  5. Trên màn hình giờ chỉ còn lại những dịch vụ của app và driver bên thứ ba. Nhấn "Disable all" và OK để khởi động máy vào clean boot.


Khi bạn đã xác định được phần mềm hay driver gây lỗi, hãy gỡ bỏ nó ngay lập tức. Khi tình hình đã ổn, bạn vào lại msconfig, chuyển sang thẻ General > chọn "Normal Startup" và khởi động máy thì mọi thứ sẽ trở về lại thiết lập như lúc bình thường.

DRIVER_POWER_STATE_FAILURE

Lỗi này cũng liên quan đến driver và thường xảy ra khi bạn cài mới một driver nào đó. Cách khắc phục khá đơn giản:

1. Hãy thử ngắt kết nối các thiết bị mà bạn vừa gắn vào, nhất là thiết bị ngoại vi. Nếu bạn mới gắn thêm card mạng, card đồ họa hay ổ quang gì đó cho máy tính của mình thì cũng nên gỡ chúng ra để xem lỗi có còn bị hay không.

2. Nếu vẫn còn, bạn gỡ driver của phần cứng đó bằng cách xem lại phần hướng dẫn cập nhật driver của mã lỗi BAD_POOL_HEADER. Sau đó, bạn có thể kiếm driver mới hơn từ website của nhà sản xuất rồi cài vào vì nhiều khả năng driver cũ đã lỗi hoặc xung đột với hệ điều hành.

3. Bạn cũng có thể xài phần mềm tên là Driver Verifier được cài sẵn trong Windows, từ Windows XP đến tận Windows 10. Phần mềm này sẽ cho bạn biết liệu có driver nào gặp trục trặc hay không, từ đó biết mà vô hiệu hóa nó cho chính xác, không phải mò mẫm nhiều.

Cách chạy Driver Verifier:
  1. Vào Start > Run > gõ lệnh cmd
  2. Trong cửa sổ Command Prompt, gõ vào lệnh verifier
  3. Nhấn Enter, ứng dụng này sẽ chạy lên
  4. Chọn "Create Standard Settings" > Next > chọn tiếp "Automatically select all drivers installed on this computer"
  5. Nhấn Finish khi hoàn tất

INACCESSIBLE_BOOT_DEVICE

Lỗi này thường xuất hiện khi có một virus nào đó xâm nhập và làm thay đổi các boot sector trên ổ HDD hoặc SSD của bạn. Vấn đề về driver cũng như phần cứng cũng có thể là nguyên nhân khiến BSOD với mã lỗi này hiện ra.

Cách khắc phục:

1. Diệt virus: cách này đơn giản, bạn có thể dùng bất kì phần mềm diệt virus nào đang có sẵn trong máy cũng được, hoặc xài ngay Windows Defender cũng vẫn ổn chứ không vấn đề gì. Đảm bảo rằng trình diệt virus của bạn đã được update mới nhất là ổn.

Trong trường hợp bạn không thể boot vào Windows, bạn có thể dùng một máy tính khác tải về phần mềm Easy Recovery Essentials. Sau đó, đánh file image này ra thành một đĩa CD có thể boot được theo hướng dẫn này. Sau đó bạn có thể khởi động lại máy bằng đĩa CD này và cho chạy quét virus.



2. Chạy lệnh chkdsk

Lệnh này sẽ kiểm tra tính toàn vẹn của dữ liệu trên ổ đĩa và sửa lỗi nếu có. Cách đơn giản nhất để chksdk tự chạy lên đó là bạn tắt đột ngột máy tính của mình bằng cách nhấn giữ vào nút nguồn. Thực hiện cỡ hai lần là chksdk sẽ bắt đầu xuất hiện khi bạn boot lại PC, và nếu nó phát hiện lỗi gì thì sẽ tự sửa luôn cho bạn.

NTFS_FILE_SYSTEM

Lỗi này cũng liên quan đến ổ cứng hoặc SSD, có điều nó liên quan nhiều hơn đến cấu trúc tập tin, thư mục của hệ thống. Cụ thể, file Ntfs.sys dùng để đọc và ghi dữ liệu lên phân vùng NTFS của Windows có thể bị lỗi gì đó. Đôi khi bạn chỉ cần khởi động lại máy là hết thôi, không còn bị lại nữa. Nhưng cũng có thể là do ổ đĩa của bạn đã bị phân mảnh quá nặng hoặc do xung đột của phần mềm chống virus.

Trong trường hợp này, bạn có thể xài công cụ Easy Recovery Essentials ở đây như đã đề cập ở hướng dẫn khắc phục lỗi INACCESSIBLE_BOOT_DEVICE. Khi bạn xài phần mềm này để boot máy thì sẽ có tùy chọn "Automated Repair", nó sẽ khiến phần mềm tự động scan lỗi và sửa cho bạn. Đừng quên chọn đúng tên ổ đĩa chứa Windows để tránh mất thời gian quét không cần thiết nhé.



THREAD_STUCK_IN_DEVICE_DRIVER

Vấn đề này thường xuất hiện do một lỗi driver, thường gặp nhất là driver của card đồ họa hay phần cứng nào đó liên quan đến video / đồ họa.

Cách khắc phục như sau:

1. Cài lại driver hoặc update driver mới cho card đồ họa của bạn

2. Tắt tăng tốc phần cứng bằng chip đồ họa: lưu ý là cách này xài tạm thôi, còn về lâu dài thì không lý do mà chúng ta lại tắt đi một tính năng rất tuyệt vời như thế này. Thực hiện như sau: vào Start > gõ chữ "Display" vào ô tìm kiếm. Vào Change Display Settings > Advanced Settings > Troubleshoot > Change Settings. Ở đây, bạn gạt thanh "Hardware acceleration" về trạng thái tắt (none). Sau đó khởi động lại máy tính của bạn.

3. Thay card đồ họa: Đây là giải pháp cuối cùng khi mà tất cả mọi cách đã không thành công. Nếu card bị hư, bạn có thể mang đi bảo hành hoặc mua card mới tùy tình huống của bạn là gì.

Tinhte.vn