• Thứ Ba, 29/01/2008 08:03 (GMT+7)

    Lỗi Registry của Windows XP

    Trong bài viết tháng trước, chúng ta đã cùng tìm hiểu về lỗi không tìm thấy thư mục Asms khi cài đặt lại Windows XP mà nguyên nhân thường do người dùng thích táy máy, thường xuyên cài đặt rồi gỡ bỏ phần mềm, ứng dụng. Tuy nhiên có những lỗi xuất hiện đầy "bất ngờ" dù trước đó bạn chẳng làm gì hết. Chẳng hạn như khi khởi động máy tính, màn hình hiển thị thông báo lỗi "Windows could not start because the following file is missing or corrupt C:\windows\system32\config\system". Cách khắc phục lỗi này cũng không khó nhưng với nhiều bạn đọc, giải pháp "ưa thích" vẫn là format ổ cứng và cài lại Windows. Hy vọng những thông tin trong bài viết này sẽ có ích cho bạn, tuy không dám chắc sẽ đạt kết quả tốt với tất cả trường hợp.

    Twindows\system32\config bị lỗi. Nếu để ý, bạn sẽ thấy các tập tin system, software, sam, security, default (cũng trong thư mục config) chứa những thông tin liên quan đến Registry mà chúng ta thường truy cập bằng lệnh "regdit". Chúng ta sẽ sử dụng Recovery Console trong đĩa cài đặt Windows XP để thay thế tập tin bị lỗi. Thực hiện như sau:

    Bước 1. Xóa tập tin lỗi và thay thế bằng các tập tin tạm.

    Khởi động máy với đĩa CD cài đặt Windows. Nhấn phím bất kỳ khi xuất hiện thông báo Press any key to boot from CD.

    Trong màn hình Welcome to setup, nhấn phím R (Repair) để Recovery Console (RC).

    Nếu hệ thống cài đặt nhiều hệ điều hành (HĐH) khác nhau, chọn HĐH bị cần (lưu ý: nếu nhấn Enter khi chưa chọn HĐH, chương trình sẽ tự lại máy).

    Nhập mật khẩu của tài khoản Administrator.

    Tại dấu nhắc của RC, gõ các dòng lệnh sau (nhấn Enter sau mỗi dòng lệnh).

    md tmp

    copy c:\windows\system32\config\system c:\windows\tmp\system.bak

    (với c: là phân vùng hệ thống chứa HĐH Windows)

    copy c:\windows\system32\config\software c:\windows\tmp\software.bak

    copy c:\windows\system32\config\sam c:\windows\tmp\sam.bak

    copy c:\windows\system32\config\security c:\windows\tmp\security.bak

    copy c:\windows\system32\config\default c:\windows\tmp\default.bak

    delete c:\windows\system32\config\system

    delete c:\windows\system32\config\software

    delete c:\windows\system32\config\sam

    delete c:\windows\system32\config\security

    delete c:\windows\system32\config\default

    copy c:\windows\repair\system c:\windows\system32\config\system

    copy c:\windows\repair\software c:\windows\system32\config\software

    copy c:\windows\repair\sam c:\windows\system32\config\sam

    copy c:\windows\repair\security c:\windows\system32\config\security

    copy c:\windows\repair\default c:\windows\system32\config\default

    exit

    Ghi chú:

    Trước khi xóa tập tin lỗi và thay thế bằng các tập tin tạm, bạn nên kiểm tra lỗi ổ cứng. Tại dấu nhắc của RC, gõ dòng lệnh chkdsk /p và nhấn Enter. Khởi động lại máy sau quá trình kiểm tra lỗi.

    Bạn có thể gặp thông báo lỗi khi sao lưu tập tin system.bak do tập tin system bị lỗi. Bỏ qua bước này và tiếp tục thực hiện việc sao chép các tập tin còn lại.
    Lệnh exit để khởi động lại máy tính. Kết thúc bước 1, lỗi đã được khắc phục và Windows có thể khởi động bình thường. Tuy nhiên, giao diện màn hình lúc này giống như vừa mới cài đặt Windows, các ứng dụng không thể khởi chạy do sai lệch thông tin trong Registry (hình 1).

    Bước 2. Mặc định, Recovery Console không có quyền truy cập thư mục phân vùng Windows định dạng NTFS. Do đó, bạn phải thiết lập lại quyền kiểm soát (take ownership) nếu muốn truy cập thư mục này. Thực hiện như sau:

    Khởi động lại máy ở hấn F8 để vào giao diện tùy chọn khởi động của Windows, chọn Đăng nhập máy tính với tài khoản thuộc nhóm Administrators.
    chọn Properties.

    Chọn tab Security và nhấn OK nếu hộp thoại về bảo mật xuất hiện.

    Chọn mục Advanced. Trong cửa sổ Advanced, chọn tab Owner.

    Trong Name list, chọn tên người dùng đã đăng nhập với quyền Administrator hoặc nhóm Administrators. (Ghi chú: Nếu chọn nhóm Administrators, các tài khoản Administrator đều có thể truy cập vào thư mục này). Đánh dấu mục "Replace owner on subcontainers and objects" nếu muốn thay đổi có tác dụng với các thư mục con (hình 2).

    Chọn OK, bạn sẽ nhận được thông báo tiếng Anh có nghĩa sau: "Bạn không được phép truy xuất nội dung của thư mục này. Bạn có muốn thay đổi để lấy lại toàn bộ quyền kiểm soát không? Chọn Yes nếu bạn muốn thay đổi". Nhấn Yes để chấp nhận.

    Chọn OK để xác nhận các thiết lập. Sau khi "take ownership", bạn có toàn truy xuất nội dung thư mục System Volume Information .

    Ghi chú

    Mặc định, Windows XP Professional sử dụng tính năng Sharing, bạn hãy tắt tính năng này để hiển thị tab Security. bỏ tùy chọn mục Sharing.

    Thư mục System Volume Information có thuộc tính "super hidden", để truy cập được thư mục này, bỏ tùy chọn Hide protected operating syatem files (recommended) và chọn Show hidden files and folders trong muc Hidden file and folders. Chọn Yes khi xuất hiện cảnh báo và nhấn OK xác nhận thay đổi.

    Bước 3. Trích xuất các tập tin system, software, sam, security, default từ điểm khôi phục (restore point - RP) của System Restore. System Restore tạo những RP để sao lưu Registry, các tập tin hệ thống quan trọng và cất giữ chúng trong System Volume Information.

    Trong thư mục System Volume Information, bạn sẽ thấy 1 (hoặc nhiều) thư mục _restore{xxx}, chẳng hạn như _restore{E09771B8-CEC2-4EF5-A5C9-847F169886E4}. Mỗi _restore{xxx} sẽ có những thư mục con như RP1, RP2, RP3... Để chọn RP được tạo ra gần nhất trước khi Windows bị lỗi, nhấn phải chuột, chọn View. Details hoặc đơn giản hơn, chọn RP có số thứ tự lớn nhất.

    Trong RP đó, tìm thư mục con Snapshot, sao chép các tập tin _registry_user_.default, _registry_machine_security, _registry_machine_software, _registry_machine_system, _registry_machine_sam vào thư mục windows\tmp (hình 3).

    Trong thư mục windows\tmp, lần lượt đổi tên các tập tin vừa sao chép thành security, software, system, sam dùng để thay thế các tập tin tạm ở bước 1.

    Bước 4.
    Thay thế tập tin tạm bằng những tập tin nguyên vẹn từ RP.

    Khởi động lại máy tính bằng đĩa CD cài đặt Windows để vào Recovery Console. Gõ các dòng lệnh sau, nhấn Enter sau mỗi dòng lệnh.

    delete c:\windows\system32\config\sam

    delete c:\windows\system32\config\security

    delete c:\windows\system32\config\software

    delete c:\windows\system32\config\default

    delete c:\windows\system32\config\system

    copy c:\windows\tmp\software c:\windows\system32\config\software

    copy c:\windows\tmp\system c:\windows\system32\config\system

    copy c:\windows\tmp\sam c:\windows\system32\config\sam

    copy c:\windows\tmp\security c:\windows\system32\config\security

    copy c:\windows\tmp\default c:\windows\system32\config\default

    exit

    Bước 5. Khôi phục hệ thống bằng System Restore.

    Khởi động Windows, chọn Start. Programs. Accessories. System Tools. System Restore, chọn Restore my computer to an earlier time, nhấn Next. Chọn thời điểm khôi phục gần nhất trước khi xảy ra lỗi, nhấn Next theo hướng dẫn trên màn hình. Khởi động lại máy tính để kết thúc việc khắc phục lỗi.

    Ghi chú

    Trường hợp System Restore gặp sự cố (xem thêm bài “Khắc phục sự cố System Restore”, ID: A0710_153) hoặc vì nguyên nhân nào đó, các RP bị hỏng dẫn đến các tập tin system, software, sam, security, default không còn nguyên vẹn. Bạn chỉ nên chép lại tập tin bị hỏng (dựa vào thông báo lỗi của Windows) ở bước 1, bỏ qua các bước sau. Khởi động vào Windows, kiểm tra hệ thống và khắc phục những lỗi phát sinh tùy trường hợp cụ thể.

    Đông Quân

    ID: A0801_129