亚洲欧美精品一区天堂久久-亚洲欧美精品一中文字幕-亚洲欧美精品在线-亚洲欧美精品中字久久99-欧美日韩国产高清精卡-欧美日韩国产超高清免费看片

幫助中心

當前位置:首頁 > 幫助中心 > 0PE菜單分析(1)

0PE菜單分析(1)

日期:2011-06-14 | 時間:23:48
 

解讀 0PE 的專用菜單文件 MENU.0PE
 
 
; 注:字符串/0PE/0PE.ISO定位0PE.ISO.菜單<4KB

; 設置屏幕顏色
color white/blue blue/yellow light-red/blue 10

; pseudo 大俠發明的寫法,指定一個不存在的配置文件“NoExist”
; 讓 PXE 啟動時不去搜索 PXE 服務器上的其他配置文件,加快啟動速度。
pxe detect NotExist

; 關閉 Debug
debug off

; 取內存做變量使用,6000:0000開始的 1K 空間作為用戶自己的變量區

; 存放出錯標記 | ErrorFlag
write 0x60000 0

; 存放 PXE 啟動標記 | PXEBoot
write 0x60064 0

; 存放選中的菜單項序號 | MenuNum
write 0x60068 0

; 存放 Debug 狀態 | DebugFlag
write 0x60110 0

; 保存當前根分區號 | RootDriveID
write 0x60130 0

; 保存當前根驅動器 | RootDrive
write 0x60134 0

; 這個好象未使用
write 0x602A0 0

; 標記是 XP 還是 2003 | SysVer
write 0x60300 0

; 這里大概是判斷 Grub4Dos 版本是否匹配(read 返回值 0 為假,非 0 為真)
cat --locate-align=1 (md)+1,1 || write 0x60000 1
read 0x60000 && Error:GRUB4DOS Version Mismatched! Press any key to reboot...
read 0x60000 && reboot

; 判斷是否是 PXE 啟動
checkrange 0x21 read 0x8280 && write 0x60064 1

; 默認第一個菜單
default 1
; 超時時間 5 秒
timeout 5

 

; 菜單0
title                 0PE for Windows XP/2003    by Pseudo 2009.6.20
; 空菜單
clear

 

; 菜單1
title                 [1] For XP, with SRS1.ZIP.\n   Main S&R&S Drivers Library.
; 設置菜單選擇標記
write 0x60068 1
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單2
title                 [2] For XP, with SRS2.ZIP.\n   Secondary S&R&S Drivers Library.
; 設置菜單選擇標記
write 0x60068 2
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單3
title                 [3] For XP, with F6.ZIP.\n   OEM S&R&S Drivers Floppy Disk Emulation (press F6/autodetect).
; 設置菜單選擇標記
write 0x60068 3
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 空菜單,夾在其它菜單中間,則無效,放在第一個菜單之前,則會讓 TimeOut 失效。
; 疑為作者筆誤
title

 

; 菜單4
title                 [4] User Menu with F6.ZIP.\n   OEM S&R&S Drivers Floppy Disk Emulation (press F6/autodetect).
; 設置菜單選擇標記
write 0x60068 4
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單5
title                 [5] For 2K3, with SRS1.ZIP.\n   Main S&R&S Drivers Library.
; 設置菜單選擇標記
write 0x60068 5
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單6
title                 [6] For 2K3, with SRS2.ZIP.\n   Secondary S&R&S Drivers Library.
; 設置菜單選擇標記
write 0x60068 6
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單7
title                 [7] For 2K3, with F6.ZIP.\n   OEM S&R&S Drivers Floppy Disk Emulation (press F6/autodetect).
; 設置菜單選擇標記
write 0x60068 7
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單8
title                 [8] MS DOS 7.1
; 設置菜單選擇標記
write 0x60068 8
; 通過錯誤語句跳轉到菜單 10
fallback 10
kernel

 

; 菜單9
title                 [9] Grub4Dos Debug On/Off.\nTurn on/off debug status.
; 清屏
clear
; 關閉 Debug
debug off


; 如果 DebugFlag 為 0,則設置 DebugFlag 2
read 0x60110 || write 0x60110 2
; 如果 DebugFlag 為 1,則設置 DebugFlag 0
checkrange 1 read 0x60110 && write 0x60110 0
; 如果 DebugFlag 為非 0(比如為 2),則設置 DebugFlag 1

read 0x60110 && write 0x60110 1

; 根據 DebugFlag,設置提示信息
read 0x60110 || pause Debug is now off...
read 0x60110 && pause Debug is now on...
; 根據 DebugFlag,設置 Debug 狀態
read 0x60110 || debug off
read 0x60110 && debug on
; 添加 Kernel 命令,使菜單生效,否則菜單不可選
kernel || clear

 

; 菜單10,處理選擇的系統類型 SysVer
title

; 提示 root 位置,用于調試腳本
pause --wait=0 Boot drive:
debug on
root
debug off

; 恢復 Debug  狀態
read 0x60110 && debug on

; 判斷選擇的菜單是否是 2003 系統 ( 菜單 5-7 )
checkrange 5:7 read 0x60068 && write 0x60300 1

; 如果不是 2003 系統,將跳轉到 菜單 11
fallback 11
; 如果是 2003 系統,將跳轉到菜單 12
read 0x60300 && fallback 12
; 開始跳轉
fallback F

 

; 菜單11,處理 XP 系統,SysVer = 0
title


;
fallback 14

; 復位 ErrorFlag
write 0x60000 1

; 如果未找到 root 下面的 /0PE/BUFXP.GZ 則設置 ErrorFlag 為 0
ls /0PE/BUFXP.GZ || write 0x60000 0

; 如果是 PXE 啟動,則設置 ErrorFlag 為 0
read 0x60064 && write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 14
read 0x60000 && kernel

; 復位 ErrorFlag
write 0x60000 1

; 查找所有盤的 /0PE/BUFXP.GZ 文件,找不到則設置 ErrorFlag 為 0
find --set-root /0PE/BUFXP.GZ || write 0x60000 0

; 如果 ErrorFlag 不為 0 ,則跳轉到菜單 14
read 0x60000 && kernel


;
fallback 13

; 復位 ErrorFlag
write 0x60000 1

; 如果未找到 root 下面的 /0PE/0PE.ISO 則設置 ErrorFlag 為 0
ls /0PE/0PE.ISO || write 0x60000 0

; 如果是 PXE 啟動,則設置 ErrorFlag 為 0
read 0x60064 && write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 13
read 0x60000 && kernel

; 復位 ErrorFlag
write 0x60000 1

; 查找所有盤的 /0PE/0PE.ISO 文件,找不到則設置 ErrorFlag 為 0
find --set-root /0PE/0PE.ISO || write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 13
read 0x60000 && kernel


; 如果是 PXE 啟動,則設置 root 為 PXE 服務器
read 0x60064 && rootnoverify (pd)

; 設置標志:不自動解壓 gzip 格式的文件
write 0x82A4 1


;
fallback 14
; 如果 PXE 中存在 /0PE/BUFXP.GZ (判斷文件大小是否為 0)則跳轉到 菜單14
cat --length=0 /0PE/BUFXP.GZ && kernel

; 設置標志:自動解壓 gzip 格式的文件
write 0x82A4 0


;
fallback 13

; 如果 PXE 中存在 /0PE/0PE.ISO 則跳轉到 菜單13
cat --length=0 /0PE/0PE.ISO && kernel

; 判斷選擇的是否是用戶自定義菜單,如果是,則設置 SysVer 為 1
checkrange 4 read 0x60068 && write 0x60300 1


;
fallback 12

; 如果是是用戶自定義菜單,則跳轉到菜單 12 繼續處理
read 0x60300 && kernel

; 提示未找到 /0PE/BUFXP.GZ 和 /0PE/0PE.ISO
pause Error:/0PE/BUFXP.GZ and /0PE/0PE.ISO not found!

 

; 菜單12,處理 2003 系統,SysVer = 1,過程同 XP 系統
title

;
fallback 14

; 復位 ErrorFlag
write 0x60000 1

; 如果未找到 root 下面的 /0PE/BUF2K3.GZ 則設置 ErrorFlag 為 0
ls /0PE/BUF2K3.GZ || write 0x60000 0

; 如果是 PXE 啟動,則設置 ErrorFlag 為 0
read 0x60064 && write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 14
read 0x60000 && kernel

; 復位 ErrorFlag
write 0x60000 1

; 查找所有盤的 /0PE/BUF2K3.GZ 文件,找不到則設置 ErrorFlag 為 0
find --set-root /0PE/BUF2K3.GZ || write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 14
read 0x60000 && kernel


;
fallback 13

; 復位 ErrorFlag
write 0x60000 1

; 如果未找到 root 下面的 /0PE/0PE.ISO 則設置 ErrorFlag 為 0
ls /0PE/0PE.ISO || write 0x60000 0

; 如果是 PXE 啟動,則設置 ErrorFlag 為 0
read 0x60064 && write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 13
read 0x60000 && kernel

; 復位 ErrorFlag
write 0x60000 1

; 查找所有盤的 /0PE/0PE.ISO 文件,找不到則設置 ErrorFlag 為 0
find --set-root /0PE/0PE.ISO || write 0x60000 0

; 如果 ErrorFlag 不為 0,則跳轉到菜單 13
read 0x60000 && kernel

; 如果是 PXE 啟動,則設置 root 為 PXE 服務器
read 0x60064 && rootnoverify (pd)

; 設置標志:不自動解壓 gzip 格式的文件
write 0x82A4 1


;
fallback 14

; 如果 PXE 中存在 /0PE/BUF2K3.GZ 則跳轉到菜單 14

cat --length=0 /0PE/BUF2K3.GZ && kernel

; 設置標志:自動解壓 gzip 格式的文件
write 0x82A4 0


;
fallback 13

; 如果 PXE 中存在 /0PE/0PE.ISO 則跳轉到菜單 13
cat --length=0 /0PE/0PE.ISO && kernel

; 提示未找到 /0PE/BUF2K3.GZ 和 /0PE/0PE.ISO
pause Error:/0PE/BUF2K3.GZ and /0PE/0PE.ISO not found!

 

; 菜單13,裝載 0PE.ISO,然后跳轉到 菜單14 繼續啟動
title

; 提示 root 位置,用于調試腳本
pause --wait=0 Current drive of 0PE.ISO:
debug on
root
debug off

; 恢復 Debug  狀態
read 0x60110 && debug on

; 提示 裝載0PE.ISO
pause --wait=0 Loading /0PE/0PE.ISO...

; 磁盤裝載 0PE.ISO,如果不成功,則內存裝載 0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)

; 激活 map 的結果
map --hook

; 設置 root 為 0PE.ISO 的裝載位置
rootnoverify (0xff)

; 跳轉到 菜單14 繼續處理
fallback 14 && kernel

 

; 菜單14,啟動系統
title

; 設置標志:自動解壓 gzip 格式的文件
write 0x82A4 0

; 保存當前根分區號,和當前根所在驅動器
dd if=(md) of=(md) bs=1 count=8 skip=0x829c seek=0x60130

; 提示 root 位置,用于調試腳本
pause --wait=0 Current drive of BUF*.GZ:
debug on
root
debug off

; 恢復 Debug  狀態
read 0x60110 && debug on

; 根據 SysVer 提示并裝載 XP 系統 Buf 到 (hd7)
read 0x60300 || pause --wait=0 Loading /0PE/BUFXP.GZ...
read 0x60300 || map --mem ()/0PE/BUFXP.GZ (hd7)

; 根據 SysVer 提示并裝載 2003 系統 Buf 到 (hd7)
read 0x60300 && pause --wait=0 Loading /0PE/BUF2K3.GZ...
read 0x60300 && map --mem ()/0PE/BUF2K3.GZ (hd7)

; 激活 map 結果
map --hook

; 向 (hd7,0)/BAT/_ENV.BAT 中寫入 set PEISO=/0PE/0PE.ISO\r\n,并繼續從(hd7,0)/BAT/MENU.GZ 中的菜單啟動

write --offset=200 (hd7,0)/BAT/_ENV.BAT set PEISO=/0PE/0PE.ISO\r\n && configfile (hd7,0)/BAT/MENU.GZ

大白菜官網

(責任編輯:m.ttbj.com.cn)

大白菜超級U盤啟動盤制作工具

主站蜘蛛池模板: 黄色一级片在线看 | 天堂视频在线免费观看 | 久久亚洲国产高清 | 国产女人自拍 | 中文国产日韩欧美视频 | 99久久精品国产9999高清 | 久久久高清免费视频 | 亚洲欧美日韩国产综合 | 久久久久琪琪去精品色村长 | 日韩美一区二区三区 | 国产成人福利视频在线观看 | 欧美午夜网 | 最新福利片v国产片 | 91精品久久久久久久久久 | 色久在线 | 亚洲国产成人久久综合碰 | 国产精品亚洲一区二区三区久久 | 在线日韩国产 | 久久精品国内一区二区三区 | 九一国产 | 无码免费一区二区三区免费播放 | 成人黄色一级视频 | 亚洲人在线 | 在线观看国产欧美 | 美女一级视频 | 伊人黄色片 | 欧美视频xxxxx| 日韩一区二区免费看 | 国产精品国产三级国产专区5o | 中文字幕一区二区在线视频 | www.欧美成人 | 国产三级日本三级在线播放 | 久久久久久在线 | 欧美亚洲一区二区三区四 | 亚洲手机国产精品 | 日本噜噜影院 | 91福利精品老师国产自产在线 | 欧美日韩在线观看免费 | 69av亚洲| 亚洲 欧美 激情 另类 校园 | 亚洲视频自拍 |