|
chenall老师:
您好,找了一个“MicroPE的外置菜单文件”:MICROPE.LST
这个文件好像有点问题,想麻烦您帮忙给看一下,先谢谢您了。。。。。。
MICROPE.LST:
- terminal console
- color white/blue blue/yellow light-red/blue 10
- default 0
- timeout 2
- debug off
- clear
- title [0] Micro Windows PE (autocheck)\n\r\n\t Micro Windows PE by chenall 2009.5.1 http://www.chenall.com
- fallback 14
- cat --locate-align=1 (md)+1,1 ||kernel
- #PXE启动检测
- fallback 1
- checkrange 0x21 read 0x8280 && kernel
- #iSCSI启动检测,在内存512K-1024K之间查找iSCSI启动标志
- fallback 2
- cat --locate=\x69BFT --locate-align=16 (md)0x400+0x400 && kernel
- fallback 3
- write 0x60100 0
- pause --wait=0 Boot MicroPE From local by chenall 2009.5.1
- cat --length=0 /WXPE/WINPE.IMG && kernel
- find --set-root /WXPE/WINPE.IMG && kernel
- find --set-root /boot/MicroPE.ISO
- map /BOOT/MICROPE.ISO (0xff) || map --mem /BOOT/MICROPE.ISO (0xff)
- map --hook
- #保存ISO文件所在分区号(用于进入PE后确定使用的ISO文件磁盘,因为有可能有多处存在)
- cat --length=0 (0xff)/MINIPE/EXT.ZIP && dd if=(md) of=(md) bs=1 count=1 skip=0x829e seek=0x603FF
- cat --length=0 /BOOT/MICROPE.ISO && dd if=(md) of=(md) bs=1 count=4 skip=0x8290 seek=0x603FB
- root (0xff)
- kernel
- title
- pause --wait=0 Boot MicroPE From PXE by chenall 2009.5.1
- pause --wait=0 Loading WINPE.IMG ......
- checkrange 0x1E000:-1 read 0x8298 && write 0x82a4 1
- map --mem=0xB000 /WXPE/WINPE.IMG (rd) || map --mem=0xB000 /MicroPE_PXE.ISO (rd)
- write 0x82a4 0
- write 0x60100 1
- map --mem (rd)/WINPE.IMG (fd3) || map --mem (rd)+1 (fd3)
- fallback 3
- fallback F
- title
- pause --wait=0 Bootting MicroPE From iSCSI ......
- write 0x60100 2
- hiddenflag && unhide
- fallback 3
- fallback F
- title
- pause --wait=0 Loading WINPE.IMG and EXT.IMG ......
- checkrange 0,2 read 0x60100 && map --mem /WXPE/WINPE.IMG (fd3)
- map --hook
- #定位外置程序路径/MINIPE/EXT.ZIP,如果没有找到就启动失败
- cat --length=0 /MINIPE/EXT.ZIP || find --set-root --ignore-floppies /MINIPE/EXT.ZIP
- #保存当前ROOT
- dd if=(md) of=(md) bs=1 count=8 skip=0x829c seek=0x60110
- #查找OEM_SCSI.IMG和OEM_SRS.ZIP
- errorcheck off
- find --set-root --ignore-floppies --ignore-cd /OEM_SRS.ZIP || find --set-root --ignore-floppies --ignore-cd /MINIPE/OEM_SRS.ZIP
- checkrange 0 errnum || find --set-root --ignore-floppies --ignore-cd /OEM_SCSI.IMG
- errorcheck on
- cat --length=0 /OEM_SCSI.IMG && write 0x60008 4
- cat --length=0 /MINIPE/OEM_SRS.ZIP && write 0x60008 3
- cat --length=0 /OEM_SRS.ZIP && write 0x60008 2
- checkrange 2,3 read 0x60008 && dd if=(md) of=(md) bs=1 count=4 skip=0x8290 seek=0x60010
- checkrange 2 read 0x60008 && map --mem /OEM_SRS.ZIP (fd1)
- checkrange 3 read 0x60008 && map --mem /MINIPE/OEM_SRS.ZIP (fd1)
- checkrange 4 read 0x60008 && map --mem /OEM_SCSI.IMG (fd1)
- #还原ROOT
- dd if=(md) of=(md) bs=1 count=8 skip=0x60110 seek=0x829c && root ()/MINIPE
- map --mem (fd3)/EXT.IMG (fd0)
- #如果外置程序所在磁盘的BIOS号是0-3或0x80-0x90,就把这个磁盘映射为(hd1)备用.
- checkrange 0:3 read 0x82a0 && map ()+1 (hd1)
- checkrange 2 read 0x60100 && map ()+1 (hd1)
- map --hook
- #重新确认外置程序所在位置
- cat --length=0 /EXT.ZIP || root (hd1,0)/MINIPE
- dd if=(md)0x41+1 of=(fd0)/_EXT.ZIP bs=1 count=4 skip=0x90
- map --mem=0xB000 /EXT.ZIP (rd) && dd if=(rd)+1 of=(fd0)/_EXT.ZIP bs=1 seek=4
- pause --wait=0 Modify configuration information
- #以下语句用于修改CONFIG.SYS让它加载UNDI_DRV.EXE.默认不加载,使用PXE启动时通过修改特定字符让它加载.
- checkrange 1 read 0x60100 && write (fd0)/config.sys devi
- #设置DOS变量(1.PXE;2.iSCSI;0.本地)
- checkrange 2 read 0x60100 && write --offset=0x0 (fd3)/_SETENVI.BAT \r\nset boot=2\r\n
- checkrange 1 read 0x60100 && write --offset=0x0 (fd3)/_SETENVI.BAT \r\nset boot=1\r\n
- checkrange 0 read 0x60100 && write --offset=0x0 (fd3)/_SETENVI.BAT \r\nset boot=0\r\n
- checkrange 4 read 0x60008 && write --offset=0x40 (fd3)/_SETENVI.BAT \r\nset srs=OEM1\r\n
- #如果DEBUG开启显示DOS的启动菜单以方便错误处理
- checkrange 2 debug && write --offset=0x14 (fd0)/msdos.sys 1
- checkrange 2 debug && write --offset=0x10 (fd3)/_SETENVI.BAT \r\nset debug=1\r\n
- checkrange 0 read 0x60100 && fallback 4
- checkrange 0xa0:0xff read 0x82a0 && fallback 15
- checkrange 0 read 0x60100 && kernel
- #把PXE启动的IP地址信息传到DOS下
- dd if=(md)0x41+1 of=(fd0)/IP.BIN bs=1 count=12 skip=0x84
- cat --length=0 (fd3)/WXPE/SYSTEM/SYSTEM.WIM || write 0x60000 2
- cat --length=0 (fd3)/WXPE/NET/NET.WIM || write 0x60004 2
- fallback 4
- fallback F
- #模块化跳转
- title
- fallback 5
- checkrange 2 read 0x60000 && kernel
- fallback 6
- checkrange 2 read 0x60004 && kernel
- fallback 13
- checkrange 4 read 0x60008 && kernel
- fallback 12
- checkrange 2,3 read 0x60008 && kernel
- fallback 7
- map --mem=0xB000 /SRS.ZIP (rd) && kernel
- fallback 11
- map --mem=0xB000 /F6.ZIP (rd) && kernel
- fallback 13
- fallback F
- #system.wim部份
- title
- write 0x60000 0
- pause --wait=0 Loading SYSTEM.WIM......
- map --mem=0xB000 /SYSTEM.WIM (rd)
- cat --length=0 (rd)+1
- pause --wait=0 Writing SYSTEM.WIM to (fd3)/system.bin ......
- #写system.wim的长度信息到(fd3)/system.bin
- dd if=(md)0x41+1 of=(fd3)/system.bin bs=1 count=4 skip=0x90
- #写SYSTEM.WIM文件内容到(fd3)/system.bin(从第4个字节开始写),如果写入成功就设置一个变量
- dd if=(rd)+1 of=(fd3)/system.bin bs=1 seek=4 && write --offset=0x20 (fd3)/_SETENVI.BAT \r\nset system=1\r\n
- fallback 4
- fallback F
- #net.wim部份,语句功能请参考上面
- title
- write 0x60004 0
- pause --wait=0 Loading @0#net.wim......
- map --mem=0xB000 /AUTORUNS/@0#NET.WIM (rd)
- cat --length=0 (rd)+1
- pause --wait=0 Writing @0#net.wim to (fd3)/net.bin......
- dd if=(md)0x41+1 of=(fd3)/net.bin bs=1 count=4 skip=0x90
- dd if=(rd)+1 of=(fd3)/net.bin bs=1 seek=4 && write --offset=0x30 (fd3)/_SETENVI.BAT \r\nset net=1\r\n
- fallback 4
- fallback F
- #检查是否存在外置驱动包,如果有的话自动加载.(SRS.ZIP)
- title
- fallback 8
- pause --wait=0 Loading SRS.ZIP......
- cat --length=0 (rd)+1
- dd if=(md)0x41+1 of=(fd0)/_SRS.ZIP bs=1 count=4 skip=0x90
- dd if=(rd)+1 of=(fd0)/_SRS.ZIP bs=1 seek=4
- write --offset=0x40 (fd3)/_SETENVI.BAT \r\nset srs=SRS\r\n
- fallback F
- title
- #如果内存大于500MB就设置一个变量(用于自动把镜像转到128MB).需开启高级功能才生效
- checkrange 512 read 0x60108 && write --offset=0x50 (fd3)/_SETENVI.BAT \r\nset to128=1\r\n
- dd if=(md)0x300+2 of=(fd3)/_SETENVI.BAT bs=1 count=5 skip=0x603FB seek=0x7FB && pause --wait=0
- map (fd3) (hd0)
- map --unmap=3,0x82:-1
- map --rehook
- rootnoverify (fd0)
- checkrange 2 debug && pause Press any key to continue . . .
- pause --wait=0 Booting... && chainloader (fd0)/io.sys
- title [9] SET DEBUG mode\n\r\n\tTrun on/off debug level
- write 0x60104 0
- checkrange 2 debug && write 0x60104 2
- checkrange 2 read 0x60104 && debug off
- checkrange 0 read 0x60104 && debug on
- clear
- checkrange 2 debug && pause Debug is now on ...
- checkrange 0 debug && pause Debug is now off ...
- title [10] Enable advanced mode (test)
- write 0x6010c 888
- checkrange 0x7d000:-1 read 0x8298 && write 0x60108 512
- pause Advanced Mode is enabled
- title
- fallback 8
- pause --wait=0 Loading F6.ZIP......
- cat --length=0 (rd)+1
- dd if=(md)0x41+1 of=(fd0)/_SRS.ZIP bs=1 count=4 skip=0x90
- dd if=(rd)+1 of=(fd0)/_SRS.ZIP bs=1 seek=4
- write --offset=0x40 (fd3)/_SETENVI.BAT \r\nset srs=F6\r\n
- map --mem (fd0)/bat/F6.gz (fd1)
- map --hook
- fallback F
- title
- fallback 8
- pause --wait=0 Loading OEM_SRS.ZIP......
- dd if=(md)0x300+2 of=(fd0)/_SRS.ZIP bs=1 count=4 skip=0x10
- dd if=(fd1) of=(fd0)/_SRS.ZIP bs=1 seek=4
- write --offset=0x40 (fd3)/_SETENVI.BAT \r\nset srs=OEM\r\n
- map --mem (fd0)/bat/F6.gz (fd1)
- map --hook
- fallback F
- title
- fallback 8
- checkrange 1,2 read 0x60100 && kernel
- map (fd3) (hd0)
- map --unmap=3,0x82:-1
- map --rehook && configfile (fd0)/menu.lst
- fallback F
- title
- pause --wait=0 Error!
- pause GRUB4DOS Version mismatched!
- title
- #如果虚拟光驱中,设置一个变量,使得启动时优先使用光驱或ISO上的外置程序.
- fallback 4
- write --offset=0x60 (fd3)/_SETENVI.BAT \r\nset CDROMEX_=1\r\n
- read 0x603fb && kernel
- #获取虚拟ISO文件的大小.
- map () (hd30)
- map --hook
- cat --length=0 (hd30)+1
- checkrange 0xfb0400 read 0x82b0 && kernel
- dd if=(md) of=(md) bs=1 count=4 skip=0x82b0 seek=0x60110
- dd if=(md) of=(md) bs=1 count=4 skip=0x8290 seek=0x60114
- dd if=(md)0x300+2 of=(fd3)/_SETENVI.BAT bs=1 count=8 skip=0x110 seek=0x7F0
- fallback F
复制代码
它启动以后的截图:
我感觉MICROPE.LST文件里是不是少写了什么内容。。。。。。
我不会,所以就麻烦您了。。。。。。。
谢谢。。。。。。。 |
|