iso 文件是用于光驱的,当 grub4dos 从实模式启动这个 iso 之后,linux 的实模式启动过程就正常开始了。但是,linux 会从 cpu 实模式切换到 cpu 的虚拟地址保护模式,这样,grub4dos 的仿真就失效了,linux 就找不到 cdrom 了。其实 linux 以为您是用 cdrom 来安装和使用 linux 的,所以,它要去找 cdrom,结果未能在 cdrom 上找到它自己的一些程序文件或配置文件,导致启动出现异常。您必须修改 linux 的启动脚本,让它不要仅仅去找 cdrom 设备,而是当 cdrom 上不存在自己的相关文件时,还要智能地查找各个设备的各级子目录下的 iso 文件,并根据某些特征,识别出这个 iso 文件是否正是自己所要找的文件,一旦找到符合条件的文件,就把它当做 cdrom 进行 mount 的操作,继续启动,这样就等于支持了 grub4dos 的 iso 启动功能了。
是要修改 linux 的启动脚本,让它不要把自己锁定为 cdrom,而是让自己可以呆在 iso 文件里面。如此一来,就不会失败了。