无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 451|回复: 16
打印 上一主题 下一主题

[求助] legacy+grub2以4种方式引导winpe均只显示在上半屏,求解

[复制链接]
跳转到指定楼层
1#
发表于 前天 14:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qj_tzy 于 2025-10-23 13:45 编辑

legacy+grub2以4种方式引导winpe均只显示在上半屏,求解


一台6代cpu电脑和一台9代cpu电脑,该2台电脑均支持bios(即legacy)+uefi引导,我在该2台电脑上,以legacy方式启动grub2菜单,用以引导win7/10/11/pe,win7/10/11引导正常,能显示全屏,而以下面4种方式引导winpe,进入winpe的系统桌面后,系统桌面均只显示在上半屏、下半屏是花屏的。先用的grub2版本是2.11,后改用grub2的最新版本即2.12也如此。


1.以bootmgr+bcd引导win10pe.wim、win11pe.wim
menuentry "[bios] Winpe维护系统" --class=windows{
ntldr /boot/bootmgr
}
注:bcd放在/boot/目录,其内指定引导win10pe.wim。/boot/bcd+bootmgr及win10pe.wim均放在mbr分区硬盘的激活主分区内(ntfs分区)。
后改用多个win10pe.wim及多个win11pe.wim测试均如此,改存放在mbr分区硬盘的fat32分区也如此。


2.以memdisk方式引导winpe10.iso、win11pe.iso
menuentry "[bios] Winpe维护系统" --class=windows{
linux16 /boot/grub2/memdisk iso
initrd16 /boot/win/win10PE.iso
}
注:memdisk用的是sysliux6.03的,后改用sysliux多个版本的memdisk,及改用多个版本的win10PE.iso及win11PE.iso, 也如此。将这些文件放在mbr分区硬盘ntfs或fat32主分区,及放在gpt分区硬盘的esp分区内引导均如此。


3.将bootmgr+/boot/bcd注入bwinpe.ima中引导win10pe.wim、win11pe.wim
menuentry "[bios] Winpe维护系统" --class=windows{
linux16 /boot/grub2/memdisk
initrd16 /boot/win/bwinpe.ima
}
注:因bootmgr不读取gpt分区硬盘分区中的bcd,则将bootmgr+/boot/bcd注入bwinpe.ima中,将bwinpe.ima放入gpt分区硬盘的esp分区中,引导win10pe.wim,后改用win11pe.wim,也如此。


4.调用grub4dos引导win10pe.wim、win11pe.wim、win10pe.iso、win11pe.iso
menuentry "[bios] Winpe维护系统" --class=windows{
ntldr /boot/g4d/grwpe
}
注:grwpe是由grub4dos的grldr改名而来,其内的菜单如下:
map /boot/win/win11PE.iso (0xFF)
map --hook
chainloader (0xFF)

map /boot/win/bwinpe.ima (fd0)
map --hook
rootnoverify (fd0)
chainloader +1
#bwinpe.ima中的bcd引导win11pe.wim

chainloader /boot/bootmgr
#/boot/bcd引导的是win11pe.wim

若用legacy+grub4dos,或用uefi+grub2,引导上述winpe.wim或winpe.iso均正常,能显示全屏。
而用legacy+grub2作上述引导,均存在只显示在上半屏的问题,现向各位求解,诚请各位不吝指教,谢谢!以下是2台电脑测试的图片:














2#
发表于 前天 15:45 | 只看该作者
等高手来解答
回复

使用道具 举报

3#
发表于 前天 15:47 | 只看该作者
本帖最后由 a66 于 2025-10-22 15:50 编辑

您描述的问题表现为:在 Legacy + GRUB2 引导 WinPE时,桌面仅显示在屏幕上方一半,下半部分为花屏,而在其他引导方式(如 Legacy + GRUB4DOS 或 UEFI + GRUB2)中则正常。这表明问题与 GRUB2 在 Legacy 模式下的某些图形处理机制有关。



问题原因分析:

1.GRUB2 的图形模式设置问题:GRUB2 在 Legacy BIOS 模式下使用的是 VESA BIOS 扩展(VBE)来设置图形分辨率。某些 WinPE 镜像在启动时会继承 GRUB2 设置的图形模式(如800x600 或1024x768),但未正确重置或切换回原生分辨率,导致显示异常(如仅上半屏有画面)。
2.显卡驱动或分辨率设置不兼容:WinPE 镜像中可能缺少某些显卡驱动,或默认使用了与当前硬件不兼容的分辨率设置。在 GRUB2 引导下进入 WinPE时,显卡模式可能未被正确切换。
3.GRUB2 的 vbe 模式残留影响:GRUB2 使用 vbe 模式设置分辨率后,没有正确切换回标准 VGA 模式,导致后续操作系统(WinPE)显示异常。



解决方案建议:

✅ 方法一:在 GRUB2 中禁用图形模式(强制使用文本模式)

在 GRUB2 启动菜单中,设置使用文本模式(即 VGA 模式),避免影响 WinPE 的图形初始化。
在 grub.cfg 中添加或修改以下内容:
grub2set gfxpayload=text
或者在每个 menuentry之前添加:
grub2insmod all_videoset gfxpayload=keep
说明:
  • set gfxpayload=text:强制使用文本模式。
  • set gfxpayload=keep:保留当前模式,但通常更兼容。
    -也可以在 grub.cfg 中设置 GRUB_GFXPAYLOAD_LINUX=text,并在运行 grub-mkconfig时生效。



✅ 方法二:在 WinPE 中修改启动脚本,强制重置分辨率在 WinPE 的启动脚本(如 startnet.cmd 或 wpeinit 后运行的脚本)中添加命令,强制设置分辨率为标准 VGA:

shell
mode con: cols=80 lines=25```
或者使用第三方工具如 `nircmd` 设置分辨率:```cmdnircmd.exe setdisplay102476832```
> 需要将 `nircmd.exe` 放入 WinPE 镜像中。

✅ 方法三:使用 `vbetool` 或 `vesa` 工具在 GRUB2 后恢复显卡模式如果您使用的是自定义的 GRUB2 镜像或脚本,可以尝试在进入 WinPE之前调用 `vbetool` 或其他工具恢复显卡模式。---

✅ 方法四:尝试使用 `chainloader` 直接跳过 GRUB2 的图形模式如果您是通过 GRUB2 引导 WinPE 的 BCD 或 ISO,可以尝试不通过 GRUB2 的 ntldr 或 memdisk,而是直接跳过 GRUB2 的图形部分,使用 `chainloader` 引导 WinPE 的启动扇区。
例如:```grub2menuentry "WinPE via chainloader" { set root=(hd0,msdos1) chainloader +1}



总结:
您遇到的问题是 GRUB2 在 Legacy 模式下设置的图形模式影响了 WinPE 的显示初始化。

解决的关键在于:
  • 禁用 GRUB2 图形模式
  • 确保 WinPE 启动前显卡模式被正确重置
  • 避免 VBE 模式残留影响

建议优先尝试在 GRUB2 中添加 set gfxpayload=text,并观察 WinPE 是否恢复正常显示。

点评

11楼chen463网友说:先透过 GRUB4DOS的转换到grub2,那这样的情况立即改善分辨率的问题。 我昨晚在6代cpu笔记本上测试,正是先启动grub4dos,再用它调用grub2菜单,用grub2引导winpe,出现时为全屏、时为全屏,感  详情 回复 发表于 昨天 12:53
另: 1.你说的方法二,win10pe或win11pe,我都是从网上下载的,自己不会做pe,也不知如何修改,只好作罢。 2. `vbetool` 或 `vesa` 工具,我正在从网上搜索,不知从哪下,也不知如何使用 3.{ set root=(hd0,msdos  详情 回复 发表于 前天 19:55
grub2菜单如下: insmod all_video menuentry "2. Winpe维护系统" --hotkey=2 --class=windows { #set gfxpayload=text set gfxpayload=keep #方式1 linux16 /boot/grub2/memdisk initrd16 /boot/win/bwi  详情 回复 发表于 前天 19:47
非常感谢,测试后反馈!  详情 回复 发表于 前天 16:17
这就是专业  详情 回复 发表于 前天 16:15
回复

使用道具 举报

4#
发表于 前天 16:03 | 只看该作者
学习一下,感谢分享!
回复

使用道具 举报

5#
发表于 前天 16:15 | 只看该作者
a66 发表于 2025-10-22 15:47
您描述的问题表现为:在 Legacy + GRUB2 引导 WinPE时,桌面仅显示在屏幕上方一半,下半部分为花屏,而在其 ...

这就是专业
回复

使用道具 举报

6#
 楼主| 发表于 前天 16:17 | 只看该作者
a66 发表于 2025-10-22 15:47
您描述的问题表现为:在 Legacy + GRUB2 引导 WinPE时,桌面仅显示在屏幕上方一半,下半部分为花屏,而在其 ...

非常感谢,测试后反馈!
回复

使用道具 举报

7#
发表于 前天 17:57 | 只看该作者
脚本引入了哪些视频模块?把all_video去掉试试?
wintoflash大佬引了篇通讯说all_video在qemu有问题,不知道实体机是什么情况。
回复

使用道具 举报

8#
发表于 前天 18:46 | 只看该作者
学习一下
回复

使用道具 举报

9#
 楼主| 发表于 前天 19:47 | 只看该作者
a66 发表于 2025-10-22 15:47
您描述的问题表现为:在 Legacy + GRUB2 引导 WinPE时,桌面仅显示在屏幕上方一半,下半部分为花屏,而在其 ...

grub2菜单如下:
insmod all_video
menuentry "2.[bios] Winpe维护系统" --hotkey=2 --class=windows {
#set gfxpayload=text
set gfxpayload=keep

#方式1
linux16 /boot/grub2/memdisk
initrd16 /boot/win/bwinpe.ima

#方式2
linux16 /boot/grub2/memdisk iso
initrd16 /boot/win/win11PE.iso

#方式3
ntldr /boot/win/winpe/bootmgr

#方式4
ntldr /boot/g4d/grwpe
}
刚才我在6代cpu笔记本(9代cpu电脑在他处)上作了如下测试:
在不加set gfxpayload=text或set gfxpayload=keep行时,方式1、2、3、4依序测试,有时显示半屏、有时又显示全屏;加了set gfxpayload=text或set gfxpayload=keep行时,也是有时半屏有时全屏。真遇到测不准的事了。不知哪里弄错了。
回复

使用道具 举报

10#
 楼主| 发表于 前天 19:55 | 只看该作者
a66 发表于 2025-10-22 15:47
您描述的问题表现为:在 Legacy + GRUB2 引导 WinPE时,桌面仅显示在屏幕上方一半,下半部分为花屏,而在其 ...

另:
1.你说的方法二,win10pe或win11pe,我都是从网上下载的,自己不会做pe,也不知如何修改,只好作罢。
2. `vbetool` 或 `vesa` 工具,我正在从网上搜索,不知从哪下,也不知如何使用
3.{ set root=(hd0,msdos1) chainloader +1},这个做法,我下载的都是wim或iso的winpe,又不能chainloader /bootmgr,不知如何做到chainloader +1 ?
回复

使用道具 举报

11#
发表于 昨天 08:45 | 只看该作者
本帖最后由 chen463 于 2025-10-23 09:27 编辑

grub2的直接使用,会出现花屏或分辨率低的情况,依我个人经验,应该是grub2设置分辨率的原态设定问题。
先前有多位前辈曾讨论建议,VENTOY也针对此问题做改善,但是我操作的情况得知,并没有得到改善后的良好效果。


但是如果先透过 GRUB4DOS的转换到grub2,那这样的情况立即改善分辨率的问题,这证实了grub2分辨率的组态问题。


目前没好的方案,可尝试构想寻找从grub2的设定模式设置着手,试试看能不能改善此问题。



LegacyBIOS-grub.cfg有相关的themes设定吗?

点评

您的意思是否是:启动grub4dos→调用grub2→引导winpe,这样可能会改变grub2分辨率问题,空时我试下。谢谢!  详情 回复 发表于 昨天 09:20
感谢指点,看来grub2在此方面确实存在问题,希望grub2的开发者能改进这点就好了!  详情 回复 发表于 昨天 09:14
回复

使用道具 举报

12#
 楼主| 发表于 昨天 09:14 | 只看该作者
chen463 发表于 2025-10-23 08:45
grub2的直接使用,会出现花屏或分辨率低的情况,依我个人经验,应该是grub2设置分辨率的原态设定问题。
先 ...

感谢指点,看来grub2在此方面确实存在问题,希望grub2的开发者能改进这点就好了!
回复

使用道具 举报

13#
 楼主| 发表于 昨天 09:20 | 只看该作者
chen463 发表于 2025-10-23 08:45
grub2的直接使用,会出现花屏或分辨率低的情况,依我个人经验,应该是grub2设置分辨率的原态设定问题。
先 ...

您的意思是否是:启动grub4dos→调用grub2→引导winpe,这样可能会改变grub2分辨率问题,空时我试下。谢谢!
回复

使用道具 举报

14#
发表于 昨天 10:21 | 只看该作者
本帖最后由 wintoflash 于 2025-10-23 12:38 编辑

在每个菜单项的开头加上
  1. terminal_output console
  2. set gfxpayload=text
  3. echo "CONSOLE"
复制代码

注意第三行echo语句不可省略

点评

2025/10/23在9代cpu电脑上测试: grub2菜单是: menuentry "5. Winpe维护系统1" --hotkey=5 --class=windows{ terminal_output console set gfxpayload=keep echo "CONSOLE" #方式1 linux16 /boot/grub2/mem  详情 回复 发表于 昨天 13:57
非常感谢,测试后反馈!  详情 回复 发表于 昨天 11:42
回复

使用道具 举报

15#
 楼主| 发表于 昨天 11:42 | 只看该作者
wintoflash 发表于 2025-10-23 10:21
在每个菜单项的开头加上

注意第三行echo语句不可省略

非常感谢,测试后反馈!
回复

使用道具 举报

16#
 楼主| 发表于 昨天 12:53 | 只看该作者
a66 发表于 2025-10-22 15:47
您描述的问题表现为:在 Legacy + GRUB2 引导 WinPE时,桌面仅显示在屏幕上方一半,下半部分为花屏,而在其 ...


11楼chen463网友说:先透过 GRUB4DOS的转换到grub2,那这样的情况立即改善分辨率的问题。
我昨晚在6代cpu笔记本上测试,正是先启动grub4dos,再用它调用grub2菜单,用grub2引导winpe,出现时为全屏、时为全屏,感觉有测试不准的情况,是否与这个有关?
回复

使用道具 举报

17#
 楼主| 发表于 昨天 13:57 | 只看该作者
wintoflash 发表于 2025-10-23 10:21
在每个菜单项的开头加上

注意第三行echo语句不可省略

2025/10/23在9代cpu电脑上测试:
grub2菜单是:
menuentry "5.[bios] Winpe维护系统1" --hotkey=5 --class=windows{
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
#方式1
linux16 /boot/grub2/memdisk
initrd16 /boot/win/bwinpe.ima
}

menuentry "5.[bios] Winpe维护系统2" --hotkey=5 --class=windows{
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
#方式2
linux16 /boot/grub2/memdisk iso
initrd16 /boot/win/win11PE.iso
}

menuentry "5.[bios] Winpe维护系统3" --hotkey=5 --class=windows{
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
#方式3
ntldr /boot/win/winpe/bootmgr
}

menuentry "5.[bios] Winpe维护系统4" --hotkey=5 --class=windows{
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
#方式4
ntldr /boot/g4d/grwpe
}

我直接以legacy+grub2引导,不用grub4dos调用grub2的方式,先不加terminal_output console等三行测试了3次,后加该3行测试了3次,情况如下:

方式                  不加terminal等3行                         加terminal等3行
        第1次测试        第2次测试 第3次测试                第1次测试   第2次测试  第3次测试

方式1        全屏        全屏        半屏                          半屏        半屏        半屏
方式2        半屏        全屏        半屏                          全屏        全屏        全屏
方式3        半屏        全屏        半屏                          全屏        半屏        半屏
方式4        半屏        半屏        全屏                          半屏        全屏        全屏

测试结果是:感觉随机性大,时而全屏、时而半屏,即使加了那三行也如此。只是加了三行后,引导iso格式的winpe,全屏的机率大。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-10-24 22:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表