关于SX_veket安装器的一些问题说明
有网友希望SX_veket安装器能够更加简单点,很多名词弄不清楚,在此做几点说明。
1、ntldr/bootmgr/grub4dos/grub2引导器是什么?有什么区别?
ntldr是win98/me/2000/xp的默认OSloader,bootmgr是WIN7/8/10在BIOS下面的引导器,bootmgfw.efi是WIN7/8/10在UEFI下面的引导器,他们都是微软的引导器,能够过主板UEFI的安全启动(secure boot)。
grub4dos是不点在2003年基于GNU grub legacy发起的开源项目,主要语言是汇编语言,后来bean、chenall、2011yaya2007、wintoflash等大神陆续加入开发队伍,现在的开发者主要是2011yaya2007和wintoflash。grub4dos由于没有loopback命令,因此支持loopback仿真启动的那些linux发行版就难以用grub4dos整体不解开启动linux.iso,比如veket,只能采用partnew方案启动,partnew方案是比较危险的一个方案,要求必须是MBR分区,而且MBR主分区小于等于3个,而且ISO必须连续存储,限制较大。GNU grub后来发起了grub2项目,是模块化的设计。
2019-11-3日,wintoflash大神魔改了官方GNU grub2,支持了map iso和map --mem pe.iso功能,wintoflash是个超级牛逼的人物,GNU grub项目由一个团队在维护,c语言代码大概100万行,外加4万行汇编,还有UEFI那本开发规范都有2558页,代码量和相关规范超级多,不说修改,能够看懂都不错了,而wintoflash一个人撑起了魔改grub2的任务。我现在用的grub2是wintoflash大神魔改的GNU grub2,grub2定制起来需要懂得的知识点还是很多的。grub2支持BIOS/UEFI启动,但是grub2-BIOS版本由于受制于MBR空间限制,放不了太多的代码,因此ntfs驱动难以放入,这导致了grub2-BIOS版本搜索菜单功能受限,grub2-BIOS版本兼容性没有grub4dos好,因此grub2-BIOS适合于作为第二启动项,比如用bootmgr→grub2-BIOS,或者grub4dos→grub2-BIOS这样子,但是grub2支持loopback命令,便于整体iso仿真启动。
2011yaya2007777参考了wintoflash魔改的grub2 map的部分代码发起了grub4dos_UEFI项目,2020-8-27和2020-10-29在论坛发布了32位和64位的grub4dos_UEFI,使得grub4dos可以用于UEFI启动,菜单和BIOS下面的差不多,略有区别。
2、启动分区的选择能否去掉?
一般情况下,如果windows启动的时候采用的是微软体系的引导器,比如ntldr/bootmgr/bootmgfw.efi的情况下,批处理调用527104427的ChkMbrPbr_x86可以准确地判断启动分区,按回车键就会取默认值,问题是去掉之后能否满足所有人的需求?说几个场景:
(1)优盘、移动硬盘或者NVME-ssd高速固态优盘,我想要安装到里面,软件判断当前启动分区是硬盘的活动分区,但我不是想要安装到硬盘啊,我想要安装到USB设备怎么办?如果不给个选择项,那就只能换工具了。
(2)空白新硬盘(包含vmware虚拟机的新硬盘)。硬盘分区格式化之后、新建的虚拟机里面新硬盘,什么都没有,对于BIOS启动下的bootmgr方案,从PE启动,任何一个活动分区都可以当做引导分区,不给出选择,怎么适应这些场景?
对比下rufus、ultraiso、unetbootin这样子的傻瓜化工具,一上来就咔咔咔干掉优盘里面所有的数据,启动分区当然是确定的,问题是这是大家想要的吗?大家的优盘里面都是有数据的,移动硬盘数据更多,少则几十GB、多则几TB,一上来就咔咔咔干掉优盘移动硬盘里面所有的数据,这是你们想要的简单化、傻瓜化吗?我宁可不用。
3、清除保留扇区的功能能否去掉?
BIOS引导首先需要调用MBR分区上保留扇区上的引导代码,有的硬盘、优盘可能有残留的引导代码,这些引导代码,有可能会导致grub4dos获取不到控制权,如果不清除,grub4dos可能就无法启动,也就无法启动veket。那么不提示强制清除保留扇区好不好?不好。因为清除引导扇区之后,如果直接关闭批处理程序,可能导致修改了MBR,硬盘无法引导,如果完全走完流程了这个问题不存在。因此清除保留扇区的功能默认是关闭的,按Y确认才会执行,这是用于有一定基础的用户,这样子把小白和高手隔离开来更好吧。
对比下rufus、ultraiso、unetbootin这样子的傻瓜化工具,一上来就咔咔咔干掉优盘里面所有的数据,所有数据都干掉了,当然包括保留扇区了,问题是这是大家想要的吗?大家的优盘里面都是有数据的,移动硬盘数据更多,少则几十GB、多则几TB,一上来就咔咔咔干掉优盘里面所有的数据,这是你们想要的简单化、傻瓜化吗?我宁可不用。
4、输入menu.lst/grub.cfg菜单要拷贝到的盘符能否去掉?
前面说了,批处理需要适用于不同的启动介质,我理解大家想把veket安装在USB设备的需求,批处理考虑了这个需求,给出提示让大家选择。对于我这边,给个选择,我可以让一个菜单通杀实体机和vmware虚拟机。因为我的主力系统是win10,工作环境在win10下面,有时候想测试下某个veket版本的启动是否正常、功能是否正常、软件能否安装,我没必要重启win10,我直接在win10下面就可以进行测试了。比如E:\grldr和menu.lst存在,我把E:盘挂载到虚拟机里面,grldr+menu.lst这一套东西就可以通杀实体机和vmware虚拟机,如果去掉盘符选择,比如强制拷贝到C盘,这个需求就无法实现了。
为什么要在虚拟机里面测试veket?因为我工作的环境办公OA、财务报销系统等都必须要在windows下面,linux下面的qq和微信比windows下面的还是差那么一点点。
5、为什么不把veket.iso解压缩到C盘或者D盘?
那我想问下你,你为什么要把veket.iso解压缩到C盘或者D盘?我想要解压缩到E F G H I J K盘怎么办?
我很讨厌lick、easybcd强制直接解压缩veket.iso到C盘,我的C盘是vhd系统或者是RAMOS系统,解压到vhd或者RAMOS的C盘根本就不可能启动,vhd里面嵌套个veket怎么启动?RAMOS的C盘重启里面的东西就没有了,所以说lick、easybcd完全无法适用于我的场景。
另外,有时候只是想测试下某个功能或者软件是否正常,我想保持veket.iso的完整性,我不想解开veket.iso,你凭什么一上来就咔咔咔地解压缩?要知道veket20版本及以上支持loopback或者partnew方案整体启动,我为什么要解开?(这个loopback方案,是我在wintoflash大神的指点下,研究透彻适用于veket的菜单的)
我写的批处理就只是写引导+全自动写菜单,其他的比如分区、格式化、解压缩什么的一概不做,都是无损操作,veket你可以放到任何一个windows可以识别的盘符、任意一个英文的包含veket关键字不含空格的目录,SX_veket安装器都可以让他启动,veket.iso解开/不解开随你便。
6、和ventoy启动方案相比有什么区别?
我的初衷是想把veket安装到硬盘,而不是优盘、移动硬盘、固态优盘,因为一个veket作为轻量级的桌面版操作系统,他对标的是windows或者其他的linux发行版,如果硬盘都没有veket的一席之地,他就是个失败的操作系统,你见过几个人把debian、ubuntu、UOS、ubuntukylin、deepin安装在USB设备上面作为主力系统的?大家不都是安装在硬盘上的吗?要知道机械硬盘的读写速度是普通优盘的5~6倍,sata-ssd或者NVME-ssd读写速度是普通优盘的25~100倍,有更快的硬盘我为啥要安装到优盘?ISO下载好了在硬盘就可以启动,我为啥要挪动到速度慢的优盘?
ventoy是一整套完整的USB启动解决方案,使用起来很简单,上手很快,新手也可以很快使用,但ventoy设计初衷面向的是Legacy BIOS会逐渐消亡的未来,它的主要精力在于UEFI启动方面,BIOS启动会有花屏、黑屏等现象,这是因为作者longpanda在BIOS和UEFI下面都是用的grub2启动方案,grub2版本是官方GNU grub2.02,grub2-BIOS方面作为第一启动能力很弱,兼容性、可靠性跟grub4dos、bootmgr完全没法比,grub4dos开发了十几年,可以面对各种buggy的主板。ventoy可以无损安装到硬盘,但安装到硬盘由于采用了非微软体系的引导,可能会导致windows安装失败,因为windows安装会检查MBR引导器。另外ventoy倾向于iso整体启动,对于veket不能保存数据,如果想要保存数据,必须要自己写菜单,这违背了ventoy免写菜单的初衷。
我的批处理方案倾向于本地硬盘(同时兼顾优盘),而ventoy倾向于USB设备(同时兼顾硬盘),这是设计初衷的区别。
未完持续。。。