|
直到最近才接触的启动和封装技术,从各论坛上找了些初级教程学了点皮毛,有许多地方不甚了解,正在四处搜罗资料慢啃中。
近几日尝试了grub4dos,由于之前也常用grub,对兼容grub和系统引导的部分没太大问题。
对G4D的磁盘仿真很感兴趣,试着用U盘map原生WinXP的ISO安装系统时遇到问题。
=================================================
拜读了论坛里的帖子,终于弄明白了XP的安装过程,搞定了menu如下
以下是小弟的menu.lst
(虽然镜像用了--mem,还是保守地希望能在连续的存储空间里以便能测试直接map,所以格盘后拷进去)- # 第一阶段在内存里虚拟出firadisk的驱动软盘fd0
- # 交换磁盘映射将U盘映射为hd1本地第一块磁盘映射为hd0
- # 导入XP的镜像到内存映射为硬盘hd32(本子还行,花了不到2分钟^_^)
- # chainloader交给hd32
- title INSTALL - WinXP Pro VOL (Step 1)
- find --set-root /WinXP/firadisk.img
- map (hd0) (hd1)
- map (hd1) (hd0)
- map --mem /WinXP/firadisk.img (fd0)
- map --mem /WinXP/WinXP.iso (hd32)
- map --hook
- chainloader (hd32)
- # 直接加载iso到内存并chailoader交给本地磁盘的第一扇区
- # 安装过程有关于firadisk未通过微软验证的提示选择继续就哦了
- title INSTALL - WinXP Pro VOL (Step 2)
- find --set-root /WinXP/WinXP.iso
- map (hd0) (hd1)
- map (hd1) (hd0)
- map --mem /WinXP/WinXP.iso (hd32)
- map --hook
- chainloader (hd0)+1
复制代码 查了下G4D的wiki支持简单的逻辑条件指令和NTFS,貌似可以把两阶段的菜单项整合为一项?
比如先检查本地盘里是否有第一阶段复制过来的安装文件,有则不加载firadisk到内存并且chainloader移交给hd0?
想请教下,第一阶段XP复制到磁盘的安装文件里,在根目录下主要有哪些文件,最好路径中不含特殊字符的?
===================================
用firadisk的文件做为判断将两阶段菜单合并了下,测试可行。- title INSTALL - WinXP Pro VOL
- find --set-root /WinXP/WinXP.iso
- map (hd0) (hd1)
- map (hd1) (hd0)
- # 若找不到firadisk.sys再执行map仿真firadisk驱动软盘
- find /WINDOWS/OemDir/firadisk.sys || map --mem /WinXP/firadisk.img (fd0)
- map --mem /WinXP/WinXP.iso (hd32)
- map --hook
- # 若找不到firadisk.sys则从光盘启动,否则从本地磁盘启动
- find /WINDOWS/OemDir/firadisk.sys || chainloader (hd32)
- chainloader (hd0)+1
复制代码 唯一的问题是,如果磁盘里某分区安装前就有/WINDOWS/OemDir/firadisk.sys该文件的话会造成干扰而达不到预期效果。
====================================
人工或借助nlite等工具把firadisk整合到XP的ISO里,省去了map出firadisk的步骤。- title INSTALL - WinXP Pro VOL
- find --set-root /WinXP/WinXP.iso
- map (hd0) (hd1)
- map (hd1) (hd0)
- map --mem /WinXP/WinXP.iso (hd32)
- map --hook
- find /WINDOWS/OemDir/firadisk.sys || chainloader (hd32)
- chainloader (hd0)+1
复制代码 ====================================
突然想到一个讨巧的办法,利用XP的引导(press any key ..)简化掉逻辑判断,(已整合firadisk的ISO)测试中:- title INSTALL - WinXP Pro VOL
- find --set-root /WinXP/WinXP.iso
- map (hd0) (hd1)
- map (hd1) (hd0)
- map --mem /WinXP/WinXP.iso (hd32)
- map --hook
- # 始终由光盘启动,但第二阶段出现(press any key ...)时不按键跳过,默认从hd0启动
- chainloader (hd32)
复制代码
[ 本帖最后由 2010Dfish 于 2010-8-10 12:17 编辑 ] |
|