无忧启动论坛

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

[分享] Windows 7 的 UEFI 安装而无需 CSM

    [复制链接]
跳转到指定楼层
#
发表于 2020-5-16 16:05:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 chishingchan 于 2020-5-16 16:12 编辑

原文:https://www.prime-expert.com/articles/a21/windows-7-uefi-install-without-csm/

众所周知,Windows 7 在 CSM 模式下工作效果最好,可惜的是,很多现代主板和笔记本的固件并不支持 CSM 模式。
与大众的看法相反,在没有 CSM 支持的情况下,也可以将 Windows 7 x64 安装到纯 UEFI 系统中。请阅读下面的内容来了解一下。

内容
1. 反例
2. 我们的研究和发展历史
3. 我们工作的最终结果

1. 反例
一个很好的反例是,为什么 CSM 支持对于 Windows 7 的安装来说并不是非常必要的,这就是 FreeBSD中 的 bhyve 虚拟机管理器,它支持64位版本的 Windows 7 和 Windows 2008 Server R2,尽管完全不支持 CSM。
此外,在基于 UEFI 的 Oracle VirtualBox 虚拟机中运行 Windows 7 x64 也是可能的,它是为 Windows 8 x64 客制化操作系统配置的 (显然没有 CSM 支持),通过将 VirtualBox paravirtual VBoxVGA/VoxSVGA 驱动程序预先集成到 Windows 7 x64 安装映像 (installation.wim) 中,可以运行 Windows 7 x64。

2. 我们的研究和发展历史
上面列出的虚拟机反例表明,对于 Windows 7 来说,真正重要的是一个具有正确映射的 I/O 端口和 INT 10H 处理程序的 VGA 兼容 GPU(前者主要取决于芯片组,后者通常由固件在设置中启用 CSM 模式时提供)。顺便说一下,Windows 7 和 Windows 2008 Server R2 从来没有直接运行 BIOS/CSM 安装的 INT 10H 处理程序,相反,它们在 VGA miniport 驱动(VIDEOPRT.SYS)中包含一个仿真器,它在沙箱中运行16位 BIOS 代码,不离开64位保护模式,也不停止其他 CPU 核心。
从 Windows 8 开始,一切都变了:Windows 不再需要 INT 10H 处理程序来启动,BIOS 仿真器和整个 VGA miniport 驱动都没有了,取而代之的是 Windows 基本的显示驱动依赖于 UEFI 图形输出协议(又称 GOP)。
因此,主要的问题是:提供一个自定义的 INT 10H 处理程序(通过实现一个专门的 UEFI 预加载器),是否就可以在现代纯 UEFI 系统上成功启动 Windows 7?这个自定义的 INT 10H 处理程序可以依靠 UEFI GOP 提供某种 "迷你 CSM"(不是真正的东西,只是足够让 VIDEOPRT.SYS 启动 Windows 7)。
正如我们的实验所证明的,不幸的是,这还不够。除了通过 VIDEOPRT.SYS 中的 INT 10H 来调用 VGA BIOS 之外,Windows 7 直接从操作系统内核(NTOSKRNL.EXE)直接对 VGA I/O 端口进行读写。首先,Windows 7 操作系统内核有 VgaIsPresent() 功能,如果 VGA 兼容的 GPU 在标准 I/O 端口(0x3C0-0x3DF)上没有响应,那么在 "发光的标志 "阶段,可能会无限期地停止启动进程。同时,Windows 7 操作系统内核还有其他几个函数,如 VidInitialize()、VgaInterpretCmdStream()、VidSolidColorFill()、SetPixel() 等,直接在 VGA 端口上执行 I/O,用于绘制 BSoD(死亡蓝屏)。
因此,我们继续开发 Windows 7 的预加载程序,引入了一个 NTOSKRNL.EXE 补丁,用 UEFI GOP 提供的帧缓冲区更新来替换所有通过 VGA 端口直接 I/O 的实例(类似于 Windows 8+ 的方式)。这个补丁在每次 Windows 启动时都会被激活,所以 NTOSKRNL.EXE 是在运行时更新的,只在 RAM 中更新,而磁盘上的这个文件不会受到影响(它可能会经历任何 Windows 7 的更新,它可能包含在 BOOT.WIM 等内部)。

3. 我们工作的最终结果
我们努力的最终结果。带预加载器的 Windows 7 x64 在纯 UEFI 系统(没有 CSM 和正确映射的 VGA I/O 端口)上启动正常:我们成功地测试了它,并确认可以在华硕 C8HM70-I、戴尔 Inspiron 3584、HP OMEN X 17-ap001ur、Atomic Pi、禁用 VGA 仿真的 bhyve 虚拟机、Windows 8 x64 客制化操作系统的 UEFI 模式下配置的 VirtualBox 虚拟机上运行。因此,不再需要在注册表中禁用 Vga 和 VgaSave 服务。它不再需要通过bcdedit 设置 "novesa on "选项。安全模式和 Windows 恢复正常工作。最后但也是最重要的一点。Windows 7 BSoD 的工作原理与预期一样:)
这种方法的唯一缺点是,屏幕分辨率被固定为1024x768,并添加了黑色的边框,以填充 LCD 屏幕的原生分辨率。但在安装了原生 GPU 驱动(英特尔、AMD 或 NVIDIA)后,一切都恢复正常。当 Windows 7 通过标准的 VGA 驱动显示动画化的操作系统标志时,黑色边框仅在开机时保留。
"在纯 UEFI 系统上提供 VGA 仿真的 Windows 7 x64 预加载器 "已经成为我们的软件产品(FlashBoot Pro)的一项功能。除了加载器的补丁之外,FlashBoot Pro 还提供了一套针对 USB 3.x、NVMe 和 AHCI RAID 控制器的预装驱动,只需打上几个复选框就可以集成到 Windows 7 设置中(这大大简化了 Windows 7 对现代电脑初学者的安装程序)。


官方下载:
https://flashboot-v3.prime-expert.com/flashboot-3.2x-setup.exe

注册文件:license_key.xml  (注:ANSI 编码即可)
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
  2. <FlashBootLicenseKey Type="Covermount" Campaign="CHIP-2020">
  3.     <Product Name="FlashBoot" Version="3.x" />
  4.     <User Name="usersrs" Email="paveloj977@mailop7.com" />
  5.     <ValidFrom Day="2" Month="5" Year="2020" />
  6.     <ValidUntil Day="3" Month="5" Year="2021" />
  7.     <DigitalSignature>
  8.         <S1>304E5A43:875DBCB6 00EF1DBE:935820FB 5E9D5851:C56117BD 577F94D8:40271526</S1>
  9.         <S2>D78FE15E:DF340F5D B72906F5:2E556318 48A0EF21:FD65E741 830E5631:9594FE03</S2>
  10.     </DigitalSignature>
  11. </FlashBootLicenseKey>
复制代码
如果对你有帮助,请好评5分,谢谢!


点评

辛苦了  发表于 2024-8-6 09:09

评分

参与人数 10无忧币 +39 收起 理由
yyz2191958 + 2 赞一个!
2012swd + 1 付费软件,广告贴!
330668573 + 5 很给力!
chinaren12 + 5 很给力!
szwp + 5
zhczf + 5 很给力!
leos1 + 1 赞一个!
hihk + 5 赞一个!
2012andyle113 + 5 赞一个!
有阴也有阳 + 5 很给力!

查看全部评分

81#
发表于 4 天前 | 只看该作者
学无止境啊!现在回想起来,15年时安装Windows 7不成的例子。好帖!谢谢
回复

使用道具 举报

80#
发表于 6 天前 | 只看该作者
KEY 失效
回复

使用道具 举报

79#
发表于 2024-11-3 00:07:15 | 只看该作者
标记以方便后续学习
回复

使用道具 举报

78#
发表于 2024-11-2 23:35:25 | 只看该作者
感谢分享
回复

使用道具 举报

77#
发表于 2024-10-30 14:45:04 | 只看该作者
谢谢分享
回复

使用道具 举报

76#
发表于 2024-10-6 20:16:24 | 只看该作者
对于洒家来说有点复杂
慢慢来吧
谢谢先
回复

使用道具 举报

75#
发表于 2024-9-29 10:38:22 | 只看该作者
那是不是新电脑都可以安装win7了
回复

使用道具 举报

74#
发表于 2024-8-6 08:56:54 | 只看该作者
赞一个!
回复

使用道具 举报

73#
发表于 2024-5-2 08:33:22 | 只看该作者
感谢老师分享,正在学习中
回复

使用道具 举报

72#
发表于 2024-4-13 11:53:10 | 只看该作者
感谢老师分享,正在学习中
回复

使用道具 举报

71#
发表于 2024-3-27 19:23:13 | 只看该作者
了解一下高级技术 在新硬件安装win7
回复

使用道具 举报

70#
发表于 2023-12-9 16:28:26 | 只看该作者
感谢分享!
回复

使用道具 举报

69#
发表于 2023-11-30 14:34:30 | 只看该作者
學習學習,感謝分享
回复

使用道具 举报

68#
发表于 2023-11-30 14:24:14 | 只看该作者
很给力!
回复

使用道具 举报

67#
发表于 2023-8-31 13:11:55 | 只看该作者
好东西,收藏。
回复

使用道具 举报

66#
发表于 2023-8-25 20:46:47 | 只看该作者
不错
回复

使用道具 举报

65#
发表于 2023-7-18 12:15:50 | 只看该作者
回复

使用道具 举报

64#
发表于 2023-4-29 09:34:11 | 只看该作者

谢谢分享软件
回复

使用道具 举报

63#
发表于 2023-4-27 14:34:32 | 只看该作者
感谢分享
回复

使用道具 举报

62#
发表于 2023-3-18 13:07:16 | 只看该作者
很牛的软件
回复

使用道具 举报

61#
发表于 2023-3-14 09:55:01 | 只看该作者
感谢分享
回复

使用道具 举报

60#
发表于 2023-3-7 15:43:59 | 只看该作者
2012wustone 发表于 2023-3-7 14:51
这思路nice,成功了吗?dell笔记本bios没打开csm选项,所以卡四叶草

很遗憾,没有。我只能在文件层面进行判断,更深层的硬件方面我就无能为力了,就连自己的系统也是一次可以一次不可以。所以放弃了。现在用win11
回复

使用道具 举报

59#
发表于 2023-3-7 14:51:45 | 只看该作者
qingyi78 发表于 2020-5-17 20:25
刚刚把文件做了比较,注册表文件被更改,但对注册表进行比较,发现没有任何改动。在不添加任何驱动,之进行 ...

这思路nice,成功了吗?dell笔记本bios没打开csm选项,所以卡四叶草

点评

很遗憾,没有。我只能在文件层面进行判断,更深层的硬件方面我就无能为力了,就连自己的系统也是一次可以一次不可以。所以放弃了。现在用win11  详情 回复 发表于 2023-3-7 15:43
回复

使用道具 举报

58#
发表于 2023-2-2 15:05:03 | 只看该作者
wuming520 发表于 2021-11-19 09:14
楼主想问下怎么注册呢

复制到安装文件夹
回复

使用道具 举报

57#
发表于 2021-11-19 09:14:39 | 只看该作者
楼主想问下怎么注册呢
回复

使用道具 举报

56#
发表于 2021-7-24 23:50:18 | 只看该作者
500系 的主板不行,能安好WIN7,但是核显无法驱动,独立也是无法驱动
回复

使用道具 举报

55#
发表于 2021-7-9 15:28:23 | 只看该作者
路过,踩一踩
回复

使用道具 举报

54#
发表于 2021-4-21 18:39:05 | 只看该作者
文件重启提示WINLOAD.EFI错误
回复

使用道具 举报

53#
发表于 2021-4-14 22:42:05 | 只看该作者
学习学习,这内容有点多,嘿嘿
回复

使用道具 举报

52#
发表于 2021-3-22 23:43:19 | 只看该作者
给力!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-22 08:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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