EFI_LOAD_OPTION là gì?

Quicknote EFI_LOAD_OPTION là gì?

2 phút đọc
Đọc bằng Tiếng Việt English 日本語
Boot / NVRAM / Device Path Terms cover

EFI_LOAD_OPTION là cấu trúc dữ liệu được dùng trong các load option như Boot####. Nó thường chứa attributes, file path list length, description, device path và optional data.

Vai trò chính

  • Định dạng dữ liệu bên trong Boot####.
  • Mô tả boot target cho Boot Manager.
  • Chứa device path đến loader/device.

Ví dụ xử lý lỗi

Pattern thường thấy trong code UEFI:

Status = SomeUefiService(...);
if (EFI_ERROR(Status)) {
  DEBUG ((DEBUG_ERROR, "SomeUefiService failed: %r\n", Status));
  return Status;
}

Điểm quan trọng là không dùng output parameter nếu API đã trả lỗi.

Checklist nhanh

Ghi nhớ nhanh

Boot#### không phải string đơn giản; bên trong nó là EFI_LOAD_OPTION có cấu trúc.

Cách mình thường đọc nó

Khi học EFI_LOAD_OPTION, 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.

Một tình huống thực tế

Một lỗi boot đôi khi không nằm ở boot loader, mà nằm ở metadata dẫn đường: boot option, device path, variable hoặc thứ tự thử boot. Khi gặp trường hợp máy từng boot được nhưng sau update BIOS, đổi disk hoặc clear CMOS lại boot sai, EFI_LOAD_OPTION là một trong những điểm nên kiểm tra trước.

Khi gặp trong thực tế

Với EFI_LOAD_OPTION, đừ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

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.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.