Boot Failure Checklist
Quicknote checklist debug lỗi boot failure theo phase.
Boot failure nên được debug theo phase thay vì đoán mò. Trước tiên cần xác định hệ thống fail ở SEC/PEI, DXE, BDS hay OS Loader.
Vai trò chính
- Khoanh vùng phase fail.
- So sánh log good/bad.
- Xác định lỗi do firmware init, boot option hay OS loader.
Cách hình dung nhanh
Hãy xem mỗi Boot#### như một shortcut boot. Shortcut này không chỉ có tên hiển thị, mà còn có device path trỏ tới file .efi hoặc thiết bị boot cụ thể.
Checklist nhanh
Ghi nhớ nhanh
Debug boot failure: xác định phase trước, tìm root cause sau.
Góc nhìn khi debug
Khi học Boot Failure Checklist, mình không muốn chỉ dừng ở định nghĩa. Mình thường tự hỏi ba câu: nó được tạo ra ở đâu, ai sẽ đọc nó, và nếu nó sai thì lỗi sẽ biểu hiện ở tầng nào. Cách nhìn này giúp biến một thuật ngữ khô khan thành một điểm kiểm tra cụ thể trong flow debug.
Ví dụ dễ gặp
Trong debug thật, điều quan trọng không phải là có thật nhiều log, mà là biết log nào xác nhận được trạng thái nào. Khi gặp Boot Failure Checklist, mình thường đánh dấu điểm cuối cùng còn chắc chắn đúng, sau đó mới khoanh vùng sang bước kế tiếp thay vì đọc log từ đầu đến cuối một cách mơ hồ.
Khi gặp trong thực tế
Với Boot Failure Checklist, đừng chỉ đọc như một biến độc lập. Hãy đặt nó vào chuỗi: Boot Manager đọc NVRAM → chọn Boot option → parse Device Path → mở file .efi → chuyển quyền cho loader. Khi boot sai thiết bị, lỗi thường nằm ở metadata dẫn đường trước khi nằm ở bản thân boot loader.
Một cách debug nhanh là dump các biến boot từ UEFI Shell hoặc OS tool, rồi kiểm tra xem giá trị đang trỏ tới option nào, option đó còn active không, và device path bên trong còn đúng với disk/partition hiện tại không.
Bài liên quan
Nguồn tham khảo public
- UEFI Specification 2.11 - Boot Manager
- UEFI PI Specification 1.9
- TianoCore EDK II source code
- UEFI Shell Specification 2.2
Thấy nội dung này hữu ích?
Lưu lại hoặc chia sẻ cho người cũng đang học firmware, BIOS/UEFI và embedded systems.
Nội dung liên quan
Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.
Firmware Execution Flow Overview
Knowledge map về luồng thực thi firmware từ SEC, PEI, DXE, BDS tới TSL và Runtime.
UEFI Boot Flow: từ Reset Vector đến ExitBootServices
Không phải học để thuộc tên phase. Học boot flow để biết máy đang chết ở đâu, và debug theo hướng nào: từ SEC đến Runtime.
PEI → DXE Handoff là gì?
Giải thích cách PEI bàn giao dữ liệu cho DXE qua HOB list và vì sao lỗi handoff gây debug rất khó.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.