Tôi đang tìm dòng mã trong đó GRUB2 cuối cùng đã nhảy sang mã kernel và do đó bàn giao thực thi trên các hệ thống x86? Tôi đoán đó là trong một tập tin trình biên dịch vì đây là công cụ kiến trúc rất thấp. Tôi nhìn các tập tin nguồn trong /grub-core/boot/i386/pc/*.S
và tìm thấy một JMP
trong boot.S tại dòng 455 nhưng kernel_address
có thể là địa chỉ của kernel GRUB2 trong bộ nhớ và không phải là hạt nhân Linux.
Bất cứ ai có kiến thức lắp ráp và GRUB2 có thể giúp tôi?
Bạn đã theo dõi các tham số kernel?
—
phk
Tôi không thể thêm quá nhiều ở đây vì tôi đang đăng từ điện thoại, nhưng tôi có thể đoán dựa trên những gì tôi nhớ về máy tính tương thích PC và GRUB2 rằng nó tải hình ảnh hạt nhân vào bộ nhớ ở 0x900000 (chế độ thực), với 0x0c000000 là địa chỉ nhảy đến một khi bạn nhảy ra khỏi chế độ thực vào chế độ được bảo vệ. Tuy nhiên, đây là trên một hệ thống EFI có "khởi động đáng tin cậy", do đó tôi có thể không chính xác. Có lẽ
—
Wyatt8740
initrd
hình ảnh của bạn sẽ chứa manh mối?