ISO 是古老的启动盘格式——光盘格式。古老的启动盘格式有好几种,比如软盘格式、硬盘格式。其中,软盘格式正处于被淘汰、被消灭的状态。光盘格式能够坚持多久?这无法断言。我只能说,UEFI 时代的主板,现在还在支持光盘格式。
ISO 格式,除了它是一种主板支持的“启动”格式以外,它还表现为一种“打包”格式。像 cpio 和 tar 这样的格式,就属于“打包”格式。能“打包”,也就能“解包”。
ISO 作为“启动”格式,它有 BIOS 的“引导头”(即,bootsector),或者,UEFI 的引导文件。它,作为光盘 cdrom,能够被真实机和虚拟机直接启动。
敲完了边鼓,现在归入正题。
ISO 作为“打包”格式,不“理睬”引导头,也不“理睬”引导文件,而是直接进入下一个环节,找到所谓“目标”载体,直接引导“目标”文件或“目标”系统。只要遵守某些“补充规范”,这是可以做到的。
loopback 并未建立虚拟机,也未建立虚拟(磁、光)盘。它本质上是一个“解包”过程,只不过不需要解开到一个文件夹下,而是能够动态读取 ISO 内的每一个文件。这种读取能力的存在,就是 loopback 的实质。
好了,既然可以通过 loopback 来访问 ISO 内的每一个文件了,那就设法启动这个 ISO 内的“目标”文件。也就是说,加载“目标”文件到内存(有时候还需要对运行环境进行某些动态调整,即“补充或修正”),然后递交控制权。
这就是说,multios-usb 从原则上说,能够启动大量的 ISO,只要针对每个具体的 iso 作具体的动态调整即可。
相比之下,grub4dos 启动 ISO 时,建立了虚拟盘。然而仅仅建立这种虚拟盘,是不能完全虚拟所有的 iso 的(只能虚拟一部分 iso,比如实模式的 DOS 光盘)。还需要有后续的 svbus 之类的配合,才能真正完成 iso 的启动和正确运行。也就是说,即使建立了虚拟盘,也不能彻底解决问题,而是照样需要用 svbus 之类的手段进行“补充或修正”。
原则上讲,带有“虚拟盘”功能的 iso 启动方法(Ventoy 是一个典型代表),能够启动更多的 iso,包括启动 BIOS 时代的那些 ISO。
而不带“虚拟盘”功能的 iso 启动方法(就像 multios-usb 那样的情况),则主要用于启动新近出现的 iso。它的服务重点,不是古老的 iso,而是未来的 iso。
随着时间的推移,随着 BIOS 和老电脑逐步退出历史舞台,可以想见,Ventoy 与 multios-usb 在 iso 启动方面的差异,会逐渐缩小,直至消失。两个软件都会不断进步、不断完善,其结果大概会是:殊途同归。