{
  "project": {
    "name": "PC Care Center AI Knowledge Hub",
    "subtitle": "Universal PC Knowledge & AI Reference",
    "version": "0.3.0-preview",
    "knowledge_status": "Expanded diagnostic procedures and anonymized WD Blue case study",
    "last_updated": "2026-11-09",
    "language": "vi"
  },
  "categories": [
    {
      "id": "software",
      "name": "Software Encyclopedia",
      "description": "Kiến trúc, yêu cầu, module, dữ liệu, UX/UI và lộ trình PC Care Center.",
      "icon": "🧩"
    },
    {
      "id": "technical",
      "name": "PC Technical Encyclopedia",
      "description": "Kiến thức kỹ thuật máy tính, lưu trữ, Windows và chẩn đoán.",
      "icon": "🖥️"
    },
    {
      "id": "diagnostics",
      "name": "Diagnostic Guides",
      "description": "Quy trình kiểm tra, bằng chứng và cách diễn giải kết quả.",
      "icon": "🩺"
    },
    {
      "id": "ai",
      "name": "AI Instructions",
      "description": "Quy tắc để AI đọc, phân tích và trả lời dựa trên kho tri thức.",
      "icon": "🤖"
    }
  ],
  "articles": [
    {
      "id": "pcc-overview",
      "title": "Tổng quan PC Care Center",
      "category": "software",
      "summary": "Ứng dụng Windows portable, định hướng offline-first và chẩn đoán an toàn.",
      "status": "direction",
      "statusLabel": "Định hướng đã thống nhất",
      "updated": "2026-11-09",
      "tags": [
        "portable",
        "offline",
        "Windows",
        "read-only"
      ],
      "content": [
        {
          "heading": "Định hướng sản phẩm",
          "body": "PC Care Center được định hướng là ứng dụng Windows portable, ưu tiên hoạt động offline, chẩn đoán an toàn và hạn chế tác động lên hệ thống. Ứng dụng không nên tự ý sửa chữa hoặc thay đổi dữ liệu của người dùng."
        },
        {
          "heading": "Nguyên tắc an toàn",
          "list": [
            "Ưu tiên thao tác đọc và chẩn đoán trước.",
            "Yêu cầu xác nhận trước các hành động có thể tạo dữ liệu hoặc thay đổi trạng thái.",
            "Không tự tải, cài đặt hoặc chạy công cụ bên ngoài nếu chưa được người dùng đồng ý.",
            "Cho phép bỏ qua công cụ bên ngoài và tiếp tục các bước kiểm tra khác.",
            "Không ghi dữ liệu lên ổ đĩa đang bị nghi ngờ lỗi."
          ]
        },
        {
          "heading": "Giới hạn xác minh",
          "body": "Đây là bản tóm tắt định hướng và quyết định đã ghi nhận. Nó không chứng minh rằng mọi nguyên tắc đã được triển khai đầy đủ trong mã nguồn hiện tại."
        }
      ],
      "sources": [
        "Tài liệu yêu cầu điều chỉnh định hướng PC Care Center – Portable Diagnostic Application – Lightweight & Independent Records (đã tìm thấy trong tài liệu dự án).",
        "Các quyết định dự án được ghi nhận đến 2026-11-09."
      ]
    },
    {
      "id": "storage-health-center",
      "title": "Storage Health Center 2.1",
      "category": "software",
      "summary": "Module chuyên biệt kiểm tra sức khỏe HDD/SSD được tích hợp trong PC Care Center.",
      "status": "decision",
      "statusLabel": "Quyết định kiến trúc",
      "updated": "2026-11-09",
      "tags": [
        "HDD",
        "SSD",
        "SMART",
        "Storage Health Center"
      ],
      "content": [
        {
          "heading": "Quyết định tích hợp",
          "body": "Storage Health Center 2.1 được chọn làm module chuyên biệt bên trong một ứng dụng PC Care Center Portable duy nhất, thay vì duy trì hai ứng dụng riêng."
        },
        {
          "heading": "Công cụ bên ngoài",
          "body": "Ưu tiên phiên bản Portable. Nếu không có, hướng dẫn người dùng tải/cài bản chính thức. Người dùng luôn có thể bỏ qua. Không tự tải, cài hoặc chạy công cụ bên ngoài khi chưa được đồng ý."
        },
        {
          "heading": "Phạm vi cần giữ nguyên",
          "body": "Các quy trình và quy tắc an toàn đã thống nhất của Storage Health Center 2.1 cần được bảo toàn khi tích hợp. Nội dung chi tiết từng workflow sẽ được bổ sung từ tài liệu và bằng chứng gốc."
        }
      ],
      "sources": [
        "Quyết định kiến trúc Storage Health Center 2.1 được ghi nhận ngày 2026-11-09."
      ]
    },
    {
      "id": "independent-json-records",
      "title": "Hồ sơ chẩn đoán độc lập dạng JSON",
      "category": "software",
      "summary": "Định hướng mỗi kết quả chẩn đoán có thể được lưu và mở độc lập.",
      "status": "requirement",
      "statusLabel": "Yêu cầu cần đối chiếu triển khai",
      "updated": "2026-11-09",
      "tags": [
        "JSON",
        "diagnostic record",
        "portable",
        "data"
      ],
      "content": [
        {
          "heading": "Yêu cầu được ghi nhận",
          "list": [
            "Mỗi kết quả chẩn đoán là một tệp JSON độc lập.",
            "Người dùng chủ động chọn tệp để mở; không tự quét ổ đĩa.",
            "JSON là định dạng chính; PDF là tùy chọn khi người dùng yêu cầu.",
            "Dữ liệu ngoài/được nhập cần được cô lập và xử lý thận trọng."
          ]
        },
        {
          "heading": "Điểm kiến trúc cần làm rõ",
          "body": "Một phần code trước đây sử dụng SQLite cho hồ sơ máy tính, phiên kiểm tra và nhật ký ứng dụng. Cần xác nhận ranh giới giữa SQLite (dữ liệu nội bộ ứng dụng) và JSON (hồ sơ kết quả chẩn đoán độc lập). Không được tự kết luận rằng một phương án đã thay thế hoàn toàn phương án kia."
        }
      ],
      "sources": [
        "Tài liệu yêu cầu điều chỉnh định hướng PC Care Center – Portable Diagnostic Application – Lightweight & Independent Records.",
        "Code snippet StorageService.cs được tìm thấy trong tài liệu dự án."
      ]
    },
    {
      "id": "storage-service-evidence",
      "title": "StorageService và SQLite – bằng chứng mã nguồn",
      "category": "software",
      "summary": "Một đoạn mã StorageService cho thấy các thao tác lưu trữ SQLite và kiểm tra an toàn.",
      "status": "evidence",
      "statusLabel": "Có bằng chứng mã nguồn trích đoạn",
      "updated": "2026-11-09",
      "tags": [
        "SQLite",
        "StorageService",
        "quick_check",
        "schema"
      ],
      "content": [
        {
          "heading": "Những gì đoạn mã thể hiện",
          "list": [
            "Sử dụng Microsoft.Data.Sqlite.",
            "Có các bảng HoSoMayTinh, PhienKiemTra và NhatKyUngDung.",
            "Có kiểm tra đường dẫn, Windows file identity và trạng thái SQLite.",
            "Có sử dụng PRAGMA quick_check và kiểm tra schema."
          ]
        },
        {
          "heading": "Không được suy diễn",
          "body": "Đây chỉ là bằng chứng từ đoạn mã được tìm thấy, không phải kết quả rà soát toàn bộ source code. Không thể từ đó kết luận toàn bộ hệ thống lưu trữ đã an toàn hoặc hoàn thiện."
        }
      ],
      "sources": [
        "Trích đoạn StorageService.cs được tìm thấy trong tài liệu dự án."
      ]
    },
    {
      "id": "filesystem-guard",
      "title": "WindowsFileSystemGuard – phạm vi bảo vệ",
      "category": "software",
      "summary": "Helper kiểm tra đường dẫn và một số đặc tính file system; không phải ranh giới bảo mật hoàn chỉnh.",
      "status": "evidence",
      "statusLabel": "Có bằng chứng mã nguồn và test giới hạn",
      "updated": "2026-11-09",
      "tags": [
        "junction",
        "symbolic link",
        "hard link",
        "path traversal"
      ],
      "content": [
        {
          "heading": "Phạm vi được ghi nhận",
          "body": "WindowsFileSystemGuard có kiểm tra một số trường hợp như reparse point và hard link. Comment trong mã nêu rõ helper này là kiểm tra ở cấp ứng dụng, không phải ranh giới bảo mật hoàn chỉnh và không giải quyết triệt để TOCTOU."
        },
        {
          "heading": "Bằng chứng kiểm thử",
          "body": "Có ghi nhận bộ SafetyGuardTests 13/13 PASS cho các trường hợp đường dẫn bên trong root, root, ngoài root, traversal, junction, directory symlink, file symlink và hard link. Kết quả này chỉ xác nhận các ca trong bộ test tương ứng, không chứng minh mọi tình huống filesystem đều được xử lý."
        }
      ],
      "sources": [
        "WindowsFileSystemGuard.cs được tìm thấy trong tài liệu dự án.",
        "Tóm tắt kết quả SafetyGuardTests được ghi nhận trong tiến trình dự án."
      ]
    },
    {
      "id": "storage-read-test",
      "title": "Storage Service Read Test",
      "category": "software",
      "summary": "Một log kiểm thử ghi nhận quick_check và đọc được dữ liệu trong kịch bản thử nghiệm.",
      "status": "test",
      "statusLabel": "Test cụ thể đã PASS",
      "updated": "2026-11-09",
      "tags": [
        "SQLite",
        "quick_check",
        "read test",
        "test evidence"
      ],
      "content": [
        {
          "heading": "Kết quả được ghi nhận",
          "list": [
            "SQLite quick_check: ok.",
            "Đọc được 1 permanent profile và 1 temporary session trong kịch bản test.",
            "Tìm thấy các ID mong đợi.",
            "Log ghi ALL STORAGE READ TESTS PASSED."
          ]
        },
        {
          "heading": "Giới hạn",
          "body": "Đây là kết quả của kịch bản Storage Service Read Test cụ thể, không phải xác nhận toàn bộ ứng dụng, toàn bộ schema hay mọi tình huống lưu trữ đều đã được kiểm thử."
        }
      ],
      "sources": [
        "Log STORAGE SERVICE READ TEST được tìm thấy trong tài liệu dự án."
      ]
    },
    {
      "id": "hdd-diagnostic-workflow",
      "title": "Khung quy trình kiểm tra sức khỏe HDD/SSD",
      "category": "diagnostics",
      "summary": "Khung phân lớp quy trình chẩn đoán lưu trữ; nội dung chi tiết sẽ được chuẩn hóa từ quy trình đã thực hiện.",
      "status": "draft",
      "statusLabel": "Khung ban đầu – cần bổ sung",
      "updated": "2026-11-09",
      "tags": [
        "HDD",
        "SSD",
        "SMART",
        "Event Viewer",
        "backup"
      ],
      "content": [
        {
          "heading": "Các lớp kiểm tra cần có",
          "list": [
            "Ghi nhận triệu chứng và phạm vi ảnh hưởng.",
            "Kiểm tra BIOS/UEFI và Windows nhận diện thiết bị.",
            "Kiểm tra trạng thái thiết bị và thông tin ổ đĩa.",
            "Đọc SMART bằng công cụ phù hợp.",
            "Đối chiếu Event Viewer với các sự kiện liên quan lưu trữ.",
            "Kiểm tra kết nối, nguồn và cáp khi có căn cứ.",
            "Ưu tiên sao lưu dữ liệu quan trọng trước các thử nghiệm có rủi ro.",
            "Tổng hợp bằng chứng, giới hạn và bước tiếp theo."
          ]
        },
        {
          "heading": "Cảnh báo",
          "body": "Đây là khung tổ chức nội dung, không phải hướng dẫn thao tác hoàn chỉnh. Cần bổ sung lệnh, đường dẫn giao diện, cách diễn giải, điều kiện dừng và nguồn chính thức trước khi phát hành như một quy trình chuẩn."
        }
      ],
      "sources": [
        "Các trao đổi và quy trình kiểm tra ổ cứng đã thực hiện trong dự án."
      ]
    },
    {
      "id": "ai-grounding-rules",
      "title": "Quy tắc AI sử dụng Knowledge Hub",
      "category": "ai",
      "summary": "AI phải phân biệt bằng chứng dự án với kiến thức kỹ thuật tổng quát và không tự suy diễn trạng thái triển khai.",
      "status": "policy",
      "statusLabel": "Quy tắc sử dụng",
      "updated": "2026-11-09",
      "tags": [
        "AI",
        "evidence",
        "confidence",
        "sources"
      ],
      "content": [
        {
          "heading": "Quy tắc bắt buộc",
          "list": [
            "Phân biệt quyết định đã chốt, yêu cầu, đề xuất, triển khai thực tế và kết quả kiểm thử.",
            "Không coi tài liệu yêu cầu là bằng chứng tính năng đã được triển khai.",
            "Không coi một test PASS là bằng chứng toàn hệ thống hoàn thiện.",
            "Nêu rõ khi thiếu mã nguồn, log, phiên bản hoặc nguồn xác minh.",
            "Khi dùng kiến thức kỹ thuật bên ngoài, ưu tiên tài liệu chính thức và ghi nguồn.",
            "Nêu mức độ chắc chắn, giới hạn và cách kiểm chứng tiếp theo.",
            "Không đề xuất thao tác phá hủy hoặc ghi lên thiết bị nghi ngờ lỗi khi chưa đánh giá rủi ro và có xác nhận phù hợp."
          ]
        },
        {
          "heading": "Mục tiêu",
          "body": "Giúp ChatGPT, Claude, Gemini hoặc AI khác hiểu bối cảnh dự án và phân tích các kết quả chẩn đoán mà không nhầm lẫn dữ liệu thực tế với kiến thức tổng quát."
        }
      ],
      "sources": [
        "Quy tắc biên soạn Knowledge Hub được tổng hợp từ các quyết định dự án."
      ]
    },
    {
      "id": "open-issues",
      "title": "Các điểm cần xác minh tiếp",
      "category": "software",
      "summary": "Danh sách các điểm chưa đủ bằng chứng để kết luận hoặc cần đối chiếu với trạng thái mới nhất.",
      "status": "open",
      "statusLabel": "Chưa xác minh",
      "updated": "2026-11-09",
      "tags": [
        "roadmap",
        "UX Foundation",
        "SQLite",
        "JSON",
        "source code"
      ],
      "content": [
        {
          "heading": "Danh sách mở",
          "list": [
            "Đối chiếu SQLite nội bộ và JSON hồ sơ chẩn đoán độc lập.",
            "Kiểm tra trạng thái triển khai mới nhất so với các tài liệu yêu cầu.",
            "Hoàn thiện checkpoint UX Foundation 1.0 trước khi tiếp tục mở rộng module theo lộ trình đã thống nhất.",
            "Đối chiếu cấu trúc sidebar hiện tại với định hướng 7 khu vực; tài liệu trước đó ghi nhận XAML hiển thị 5 mục.",
            "Bổ sung source code và log kiểm thử mới nhất để có thể cập nhật code map và trạng thái thực tế."
          ]
        },
        {
          "heading": "Nguyên tắc",
          "body": "Các mục này là câu hỏi mở được ghi nhận từ bối cảnh hiện có, không phải khẳng định rằng hiện trạng vẫn chưa thay đổi."
        }
      ],
      "sources": [
        "Tóm tắt tiến độ và quyết định dự án đến 2026-11-09."
      ]
    },
    {
      "id": "smart-overview",
      "title": "SMART là gì? Cách đọc tình trạng sức khỏe ổ cứng",
      "category": "technical",
      "summary": "Hiểu SMART, giới hạn của trạng thái Good/Bad và vì sao cần đọc từng thuộc tính cùng bối cảnh thiết bị.",
      "status": "reference",
      "statusLabel": "Kiến thức kỹ thuật có nguồn",
      "updated": "2026-11-09",
      "tags": [
        "SMART",
        "HDD",
        "SSD",
        "health",
        "diagnostics"
      ],
      "content": [
        {
          "heading": "SMART là gì?",
          "body": "SMART (Self-Monitoring, Analysis and Reporting Technology) là tập hợp cơ chế và dữ liệu tự giám sát do thiết bị lưu trữ cung cấp. Công cụ đọc SMART lấy thông tin từ firmware ổ đĩa; mức độ chi tiết và cách mã hóa thuộc tính có thể khác nhau theo nhà sản xuất, dòng sản phẩm và giao thức."
        },
        {
          "heading": "Không nên kết luận chỉ từ nhãn Good",
          "body": "Nhãn tổng quát như Good/Healthy là một tín hiệu tóm tắt, không phải lời bảo đảm ổ đĩa không thể hỏng. Cần xem các thuộc tính liên quan, giá trị thô/chuẩn hóa, lịch sử thay đổi, log lỗi, triệu chứng thực tế và tài liệu của nhà sản xuất. Một số thuộc tính ATA có ý nghĩa hoặc cách mã hóa riêng theo hãng."
        },
        {
          "heading": "Cách diễn giải an toàn",
          "list": [
            "Ghi nhận model, firmware, giao tiếp và thời điểm đọc SMART.",
            "Lưu toàn bộ báo cáo gốc trước khi diễn giải.",
            "So sánh xu hướng theo thời gian, không chỉ một ảnh chụp đơn lẻ.",
            "Đối chiếu lỗi đọc/ghi, sector được remap hoặc pending (nếu thiết bị báo cáo các thuộc tính này), cùng Event Viewer và triệu chứng.",
            "Nếu dữ liệu quan trọng hoặc có dấu hiệu lỗi đọc, ưu tiên sao lưu trước khi chạy kiểm tra kéo dài."
          ]
        },
        {
          "heading": "Giới hạn",
          "body": "SMART không dự đoán chắc chắn thời điểm hỏng và không phải phép kiểm tra toàn diện mọi bề mặt dữ liệu. Ý nghĩa một thuộc tính cụ thể phải được đối chiếu tài liệu nhà sản xuất hoặc nguồn kỹ thuật đáng tin cậy."
        }
      ],
      "sources": [
        {
          "title": "smartmontools documentation",
          "url": "https://www.smartmontools.org/",
          "note": "Bộ công cụ và tài liệu đọc/giám sát SMART."
        },
        {
          "title": "Microsoft Learn – Troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Đối chiếu log Windows và quy trình kiểm tra lưu trữ."
        }
      ]
    },
    {
      "id": "nvme-health-log",
      "title": "NVMe SMART / Health Information Log",
      "category": "technical",
      "summary": "Giải thích Critical Warning, Available Spare, Percentage Used, Media Errors, Power On Hours và Unsafe Shutdowns.",
      "status": "reference",
      "statusLabel": "Kiến thức kỹ thuật có nguồn",
      "updated": "2026-11-09",
      "tags": [
        "NVMe",
        "SMART",
        "Critical Warning",
        "Percentage Used",
        "Media Errors"
      ],
      "content": [
        {
          "heading": "NVMe có bộ thông tin sức khỏe riêng",
          "body": "NVMe định nghĩa SMART / Health Information Log với các trường như Critical Warning, Temperature, Available Spare, Available Spare Threshold, Percentage Used, Data Units Read/Written, Power Cycles, Power On Hours, Unsafe Shutdowns, Media Errors và Error Information Log Entry Count."
        },
        {
          "heading": "Các trường quan trọng",
          "list": [
            "Critical Warning: các bit cảnh báo trạng thái hiện tại, có thể phản ánh spare thấp, nhiệt độ vượt ngưỡng, độ tin cậy suy giảm hoặc thiết bị chuyển sang chỉ đọc.",
            "Available Spare: tỷ lệ dung lượng dự phòng còn lại do bộ điều khiển báo cáo; cần so với Available Spare Threshold.",
            "Percentage Used: ước tính phần trăm tuổi thọ endurance đã sử dụng theo dự đoán của nhà sản xuất. Giá trị 100 không tự động đồng nghĩa thiết bị đã hỏng; đặc tả cho phép vượt 100.",
            "Media Errors: số lần bộ điều khiển phát hiện lỗi toàn vẹn dữ liệu không thể khôi phục theo định nghĩa NVMe.",
            "Unsafe Shutdowns: số lần mất nguồn/tắt không an toàn theo điều kiện đếm của bộ điều khiển."
          ]
        },
        {
          "heading": "Cách đọc thận trọng",
          "body": "Không áp một ngưỡng chung cho mọi mẫu SSD. Đọc Critical Warning và các trường liên quan cùng tài liệu của nhà sản xuất, firmware, nhiệt độ, workload và xu hướng. Percentage Used là ước tính endurance, không phải đồng hồ đếm ngược đến lúc hỏng."
        },
        {
          "heading": "Nguồn tiêu chuẩn",
          "body": "Microsoft Learn mô tả cấu trúc NVME_HEALTH_INFO_LOG và ý nghĩa các trường; đây là nguồn tham chiếu API Windows cho cấu trúc log NVMe."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – NVME_HEALTH_INFO_LOG structure",
          "url": "https://learn.microsoft.com/en-us/windows/win32/api/nvme/ns-nvme-nvme_health_info_log",
          "note": "Định nghĩa các trường NVMe SMART / Health Information Log."
        }
      ]
    },
    {
      "id": "windows-storage-events",
      "title": "Event Viewer: các Event ID thường gặp khi có lỗi lưu trữ",
      "category": "technical",
      "summary": "Đọc các sự kiện 55, 98, 129, 153 và 157 trong bối cảnh; không quy tất cả thành lỗi ổ cứng.",
      "status": "reference",
      "statusLabel": "Kiến thức kỹ thuật có nguồn",
      "updated": "2026-11-09",
      "tags": [
        "Event Viewer",
        "Event ID 55",
        "129",
        "153",
        "157",
        "Windows"
      ],
      "content": [
        {
          "heading": "Các Event ID được Microsoft nêu trong hướng dẫn",
          "list": [
            "55: cấu trúc hệ thống tệp trên đĩa bị hỏng hoặc không sử dụng được.",
            "98: volume cần được đưa offline để thực hiện thao tác kiểm tra/khắc phục được chỉ định.",
            "129: thiết bị/controller storage được yêu cầu reset.",
            "153: thao tác I/O tại địa chỉ khối logic được thử lại.",
            "157: đĩa bị tháo bất ngờ (surprise removed)."
          ]
        },
        {
          "heading": "Diễn giải đúng ngữ cảnh",
          "body": "Các sự kiện này là manh mối để điều tra, không phải chẩn đoán độc lập rằng bản thân HDD/SSD đã hỏng. Nguyên nhân có thể nằm ở thiết bị, cáp/kết nối, controller, driver, firmware, nguồn, đường truyền hoặc cấu hình lưu trữ. Cần ghép timestamp, thiết bị/volume, tần suất, triệu chứng và các sự kiện lân cận."
        },
        {
          "heading": "Quy trình đọc log",
          "list": [
            "Ghi lại Provider, Event ID, Level, timestamp và toàn bộ General/Details.",
            "Xác định disk/volume/device path được nhắc tới; tránh nhầm Disk number giữa các lần khởi động hoặc thay đổi phần cứng.",
            "Tìm sự kiện lặp lại và tương quan với thời điểm treo máy, mất kết nối hoặc thao tác I/O.",
            "Đối chiếu Device Manager, SMART, firmware/driver và kết nối vật lý khi phù hợp.",
            "Không chạy lệnh sửa chữa chỉ vì nhìn thấy một Event ID đơn lẻ."
          ]
        },
        {
          "heading": "Phạm vi nguồn",
          "body": "Danh sách ở đây được Microsoft nêu trong hướng dẫn xử lý lỗi hỏng dữ liệu và lỗi đĩa trên Windows Server. Trên máy Windows client, vẫn cần xác nhận Provider, nội dung sự kiện và ngữ cảnh thực tế; không áp dụng máy móc mọi hướng dẫn server."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – Guidance for troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Nêu Event ID 55, 98, 129, 153 và 157 cùng checklist điều tra."
        },
        {
          "title": "Microsoft Learn – MPIO troubleshooting guidance",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/windows-server-mpio-troubleshooting",
          "note": "Bổ sung bối cảnh Event 129, 153, 11 trong môi trường MPIO."
        }
      ]
    },
    {
      "id": "chkdsk-modes",
      "title": "CHKDSK: phân biệt kiểm tra và sửa chữa",
      "category": "technical",
      "summary": "Hiểu /scan, /f và /r; lựa chọn chế độ phù hợp và tránh chạy thao tác sửa chữa một cách máy móc.",
      "status": "reference",
      "statusLabel": "Kiến thức kỹ thuật có nguồn",
      "updated": "2026-11-09",
      "tags": [
        "CHKDSK",
        "/scan",
        "/f",
        "/r",
        "NTFS",
        "filesystem"
      ],
      "content": [
        {
          "heading": "CHKDSK kiểm tra gì?",
          "body": "CHKDSK kiểm tra hệ thống tệp và metadata của volume. Nó không thay thế công cụ đọc SMART, không kiểm tra toàn diện sức khỏe điện tử của SSD/HDD và không tự xác định mọi nguyên nhân gây lỗi phần cứng."
        },
        {
          "heading": "Khác biệt giữa các tham số",
          "list": [
            "chkdsk X: /scan: thực hiện scan trực tuyến trên NTFS để kiểm tra lỗi hệ thống tệp.",
            "chkdsk X: /f: sửa lỗi hệ thống tệp; cần khóa volume và có thể yêu cầu chạy ở lần khởi động sau nếu không khóa được.",
            "chkdsk X: /r: tìm bad sectors và cố gắng khôi phục thông tin còn đọc được; bao gồm chức năng của /f và có thể mất nhiều thời gian.",
            "Không dùng /f hoặc /r như bước đầu tiên khi dữ liệu đang có nguy cơ và chưa có bản sao lưu phù hợp."
          ]
        },
        {
          "heading": "Lựa chọn an toàn",
          "body": "Khi chỉ muốn kiểm tra NTFS online, /scan là lựa chọn khác với lệnh sửa chữa. Trước khi dùng /f hoặc /r, cần đánh giá tình trạng dữ liệu, khả năng sao lưu, thời gian downtime và nguy cơ thiết bị đang suy yếu. Với ổ nghi lỗi vật lý, ưu tiên bảo toàn dữ liệu và đánh giá chuyên môn trước thao tác đọc kéo dài."
        },
        {
          "heading": "Lưu ý với SSD",
          "body": "Microsoft lưu ý việc chạy full-surface scans lặp lại, đặc biệt /r, có thể tạo thêm chu kỳ ghi/xóa không cần thiết trên SSD; kiểm tra thỉnh thoảng không đồng nghĩa gây hại đáng kể. Cần tránh lạm dụng kiểm tra toàn bề mặt như một thói quen."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – chkdsk command reference",
          "url": "https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk",
          "note": "Cú pháp và ý nghĩa tham số CHKDSK."
        },
        {
          "title": "Microsoft Learn – CHKDSK details and exit codes",
          "url": "https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk?tabs=powershell",
          "note": "Thông tin thêm về chế độ scan và mã thoát."
        }
      ]
    },
    {
      "id": "bad-sector-vs-filesystem",
      "title": "Bad Sector, lỗi hệ thống tệp và lỗi I/O: không phải một khái niệm",
      "category": "technical",
      "summary": "Phân biệt lỗi vùng lưu trữ vật lý/logic, metadata filesystem và lỗi truy xuất I/O để tránh chẩn đoán nhầm.",
      "status": "draft",
      "statusLabel": "Bản kiến thức cần rà soát mở rộng",
      "updated": "2026-11-09",
      "tags": [
        "Bad Sector",
        "I/O",
        "filesystem",
        "HDD",
        "SSD"
      ],
      "content": [
        {
          "heading": "Ba lớp vấn đề khác nhau",
          "list": [
            "Lỗi media/sector: thiết bị hoặc lớp lưu trữ không đọc/ghi được một vùng dữ liệu theo cách bình thường; cách báo cáo phụ thuộc giao thức và firmware.",
            "Lỗi hệ thống tệp: cấu trúc metadata như bảng phân bổ, chỉ mục hoặc journal không nhất quán; có thể phát sinh do mất điện, lỗi phần mềm hoặc lỗi lưu trữ bên dưới.",
            "Lỗi I/O: thao tác đọc/ghi thất bại hoặc bị thử lại; nguyên nhân có thể là media, kết nối, controller, driver, firmware hoặc nguồn."
          ]
        },
        {
          "heading": "Vì sao không thể kết luận từ một dấu hiệu",
          "body": "Một Event ID, một thông báo CHKDSK hoặc một thuộc tính SMART đơn lẻ thường không đủ xác định nguyên nhân gốc. Cần đối chiếu nhiều lớp bằng chứng và chuỗi thời gian."
        },
        {
          "heading": "Nguyên tắc xử lý",
          "body": "Nếu dữ liệu quan trọng và thiết bị có dấu hiệu đọc lỗi, treo, biến mất hoặc phát tiếng bất thường, ưu tiên giảm thao tác không cần thiết và sao lưu/khôi phục theo mức độ rủi ro. Không chạy lặp lại benchmark, surface scan hoặc repair trước khi có kế hoạch bảo toàn dữ liệu."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – Guidance for troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Đối chiếu filesystem corruption, disk errors và storage path."
        },
        {
          "title": "Microsoft Learn – chkdsk",
          "url": "https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk",
          "note": "Phạm vi kiểm tra/sửa lỗi hệ thống tệp."
        }
      ]
    },
    {
      "id": "storage-triage-sequence",
      "title": "Trình tự phân loại sự cố HDD/SSD an toàn",
      "category": "diagnostics",
      "summary": "Một luồng triage ưu tiên bảo toàn dữ liệu trước khi thực hiện các phép kiểm tra nặng hoặc sửa chữa.",
      "status": "draft",
      "statusLabel": "Quy trình nền – cần kiểm chứng theo tình huống",
      "updated": "2026-11-09",
      "tags": [
        "HDD",
        "SSD",
        "backup",
        "triage",
        "safety"
      ],
      "content": [
        {
          "heading": "Bước 1 — Đánh giá mức độ khẩn cấp",
          "list": [
            "Có dữ liệu quan trọng chưa sao lưu không?",
            "Ổ có biến mất, disconnect/reconnect, treo hệ thống, lỗi đọc/ghi hoặc tiếng cơ khí bất thường không?",
            "Nếu có dấu hiệu nguy cấp, hạn chế thao tác và ưu tiên phương án sao lưu/khôi phục phù hợp."
          ]
        },
        {
          "heading": "Bước 2 — Thu thập dữ liệu ít xâm lấn",
          "list": [
            "Ghi model, serial (lưu nội bộ, không công khai), firmware, bus và dung lượng.",
            "Ghi triệu chứng, thời điểm, tần suất và thay đổi gần đây.",
            "Đọc SMART/Health log bằng công cụ phù hợp và lưu báo cáo gốc.",
            "Đọc Event Viewer, Device Manager và trạng thái Windows nhận diện thiết bị."
          ]
        },
        {
          "heading": "Bước 3 — Phân loại bằng chứng",
          "list": [
            "SMART/Health có cảnh báo?",
            "Có lỗi media hoặc xu hướng chỉ số xấu đi?",
            "Event Viewer có lỗi lặp lại cùng thiết bị/thời điểm?",
            "Có khả năng vấn đề nằm ở cáp, cổng, nguồn, controller, driver hoặc firmware?",
            "Có lỗi filesystem độc lập với tình trạng media không?"
          ]
        },
        {
          "heading": "Bước 4 — Chọn phép kiểm tra tiếp theo",
          "body": "Chỉ chọn phép kiểm tra khi biết mục tiêu, tác động, thời gian và điều kiện dừng. CHKDSK scan, self-test của nhà sản xuất và kiểm tra kết nối có mục đích khác nhau; không gộp chúng thành một bài test duy nhất."
        },
        {
          "heading": "Bước 5 — Ghi kết luận có giới hạn",
          "body": "Kết luận phải nêu bằng chứng, giả thuyết, mức độ chắc chắn, điều chưa loại trừ và hành động tiếp theo. Không tuyên bố ổ khỏe chỉ vì một bài test đơn lẻ PASS."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – Troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Checklist điều tra lỗi lưu trữ, log và filesystem."
        },
        {
          "title": "Microsoft Learn – NVMe health information log",
          "url": "https://learn.microsoft.com/en-us/windows/win32/api/nvme/ns-nvme-nvme_health_info_log",
          "note": "Các trường health log NVMe."
        }
      ]
    },
    {
      "id": "wd-blue-2tb-case-study",
      "title": "Case Study: Điều tra WD Blue 2TB bị mất kết nối gián đoạn",
      "category": "diagnostics",
      "summary": "Hồ sơ thực tế đã kiểm tra: triệu chứng, nhận diện thiết bị, SMART, Event Viewer, powercfg và kế hoạch cô lập SATA.",
      "status": "evidence",
      "statusLabel": "Hồ sơ thực tế – có phần việc đang chờ",
      "updated": "2026-11-09",
      "tags": [
        "WD Blue",
        "WD20EZBX",
        "2TB",
        "SATA",
        "SMART",
        "Event 51",
        "Event 157"
      ],
      "content": [
        {
          "heading": "1. Định danh thiết bị",
          "body": "Thiết bị trong hồ sơ: WDC WD20EZBX-00AYRA0, dung lượng khoảng 2 TB, SATA, 7200 RPM, firmware 01.01A01. Tại thời điểm đối chiếu, thiết bị là Disk 1; các phân vùng D: và L: cùng nằm trên HDD này. Disk Number có thể thay đổi theo lần khởi động hoặc cấu hình phần cứng, vì vậy phải ưu tiên Model + Serial trong bản ghi nội bộ. Serial đã được lược bỏ khỏi bản Knowledge Hub có thể chia sẻ."
        },
        {
          "heading": "2. Triệu chứng lịch sử do người dùng ghi nhận",
          "list": [
            "Từ khoảng 08/2025, có hơn 20 lần ổ không được nhận lúc khởi động, sau khoảng một phút lại xuất hiện khi Windows vẫn đang chạy.",
            "Có thời điểm BIOS không thấy ổ dù ổ có quay; từng có hiện tượng quay khoảng 3 giây, dừng khoảng 1 giây rồi lặp lại.",
            "Sau đó ổ hoạt động ổn định hơn; từng ghi nhận tốc độ đọc/copy khoảng 37 MB/s và không còn nghe tiếng rẹt rẹt.",
            "Ở lần đối chiếu gần nhất được ghi nhận, ổ đang nhận ổn định. Đây là trạng thái tại thời điểm kiểm tra, không bảo đảm sự cố không tái diễn."
          ]
        },
        {
          "heading": "3. An toàn dữ liệu và điều kiện trước kiểm tra",
          "body": "Người dùng xác nhận dữ liệu trên WD Blue 2TB đã được sao lưu đầy đủ trước khi tiến hành khoanh vùng kết nối. Dù đã sao lưu, vẫn không chạy các bài test nặng hoặc sửa chữa không cần thiết khi chưa có mục tiêu rõ ràng."
        },
        {
          "heading": "4. Kết quả SMART đã ghi nhận",
          "list": [
            "CrystalDiskInfo báo tổng quát Good, nhiệt độ 33°C, tốc độ quay 7200 RPM.",
            "Power-On Hours: 1.167 giờ; Power Cycle Count (0C): 20.758.",
            "Các RAW 05 (Reallocated Sectors), C4 (Reallocation Event), C5 (Current Pending Sector), C6 (Uncorrectable Sector), C7 (UltraDMA CRC Error) và 0A (Spin Retry Count) đều bằng 0 trong snapshot đã lưu.",
            "C0 (Power-off Retract) có RAW 20.364 trong snapshot; 0C và C0 là các bộ đếm khác nhau, không nên gộp hoặc diễn giải thành số lần mất điện nếu chưa đối chiếu tài liệu model/firmware."
          ]
        },
        {
          "heading": "5. Event Viewer – kết quả và giới hạn ánh xạ",
          "list": [
            "Event 51 và Event 157 đã xuất hiện trong lịch sử, nhưng thông tin HarddiskN/DRN ở log cũ không đủ để kết luận mọi sự kiện đều thuộc WD Blue.",
            "Event 7 và Event 153 ngày 12/10/2026 được xác định thuộc USB memory-card reader / memory card, không phải WD Blue. Không được quy kết hai sự kiện này cho HDD.",
            "Nguyên tắc: đối chiếu Provider, Event ID, timestamp, Device path, Model/Serial tại đúng thời điểm; không mặc định Harddisk0 hôm nay là Harddisk0 trong log cũ."
          ]
        },
        {
          "heading": "6. Kiểm tra nguồn và thiết lập điện năng",
          "list": [
            "Đã kiểm tra powercfg: HDD turn off timeout khi dùng AC = Never.",
            "PCIe ASPM khi dùng AC đã được chỉnh Off trong lần kiểm tra đó.",
            "USB selective suspend vẫn bật; đây không phải thiết lập trực tiếp quản lý nguồn SATA của HDD, nên không được coi là nguyên nhân đã xác minh."
          ]
        },
        {
          "heading": "7. Kết luận tạm thời",
          "body": "Snapshot SMART không cho thấy bằng chứng rõ ràng về sector được remap, pending/uncorrectable sector hoặc CRC error tại thời điểm đo. Tuy nhiên, SMART Good và các RAW bằng 0 không loại trừ lỗi gián đoạn ở cáp SATA Data, cổng SATA, nguồn SATA, controller, firmware hoặc lỗi chỉ xuất hiện theo thời điểm. Nguyên nhân gốc chưa được xác minh."
        },
        {
          "heading": "8. Công việc tiếp theo – kế hoạch, chưa ghi nhận hoàn tất",
          "list": [
            "Nếu triệu chứng tái diễn, tắt máy hoàn toàn, tắt công tắc PSU, rút dây AC và nhấn nút nguồn khoảng 10 giây để xả điện còn lại; không tháo/cắm SATA khi máy đang có điện.",
            "Chụp ảnh vị trí cáp trước khi tháo để có thể khôi phục chính xác.",
            "Thay duy nhất cáp SATA Data; giữ nguyên cổng SATA và nhánh nguồn SATA. Theo dõi BIOS nhận ổ, Windows nhận ổ, SMART C7 và Event Viewer trong 3–7 ngày sử dụng bình thường.",
            "Nếu vẫn tái diễn, tắt máy và chỉ thay đổi tiếp một yếu tố: chuyển sang cổng SATA khác, giữ nguyên cáp Data và nguồn.",
            "Nếu vẫn tái diễn, kiểm tra nhánh cấp nguồn SATA khác phù hợp từ PSU. Không dùng splitter rẻ tiền; với PSU modular, chỉ dùng dây đúng model PSU được nhà sản xuất xác nhận tương thích.",
            "Sau mỗi thay đổi, ghi lại chính xác thời điểm, thành phần thay đổi và kết quả; không thay nhiều yếu tố cùng lúc."
          ]
        },
        {
          "heading": "9. Điều kiện dừng ngay",
          "list": [
            "Ổ biến mất khỏi BIOS hoặc Windows lặp lại sau thay đổi.",
            "Ổ quay lên rồi dừng lặp lại, phát tiếng cọ/rẹt bất thường hoặc có dấu hiệu cơ khí.",
            "Dữ liệu trở nên không truy cập được hoặc xuất hiện lỗi đọc nghiêm trọng.",
            "Khi có các dấu hiệu trên, dừng thử nghiệm, không tiếp tục power-cycle, benchmark, surface scan hoặc CHKDSK /f /r; ưu tiên bảo toàn dữ liệu và đánh giá chuyên môn."
          ]
        },
        {
          "heading": "10. Những việc không được ghi nhầm thành đã làm",
          "body": "Thay cáp SATA Data, đổi cổng SATA và thử nhánh nguồn khác là kế hoạch cô lập được đề xuất, không được đánh dấu là đã hoàn thành nếu chưa có nhật ký xác nhận thực tế."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – Guidance for troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Đối chiếu Event Viewer và lỗi lưu trữ Windows."
        }
      ]
    },
    {
      "id": "storage-readonly-powershell",
      "title": "Thu thập thông tin HDD/SSD bằng PowerShell – chỉ đọc",
      "category": "diagnostics",
      "summary": "Các lệnh xác định ổ vật lý, phân vùng và Event Viewer mà không sửa chữa hoặc ghi dữ liệu lên ổ đĩa.",
      "status": "reference",
      "statusLabel": "Hướng dẫn thao tác – cần chạy đúng ngữ cảnh",
      "updated": "2026-11-09",
      "tags": [
        "PowerShell",
        "Get-Disk",
        "Win32_DiskDrive",
        "Get-Partition",
        "Get-WinEvent"
      ],
      "content": [
        {
          "heading": "Mục đích và mức độ tác động",
          "body": "Các lệnh dưới đây truy vấn thông tin thiết bị và nhật ký Windows. Chúng không chạy CHKDSK, không benchmark, không format và không chủ động ghi dữ liệu lên ổ được kiểm tra. Việc đọc Event Log có thể cần quyền phù hợp; nếu lệnh báo Access Denied, không tự động thay đổi chính sách bảo mật."
        },
        {
          "heading": "1. Nhận diện ổ vật lý bằng Model, Serial và dung lượng",
          "code": "Get-CimInstance Win32_DiskDrive | Select-Object Index,Model,SerialNumber,Size,InterfaceType,Status | Format-Table -AutoSize"
        },
        {
          "heading": "2. Đối chiếu trạng thái Disk của Windows",
          "code": "Get-Disk | Select-Object Number,FriendlyName,SerialNumber,BusType,OperationalStatus,HealthStatus,Size | Format-Table -AutoSize"
        },
        {
          "heading": "3. Đối chiếu ký tự ổ đĩa với phân vùng và Disk Number",
          "code": "Get-Partition -DriveLetter D,L | Select-Object DriveLetter,DiskNumber,PartitionNumber,Size,Type | Format-Table -AutoSize"
        },
        {
          "heading": "4. Lọc Event Viewer – System trong 30 ngày",
          "code": "$start = (Get-Date).AddDays(-30)\nGet-WinEvent -FilterHashtable @{\n  LogName = 'System'\n  StartTime = $start\n  Id = 7,11,15,51,55,129,140,153,157\n} -ErrorAction SilentlyContinue |\nSelect-Object TimeCreated,ProviderName,Id,LevelDisplayName,Message |\nFormat-List"
        },
        {
          "heading": "5. Quy tắc đọc kết quả",
          "list": [
            "Không dựa riêng vào Index/Disk Number để nhận diện ổ; ghép Model, Serial, dung lượng và thời điểm.",
            "Nếu Get-Partition không trả kết quả cho một ký tự ổ, xác minh ký tự đó có tồn tại và đang gắn với volume hay không; không diễn giải rỗng là ổ hỏng.",
            "Event ID chỉ là manh mối. Đọc ProviderName, Message, thời điểm và thiết bị được nhắc tới.",
            "Lưu kết quả gốc trước khi lọc hoặc tóm tắt để có thể đối chiếu sau."
          ]
        },
        {
          "heading": "Lưu ý về quyền và lỗi lệnh",
          "body": "Get-WinEvent có thể không đọc được một số log nếu tài khoản không đủ quyền. Chỉ nâng quyền khi có lý do và người dùng chủ động thực hiện; không cần chạy toàn bộ PowerShell bằng Administrator chỉ vì một lệnh truy vấn thiết bị."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – Get-WinEvent",
          "url": "https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-winevent?view=powershell-5.1",
          "note": "Cú pháp và FilterHashtable để truy vấn Event Log."
        },
        {
          "title": "Microsoft Learn – Guidance for troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Danh sách một số Event ID lưu trữ và quy trình điều tra."
        }
      ]
    },
    {
      "id": "sata-isolation-procedure",
      "title": "Cô lập lỗi kết nối SATA theo từng biến số",
      "category": "diagnostics",
      "summary": "Quy trình phân biệt cáp SATA Data, cổng SATA và nhánh nguồn mà không thay nhiều thành phần cùng lúc.",
      "status": "draft",
      "statusLabel": "Quy trình cần thực hiện có kiểm soát",
      "updated": "2026-11-09",
      "tags": [
        "SATA Data",
        "SATA Power",
        "motherboard",
        "PSU",
        "isolation"
      ],
      "content": [
        {
          "heading": "Khi nào dùng quy trình này?",
          "body": "Chỉ cân nhắc khi có triệu chứng phù hợp như ổ mất kết nối, không được BIOS nhận, Event I/O lặp lại hoặc kết nối chập chờn và đã đánh giá nguy cơ dữ liệu. Không cần tháo cáp một cách phòng ngừa nếu ổ đang hoạt động ổn định và không có chỉ dấu mới."
        },
        {
          "heading": "Chuẩn bị an toàn",
          "list": [
            "Sao lưu dữ liệu quan trọng và xác nhận bản sao có thể truy cập.",
            "Shutdown Windows hoàn toàn; tắt công tắc PSU, rút dây AC khỏi PSU và nhấn nút nguồn khoảng 10 giây.",
            "Không tháo/cắm SATA khi máy đang bật hoặc còn cấp điện.",
            "Chụp ảnh hiện trạng, ghi rõ đầu cáp Data, cổng SATA và đầu nguồn.",
            "Chống tĩnh điện phù hợp và tránh chạm vào chân tiếp xúc. Nếu không tự tin thao tác bên trong PC, dừng và nhờ kỹ thuật viên."
          ]
        },
        {
          "heading": "Lần 1 – chỉ thay cáp SATA Data",
          "list": [
            "Giữ nguyên cổng SATA trên mainboard và nhánh nguồn SATA.",
            "Thay cáp Data bằng cáp tốt, đúng chuẩn và có tình trạng vật lý tốt.",
            "Khởi động và xác nhận BIOS nhận đúng model/dung lượng; vào Windows kiểm tra lại Model/Serial.",
            "Ghi snapshot SMART mới, đặc biệt C7 nếu ổ SATA hỗ trợ thuộc tính này.",
            "Theo dõi sự kiện và triệu chứng trong khoảng 3–7 ngày sử dụng bình thường."
          ]
        },
        {
          "heading": "Lần 2 – chỉ thay cổng SATA",
          "list": [
            "Chỉ tiến hành nếu sự cố vẫn tái diễn sau lần 1 và đã ghi nhận kết quả.",
            "Giữ nguyên cáp Data mới và nhánh nguồn; chuyển sang một cổng SATA khác được mainboard hỗ trợ.",
            "Kiểm tra lại BIOS, Windows, SMART và Event Viewer như lần trước.",
            "Ghi rõ cổng cũ/mới và thời điểm thay đổi."
          ]
        },
        {
          "heading": "Lần 3 – kiểm tra nhánh nguồn SATA",
          "list": [
            "Chỉ tiến hành nếu vẫn có bằng chứng sự cố sau hai bước trước.",
            "Dùng đầu nguồn SATA khác trên cùng PSU nếu phù hợp; không dùng splitter rẻ tiền.",
            "Với PSU modular, tuyệt đối không dùng cáp modular của PSU khác nếu nhà sản xuất không xác nhận tương thích; pinout có thể khác.",
            "Nếu không chắc về PSU/cáp, dừng và nhờ kỹ thuật viên."
          ]
        },
        {
          "heading": "Diễn giải kết quả",
          "list": [
            "Hết lỗi sau khi chỉ thay cáp Data: cáp cũ trở thành nghi vấn mạnh hơn, nhưng vẫn cần theo dõi đủ lâu và tái lập bằng chứng.",
            "Hết lỗi sau khi đổi cổng: cổng cũ hoặc đường kết nối liên quan trở thành nghi vấn; chưa đủ để khẳng định mainboard hỏng.",
            "Hết lỗi sau khi đổi nhánh nguồn: cần điều tra nhánh nguồn/đầu nối; không tự kết luận PSU hỏng nếu chưa có kiểm tra bổ sung.",
            "Không hết lỗi: tiếp tục xem xét HDD, PSU, controller, firmware hoặc các yếu tố khác; không thay đồng thời nhiều thứ để đoán mò."
          ]
        },
        {
          "heading": "Điều kiện dừng",
          "body": "Dừng ngay nếu ổ mất nhận diện lặp lại, quay lên rồi dừng bất thường, phát tiếng cơ khí, có mùi khét/nóng bất thường, hoặc dữ liệu bị ảnh hưởng. Không tiếp tục bật/tắt nguồn lặp đi lặp lại để thử. Đây là quy trình khoanh vùng, không phải phép chứng nhận ổ đĩa khỏe."
        }
      ],
      "sources": [
        {
          "title": "Microsoft Learn – Guidance for troubleshooting data corruption and disk errors",
          "url": "https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-data-corruption-and-disk-errors",
          "note": "Nguồn tham khảo về các lỗi storage path và phương pháp điều tra; quy trình thay cáp/cổng là hướng dẫn thực hành cần tuân theo hướng dẫn phần cứng cụ thể."
        }
      ]
    }
  ]
}