wavelu 发表于 2023-6-8 14:50:35

更简单的VHD(x)系统

本帖最后由 wavelu 于 2023-11-19 15:11 编辑

自Windows7起始,Windows提供了原生的VHD启动能力,VHD文件制作和使用很方便,但编辑BCD启动选项很复杂,尤其是小白同学,简直是一头雾水。
随着UEFI全面替代传统BIOS,且UEFI提供了应用级别的开发能力,使得我们能力在UEFI的级别上制作通用的系统引导管理器,最主要是更简化的设置或者不需要设置就能启动VHD(x)镜像文件。

AINUC云固件就是这样的一个开发成果,欢迎大家测试和验证。
AINUC®️云固件的安装 - 知乎 (zhihu.com)

更多内容可以搜索“AINUC云固件”,知乎、B站都有视频讲解。微信公众号:“云固件”
来自“无忧论坛”的网友希望加入交流群的,可以微信搜索“AINUC99”添加云固件小助手。

云固件主程序:r1.6.23942

云固件镜像文件:

Windows 10/11:
Windows 10 Pro
Windows 11 Pro

Ubuntu:
Ubuntu 22.04 LTS

有概率无法启动的国产系统:
深度操作系统


wavelu 发表于 2023-6-8 14:55:29

https://pic4.zhimg.com/80/v2-ad907060b896df83a64d8ada32eb35f7_1440w.webp

wavelu 发表于 2023-6-8 15:01:03

云固件主界面
https://pic3.zhimg.com/80/v2-3d52cc7108da814e9dd92e6b8bf2e222_1440w.webp

wavelu 发表于 2023-6-8 15:15:46

本帖最后由 wavelu 于 2023-6-8 15:29 编辑

B站视频直达链接
AINUC云固件
知乎专栏直达链接
AINUC®️云固件 - 知乎 (zhihu.com)

dododo 发表于 2023-6-8 15:35:40

顶一下

huyz 发表于 2023-6-8 15:36:12

谢谢分享。

yyz2191958 发表于 2023-6-8 15:40:46

学习了一下

yc2428 发表于 2023-6-8 15:48:18

谢谢分享。

cuicongyuan 发表于 2023-6-8 16:06:22

主界面很漂亮

2013qwaszx 发表于 2023-6-8 16:46:27

本帖最后由 2013qwaszx 于 2023-6-8 16:51 编辑

楼主你好,通过阅读您给出的知乎链接中的文字介绍后,有如下疑问:

1. 关于“云固件”中的“云”,我在阅读了四篇文章后,仅在《AINUC®️云固件是什么?》一文中的“云固件的基本原理”小节中看到有关“云”,或者说联网启动的功能。然而,在后面却说目前还不支持网络下载,那么“网络下载镜像”功能预计什么时候能够实现呢?

2. 您在《白话云固件》一文的结语中提到:“云固件通过将镜像文件虚拟成物理硬盘的方式”,请问“镜像文件”的格式有无要求?本帖子主题为“更简单的VHD(x)系统”,那么对其他虚拟磁盘格式是否支持,例如VMware公司的vmdk格式,VirtaulBox的vdi格式,QEMU的qcow2格式,裸磁盘/分区RAW格式,抑或是云固件的专有镜像格式?

3. 我在多篇文章开头看到了“L1”、“L2”和“L3”级别等字样,这分别代表哪些用户?

4. 另外,如果在多台计算机之间相互移植操作系统,是否会出现因驱动、磁盘挂载配置等问题造成的无法启动现象,云固件又是如何解决相应问题?

5. 论坛中已有相关启动虚拟硬盘镜像文件的作品,例如NTBOOT可启动装有Windows操作系统的VHD(x)格式,Ventory可启动装有Windows和Linux的VHD(x)格式,甚至是装在vdi中的Linux(ventoy.net/cn/plugin_vtoyboot.html),那么“云固件”除了“联网”之外对于这类启动器有何优势?

最后,向楼主提出建议:

1. 在知乎专栏的四篇介绍文章中,重复内容太多,可以考虑适当精简背景介绍相关文字,毕竟对于有“云固件”需求的人大多都会对计算机历史、计算机启动过程有些了解。



bfgxp 发表于 2023-6-8 16:59:02

云固件,名字起得好,但功能上要跟进才行,不能只解决启动上的问题。
就现有的功能上来说,好像g4u+ntboot4u就可以了。
bios的话,g4d+ntboot就可以了,这个我十年前就发过成熟的方案。
既然名字与云扯上关系了,就应该实现镜像的批量管理与p2p分发,就是功能上向现在的voi模式的桌面云靠近。

wintoflash 发表于 2023-6-8 17:14:51

软件源码公开要求
楼主提供的软件核心部分 "bootx64.efi",显然是基于 rEFInd 进行修改的。
rEFInd 的许可证是 GPLv3。此许可证要求修改者以某种方式把修改版向公众发布时,必须向用户提供修改版的源代码。



https://sourceforge.net/p/refind/code/ci/master/tree/COPYING.txt

因此,我有权要求楼主公开此部分源代码,以符合 GPLv3 许可证的协议。


https://www.gnu.org/licenses/gpl-faq.zh-cn.html#GPLRequireSourcePostedPublic

请楼主遵守 GPLv3 许可证的相关协议。
如果楼主的软件没有使用/修改 rEFInd 的代码,请举出相关证据,如果属实,我将致歉。

ldshun 发表于 2023-6-8 17:17:14

学习了一下

wavelu 发表于 2023-6-8 17:22:40

bfgxp 发表于 2023-6-8 16:59
云固件,名字起得好,但功能上要跟进才行,不能只解决启动上的问题。
就现有的功能上来说,好像g4u+ntboot ...

还是咱们这里能收到回馈,先赞一个。

目前的r1.2.23418版本处于一个可用的系统状态,离最终的“云固件”定义还有差距,当前实现了镜像的启动、离线的导入导出功能。相当于千头万绪走出了第一步。

第二步就会引入网络下载的功能,网络本身的支持开发难度有,但不是难克服,难点是镜像与主机的匹配,也就是得攒够足够的镜像资源,这样用户才能下载到适合用户主机的镜像文件。

所以也是为啥先把第一步的成果提交出来了。

caocaofff 发表于 2023-6-8 17:26:50

哈哈,关注一下{:1_186:}

wavelu 发表于 2023-6-8 17:37:26

2013qwaszx 发表于 2023-6-8 16:46
楼主你好,通过阅读您给出的知乎链接中的文字介绍后,有如下疑问:

1. 关于“云固件”中的“云”,我在 ...

1 网络下载的能力包含两块功能,一是网络本身支持功能,二是资源,没有可用的镜像文件资源,网络下载功能就是瘸子;但镜像资源需要积累,所以才先发出来了目前的版本。预计支持网络下载能力的版本r2.x系列在23年Q4左右发布;

2 由1带来的镜像资源文件问题,本质上是可以支持多种格式的,但比较流通的是vhd(x)格式,所以最后一定是统一到vhdx格式上,而且工具也比较多;

3 咱们这里的同学比较专业,所以能看懂vhd系统相关的术语,但知乎、B站以及微信视频号里面的同学差距太大的,所以才区分了L1到L3三个等级,L1相当于会使用计算机的小白同学,L2了解基本硬件、知道操作系统、能够自行安装软件和配置,L3相当于高手级别,能够自行安装Windows操作系统、了解Linux等其他系统;

4 云固件核心要解决的问题之一,所以镜像资源就需要做硬件差异化,所以会出现镜像文件从L0-L5的差分镜像来解决这个问题,文章后续会发出来。

5 云固件与其他启动器的差别,主要是镜像资源差别,部署方式区别,以及操作镜像(下载、差分、回滚、备份、加密等)能力;

建议:第一次从0起步做内容,面临了很多不同能力、不同背景的朋友、同学、同事等用户,要求也不同,所以文章没有考虑全面,先出来,再更改,包括视频介绍也是如此。


总而言之,是骡子是马总得拿出来溜溜,感谢大家的宝贵意见!!

wavelu 发表于 2023-6-8 17:47:39

wintoflash 发表于 2023-6-8 17:14
软件源码公开要求
楼主提供的软件核心部分 "bootx64.efi",显然是基于 rEFInd 进行修改的。
rEFInd 的 ...

哈哈,被你发现了,界面确实借用了refind部分,核心是自主开发的VirtualDiskDxe的函数库,更改的代码会在GitHub上公开。

zhangz9 发表于 2023-6-8 18:37:09

多谢分享

wintoflash 发表于 2023-6-8 19:15:54

wavelu 发表于 2023-6-8 17:47
哈哈,被你发现了,界面确实借用了refind部分,核心是自主开发的VirtualDiskDxe的函数库,更改的代码会在 ...

那希望楼主尽快兑现承诺。
另外,我有以下疑问:

如果核心部件开源的话,如何做到这一点?在 Windows 虚拟磁盘驱动上做限制吗?如何盈利?

微软是拒绝给 GPLv3 许可协议的 EFI 程序签名的。楼主打算如何解决?通过 shim 吗?

GameMaster2012 发表于 2023-6-8 19:47:19

先去投个币

旁观者清 发表于 2023-6-8 19:47:19

走一步是一步。加油。

2012andyle113 发表于 2023-6-8 21:08:31

做个记号,看看再说

xuziyi 发表于 2023-6-8 21:22:16

感谢分享!

soinczt 发表于 2023-6-8 21:39:40

学习,谢谢楼主分享

wavelu 发表于 2023-6-8 23:42:28

wintoflash 发表于 2023-6-8 19:15
那希望楼主尽快兑现承诺。
另外,我有以下疑问:



云固件使用的refind的界面代码,见这个代码库
https://github.com/ainuc99/Multiware

主要修改的是launch_efi.c 411行,增加VD文件启动调用;
main.c 497行,增加vd.config自定义配置入口;

这部分的代码已经在替换中了,您可以看MultiwarePkg.dsc中有个BootUI的Application,就是用来平替这部分GPL代码的。

wavelu 发表于 2023-6-8 23:56:17

本帖最后由 wavelu 于 2023-6-9 00:05 编辑

wintoflash 发表于 2023-6-8 19:15
那希望楼主尽快兑现承诺。
另外,我有以下疑问:


后面两个问题,先大大的赞一下,早知如此,就应该早早来无忧论坛发帖了,少走弯路。

安全启动、签名证书、盈利,这些都需要回避GPL的代码,所以您在查看我编译后代码可以我使用EDK来作为工具和环境,没用更简单的GNU-EFI来开发,着实费了不少劲,refind代码本身在EDK 2021之后就无法编译通过,调整和删除了很多代码后才能编译通过,而且基础的Str库还有问题。最重要的是,我只是需要使用一个界面代码,图省事就觉得拿现成代码用一下,结果后悔莫及,花掉的时间远远超过用EDK函数库自己构建一个的时间。

而且,微软签名的代码不能包含GPL代码,真是肠子都悔青了。

后续的解决方案就是平替这些代码,技术上就是使用EDK的函数库,封装的也很不错了,而且云固件也不需要复杂功能,所以比较容易处理。

在这个基础上,做个简单的证书许可即可完成限制。对普通用户来说,不需要注册账户即可使用,三个入口也足以应付日常需要,而且也可以利用目前的helper启动辅助盘来变相支持超过3个镜像。商业化的模式更多面向专业用户,提供差分的快照、回滚、加密等等高级功能。毕竟只用爱发电是无法养活自己来支持项目的。

seeimpact153 发表于 2023-6-9 02:19:35

谢谢分享

2010sya 发表于 2023-6-9 06:00:49

谢谢。。。

dododo 发表于 2023-6-9 11:32:26

支持下

呵呵#1861 发表于 2023-6-9 15:32:50

学习一下
页: [1] 2 3
查看完整版本: 更简单的VHD(x)系统