Điều đầu tiên để hiểu rằng không có cách cố định. grub2 có thể được cấu hình khác nhau trong quá trình cài đặt và tên grub.cfg không có cách nào được mã hóa cứng. Cách học thứ hai là không có tệp cấu hình duy nhất, ví dụ hệ thống Ubuntu của tôi tại thời điểm viết sử dụng 2 tệp khác nhau theo thứ tự, cả hai thực sự có tên là grub.cfg.
Theo mặc định, grub2 thực hiện 2 điều cần thiết khi bắt đầu:
- đặt biến tiền tố thành giá trị tích hợp trong quá trình cài đặt grub2
- tiếp tục với tệp cấu hình $ prefix / grub.cfg nếu nó tồn tại
(để biết thêm chi tiết tham khảo http://www.gnu.org/software/grub/manual/grub.html#GRUB-only-offers-a-resTHER-shell )
Điều kiện "nếu nó tồn tại" là điều khó chịu: Nếu tệp không tồn tại (ví dụ: vì tiền tố $ không trỏ đến đúng vị trí), không có thông báo lỗi nào mà nó đã cố gắng thực hiện và bạn chỉ cần kết thúc bằng dấu nhắc lệnh .
Nếu bạn kết thúc trong shell khẩn cấp, điều đầu tiên cần kiểm tra là giá trị của biến tiền tố (sử dụng lệnh set) và nội dung của thư mục đó (sử dụng lệnh ls và cat).
(Hành vi mặc định có thể được ghi đè bằng tệp cấu hình tích hợp, nhưng tôi không nghĩ rằng tôi đã thấy điều đó được sử dụng trong thực tế.)
Ubuntu đặt tiền tố ở cùng một nơi nơi grubx64.efi và shimx64.efi được sử dụng để khởi động an toàn được đặt. Vì vậy, tệp cấu hình đầu tiên grub.cfg được tải từ cùng thư mục chứa các tệp nhị phân EFI này. Từ phối cảnh Linux, đường dẫn là / boot / efi / EFI / ubfox và từ phối cảnh grub2 (hd0, gpt1) / efi / ubfox (số ổ đĩa và phân vùng có thể thay đổi tùy theo vị trí phân vùng hệ thống EFI của bạn, tên tệp trong grub2 dường như không phân biệt chữ hoa chữ thường nên EFI được hiển thị bởi Linux được hiển thị dưới dạng efi bởi grub2).
Tệp grub.cfg đầu tiên chỉ chứa 3 câu lệnh:
- xác định vị trí phân vùng chứa hệ thống tệp gốc bằng UUID (trong các hệ thống sử dụng hệ thống tệp khởi động riêng biệt định vị hệ thống tệp khởi động thay thế)
- đặt tiền tố thành giá trị mới của $ root / boot / grub (sử dụng giá trị $ root được xác định ở bước trước, đối với các hệ thống có phân vùng khởi động riêng, đây phải là $ root / grub)
- thực thi configfile từ vị trí $ prefix / grub.cfg
Cái sau là vị trí Linux /boot/grub/grub.cfg, mà chúng ta thường được nói.