无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 8144|回复: 43
打印 上一主题 下一主题

[求助] 如何在一个 VHD 里制作兼容 UEFI 和 BIOS 启动的 Windows 系统镜像

  [复制链接]
1#
发表于 2022-3-17 21:52:41 | 显示全部楼层
其实Windows 10以上的系统本来就支持两种引导方式,区别就是不同的引导文件+BCD。所以,你就尽管做你的系统,而且,我还建议你优先使用mbr模式,制作好系统以后,你就做克隆,恢复到目标硬盘后,修改引导就行了。mbr就用bootmgr+bcd+winload.exe,而UEFI就用bootmgr.efi + BCD+winload.efi。

我现在基本上都在使用wimboot+vhd方式安装系统,在bios+mbr硬盘上就使用grub4dos+ntboot启动,而在UEFI+gpt系统上,就使用grub4dos_UEFI + ntloader方式启动,基本上没遇到过失败的情况。

  1. grub4dos+ntboot:
  2. iftitle [find /wimboot/W10Px64H2SLLi/W10SLLiwib00.vhd] A.Windows 10 Pro WS 20H2 x64 SLLite wimboot00@VHD(NTBOOT)
  3. savedefault
  4. find --set-root /boot/ntboot/NTBOOT
  5. set NTBOOT=%@root%/boot/ntboot/NTBOOT
  6. find --set-root /wimboot/W10Px64H2SLLi/W10SLLiwib00.vhd
  7. command %NTBOOT% NT6=/wimboot/W10Px64H2SLLi/W10SLLiwib00_A.vhd


  8. grub4dos_UEFI:
  9. title 启动 Windows 10 SLLite wib00
  10. savedefault
  11. find --set-root /wimboot/W10Px64H2SLLi/W10SLLiwib00.vhd
  12. uuid %@root%
  13. kernel /boot/ntloader uuid=%?_UUID% file=/wimboot/W10Px64H2SLLi/W10SLLiwib00.vhd
  14. initrd /boot/initrd.lz1
复制代码

点评

ntboot 启动系统是没问题,但是 VHD 里的 Windows 系统一旦自动更新,则会导致这种启动方式失效。 现在就是想做一个 GPT 的 VHD,然后把这个 VHD DD 到别的硬盘上,该硬盘就可以在 BIOS 模式下启动系统,并且在进  详情 回复 发表于 2022-3-17 22:01
回复

使用道具 举报

2#
发表于 2022-3-17 22:07:00 | 显示全部楼层
我就非常奇怪,你为什么非得坚持在vhd里安装系统,在实体分区就不能安装系统吗?

而且,vhd系统使用ntboot启动不能更新,wintoflash已经给出了合理的解释,你不要用ntboot方式启动就行了。用windows原生启动方式启动vhd系统是可以正常更新的。而且,使用什么启动方式取决于你恢复到目标机器的启动方式,根本跟你原来的vhd系统的启动方式无关。

总之,我就不知道你纠结啥。我觉得你根本没想明白你要做什么。

点评

之所以要在 VHD 里安装系统,是为了将这个 VHD 文件 DD 到别的硬盘上。 比如在一些没有 VNC 或 IPMI 的独服上,就需要 DD 个 Windows 镜像文件来达到安装 Windows 系统的目的。 VHD 用 GPT 分区表是为了支持 2TB  详情 回复 发表于 2022-3-17 22:12
回复

使用道具 举报

3#
发表于 2022-3-17 22:21:40 | 显示全部楼层
本帖最后由 Climbing 于 2022-3-17 22:22 编辑
teddysun 发表于 2022-3-17 22:12
之所以要在 VHD 里安装系统,是为了将这个 VHD 文件 DD 到别的硬盘上。
比如在一些没有 VNC 或 IPMI 的 ...

你可以将系统安装到vhd里,这完全没有问题,但如果想更新,就不要使用ntboot启动方式。但是,在恢复到目标机器后,你仍然需要修复引导。
12楼说得很明白了。

点评

大佬说的有道理,问题是在 GPT 磁盘里的 Windows 系统要如何修复,使其能在 Legacy BIOS 模式下用 Windows 自带的启动方式启动呢?  详情 回复 发表于 2022-3-19 12:35
回复

使用道具 举报

4#
发表于 2022-3-19 16:44:14 | 显示全部楼层
teddysun 发表于 2022-3-19 12:35
大佬说的有道理,问题是在 GPT 磁盘里的 Windows 系统要如何修复,使其能在 Legacy BIOS 模式下用 Wi ...

你应该了解,Legacy BIOS不支持从GPT硬盘启动,对吧?所以,你要先把GPT磁盘转成MBR格式,然后再引导修复就行了。

点评

看来确实是无解的。 要用到大于 2TB 的硬盘,就只能用 GPT 分区表。 Legacy BIOS 模式下转换为 MBR,就无法使用大于 2TB 的硬盘。  详情 回复 发表于 2022-3-19 16:51
回复

使用道具 举报

5#
发表于 2022-3-19 17:20:23 | 显示全部楼层
teddysun 发表于 2022-3-19 16:51
看来确实是无解的。
要用到大于 2TB 的硬盘,就只能用 GPT 分区表。
Legacy BIOS 模式下转换为 MBR,就 ...

你这东拉西扯的,怎么突然又扯到2T硬盘的事儿了,跟咱们讨论的主题有关系吗?跟你用VHD装系统有关系吗?

既然你要用到2T的硬盘,那就不要使用Legacy BIOS不就完了,我觉得目前还能用的电脑,大部分应该都支持UEFI,如果确实不支持,直接换新电脑就完了。

点评

其实我在文章一开始就补充说明了,为什么想要制作这么一个兼容 UEFI 和 BIOS 启动的 Windows 系统 VHD 呢? 是为了要将这个 VHD 文件 DD 到其他机器的硬盘上。 目标机器的硬盘是大于 2TB 的,且是 Legacy BIOS  详情 回复 发表于 2022-3-19 17:24
回复

使用道具 举报

6#
发表于 2022-3-19 17:47:58 | 显示全部楼层
teddysun 发表于 2022-3-19 17:33
也就是说,在 Legacy BIOS 模式下强行使用大于 2TB 的硬盘来作为系统盘,有以下两种结局:

1. 磁盘分区 ...

好吧,你这总结的已经非常全面了。既然你这电脑加了这么多限制条件,比如说一定要使用Legacy BIOS(其实我相信这电脑一定支持UEFI),那不妨再加一条:禁止Windows更新。其实在我看来,Windows更新基本上是没用的,大部分时候它带来的麻烦比好处多。

有了关键更新怎么办:定期更新你的vhd系统,然后再定期将vhd系统DD到电脑上。或者,在打补丁时,临时切换到UEFI+GPT+微软官方引导,补丁打完后,再切换回bios+Grub2+ntboot方式。
回复

使用道具 举报

7#
发表于 2022-3-19 22:13:49 | 显示全部楼层
szwp 发表于 2022-3-19 18:49
4T硬盘MBR,没问题。
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=428127&pid=445 ...

能不能详细讲讲技术细节(是否需要什么特殊的技巧或者hack mbr分区表)?我印象中也见过将4T硬盘在MBR下分成两个2T使用的情况,但不太确定了。

如果是6T的硬盘,能不能分成3个2T的mbr?

而且,我看你的4T硬盘mbr分区,都是前面两个小分区,然后后面两个2T的分区,但总感觉哪里不对:第一,你这分区的总空间超过了硬盘本身的容量;第二,第4个分区的起始扇区应该超过了4个字节所能表示的最大扇区数量。

点评

4个字节所能表示的最大扇区数量,你认为是多少,可以算一下发出来。  详情 回复 发表于 2022-3-20 08:06
最大数是指区,而不是盘,你要只理解第一个4字节是起始,第二个4字节是长度,而不是结束的LBA.  详情 回复 发表于 2022-3-20 08:03
回复

使用道具 举报

8#
发表于 2022-3-20 08:37:38 | 显示全部楼层
好吧,我又仔细看了一下,4个字节表示的最大扇区数是(2^32=4,294,967,296),折算成空间就正好是2048G(2T)。而分区表中前面的四个字节表示分区的起始扇区,所以,第四个2T分区能建立的关键是不让其分区起始扇区超过4,294,967,296这个数字,也即,其前面的三个分区的空间(当然也可以是一个分区、两个分区,反正mbr最多四个分区)加起来不能超过2T。而大部分4T的硬盘实际上是按1000(不是1024)算的,折算下来只有3.7T左右,所以,如果最后一个分区是2T,那么,前面只有1.7T,无论如何也不会超过2T这个限制。

总感觉有些人就是喜欢故弄玄虚,其实太阳底下也没有什么新鲜事儿。

点评

错误的认识在于将分区的限制当成硬盘的限制及 第二,第4个分区的起始扇区应该超过了4个字节所能表示的最大扇区数量。  详情 回复 发表于 2022-3-20 18:58
用逻辑分区的话可能可以达到更大的容量。  详情 回复 发表于 2022-3-20 16:40
回复

使用道具 举报

9#
发表于 2022-3-20 17:34:18 | 显示全部楼层
wintoflash 发表于 2022-3-20 16:40
用逻辑分区的话可能可以达到更大的容量。

最大也就是4T(这个4T是真正的4T,不是硬盘容量那个4T)了,关键是分区起始扇区和分区扇区数目这两个数字被4字节给锁死了。

当然,如果扇区不是512字节,而是4K,那么理论上还可以大8倍。

点评

[attachimg]497985[/attachimg] 对于扩展分区,分区表里面的起始 LBA 是相对于扩展分区表的,所以只要一个扩展分区不超过 2TB ,就可以接着往下套扩展分区。  详情 回复 发表于 2022-3-20 18:23
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-8 04:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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