切換到作業系統後如何強制 GRUB 保持視訊模式?

切換到作業系統後如何強制 GRUB 保持視訊模式?

我使用 GRUB 作為我的自訂作業系統的引導程式。我希望它為我進入圖形模式,這樣我就不必在我的系統中自己執行此操作。但是,在 GRUB 將控制權傳遞給作業系統之前,視訊模式會變更回 80x25 文字模式。我嘗試過使用set gfxpayload=keep,但似乎沒有任何作用。我選擇的模式(使用 set gfxmode=1024x768x24)在 GRUB 仍處於活動狀態時工作正常,但在將控制權傳遞給作業系統的入口點之前,它會返回到文字模式。難道我做錯了什麼?而且,這是我的grub.cfg文件:

set root=(hd0,1)

set gfxmode=1024x768x24
set gfxpayload=keep

insmod vbe
insmod vga
insmod video_cirrus
insmod gfxterm

set menu_color_normal=red/blue
set menu_color_highlight=green/blue

loadfont /boot/grub/fonts/unicode.pf2

terminal_input console
terminal_output gfxterm

set timeout=1
set default=0

menuentry "Trolololo" {
    multiboot /kernel
    boot
}

答案1

問題解決了。如同鋸末所建議的,分析 GRUB 的原始程式碼是一種方法(文件grub_multiboot_set_console中的函數grub-2.00/grub-core/loader/multiboot.c)。

問題是我的核心是透過multiboot <filename>命令加載的,而linux(在大多數情況下)是透過命令加載的linux <filename>。多重引導規範要求在多重引導標頭中提供有關首選視訊模式的資訊。如果未提供該訊息,GRUB 將在啟動核心之前切換回文字模式並完全忽略gfxpayload變數。

相關內容