无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5369|回复: 15
打印 上一主题 下一主题

[求助] 隐藏区FBA下引导cdlinux.iso的问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-6 21:02:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1. title         c.  运行 CDLinux
  2. find --set-root /CDlinux/CDlinux.iso && map --mem /CDlinux/CDlinux.iso (0xff)
  3. map --hook
  4. map --status
  5. kernel (ud)/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/CDlinux CDL_IMG=CDlinux.iso
  6. initrd (ud)/CDlinux/initrd
  7. chainloader (0xff)
复制代码

启动一半,就提示下面的错误了

无标题.png (14.23 KB, 下载次数: 42)

无标题.png
2#
 楼主| 发表于 2012-5-6 21:18:56 | 只看该作者
title         c.  运行 CDLinux
find --set-root /CDlinux/CDlinux.iso && map --mem /CDlinux/CDlinux.iso (0xff)
map --hook
map --status
kernel /CDlinux/bzImage quiet CDL_DIR=/CDlinux CDL_IMG=CDlinux.iso
initrd /CDlinux/initrd
chainloader (0xff)
回复

使用道具 举报

3#
 楼主| 发表于 2012-5-6 21:29:36 | 只看该作者
用这个也启动不成功,何解

  1. title         5.  运行 IMG  映像工具   
  2. find --set-root /uddiy/UDIY.txt || find --set-root /uddiy/UDDIY.txt
  3. (ud)/boot/grub/run --automenu /uddiy/
  4. configfile (md)0x3000+0x10
复制代码
回复

使用道具 举报

4#
 楼主| 发表于 2012-5-6 21:30:25 | 只看该作者
run

  1. !BAT by sratlf 0408
  2. clear
  3. if not exist debug set debug=off
  4. debug %debug%
  5. terminal console
  6. checkrange 20110128:-1 read 0x8278 || clear && pause Need grub4dos-0.4.5b-2011-01-28 or above. && exit 1
  7. delmod -l %~nx0 || insmod %~0
  8. if not exist runs set runs=%~nx0
  9. if not exist usrpath && set usrpath=(bd)/BOOT/IMGS/
  10. calc *0x8280&0xff-0x21 || pxe keep
  11. calc *0x8280&0xff-0x23 || set bd=(ud) && goto :fbinst
  12. calc *0x8280&0xff-0x80 || set bd=(hd) && goto :hddzip
  13. if not exist bd && set /A bd=*0x8280&0xff
  14. if not %bd:~,1%==( && set bd=(%bd%)

  15. :start
  16. if "%~1"=="" goto :input
  17. set m=%~1 && set /a lenm=*0x4cb00
  18. if %m:~,2%==-- && goto :c%lenm% || goto :other
  19. if "%~x1"=="" goto :chain || goto :%~x1 || goto :err

  20. :fbinst
  21. calc *0x82b9&0xff-0x80 || set hdd=1 && goto :hdd
  22. calc *0x82b9&0xff || goto :zip
  23. :hddzip
  24. calc *0x82a0&0xff-0x80 || set hdd=1 && goto :hdd
  25. calc *0x82a0&0xff || goto :zip
  26. :hdd
  27. set /A hd1=*0x8280&0xff
  28. set /A hd2=*0x8208>>16&0xffff
  29. set bd=(%hd1%,%hd2%)
  30. set hd1= && set hd2=
  31. goto :start
  32. :zip
  33. map (0) (hd)
  34. map --hook
  35. goto :start

  36. :c4
  37. if /i %~1==--pe goto :pe
  38. if /i %~1==--nt goto :nt
  39. goto :err
  40. :c5
  41. if /i %~1==--mem goto :mem
  42. if /i %~1==--top goto :top
  43. if /i %~1==--lst goto :lstfile
  44. goto :err
  45. :c6
  46. if /i %~1==--swap goto :swap
  47. if /i %~1==--fira goto :firadisk
  48. if /i %~1==--wvbk goto :winvblock
  49. if /i %~1==--help goto :help
  50. goto :err
  51. :c7
  52. if /i %~1==--nomem goto :nomem
  53. if /i %~1==--ramos goto :ramos
  54. goto :err
  55. :c8
  56. if /i %~1==--noswap goto :noswap
  57. goto :err
  58. :c10
  59. if /i %~1==--automenu goto :automenu
  60. goto :err
  61. :c13
  62. if /i %~1==--fira-nodisk goto :firadisk
  63. if /i %~1==--wvbk-nodisk goto :winvblock
  64. goto :err
  65. :other
  66. if /i %m:~,6%==--fira goto :firadisk
  67. if /i %m:~,6%==--wvbk goto :winvblock
  68. :err
  69. echo -e \n Command error, command using: $[0004]%~1
  70. :help
  71. echo -e \n RUN Usage:
  72. echo -e \n RUN file.iso$[0003]|$[0007].img$[0003]|$[0007].ima$[0003]|$[0007].gz$[0003]|$[0007].bin$[0003]|$[0007].lst$[0003]|$[0007].0pe$[0003]|$[0007].usr
  73. echo -e \n RUN $[0005]--automenu $[0007][/path/]
  74. echo -e \n RUN $[0005]--pe$[0003]|$[0005]--nt$[0003]|$[0005]--lst $[0007]/file.*
  75. echo -e \n RUN $[0005]--swap$[0003]|$[0005]--mem$[0003]|$[0005]--nomem $[0007]etc.
  76. echo -e \n RUN $[0005]--ramos $[0007]/hdd.* [/ldrfile]
  77. echo -e \n RUN $[0005]--fira$[0003]|$[0005]--wvbk$[0007][$[0002]-nodisk$[0007]][:/img.*] [$[0002]fd1$[0007][:/img.*]] [$[0002]iso=$[0007]/file.iso$[0003]|$[0002]disk=$[0007]/hdd.*]
  78. echo -e \n Press any key to back
  79. pause
  80. exit

  81. :find
  82. if "%~1"=="%~nx1" && set path=%usrpath% ! set path=%~p1
  83. if %path:~,1%==( && call :_find %path%%%~nx1 ! call :_find %bd%%%path%%%~nx1
  84. set ker= && cat --locate=\xEB --length=4 --number=1 %loadfile% | set ker=
  85. if not exist ker && kernel %loadfile% && boot && exit ! set ker=
  86. goto :eof
  87. :_find
  88. set loadpath=%~pnx1
  89. call :chdis
  90. echo -e \n $[0004]Loading $[0101]%root%$[0003]%~p1$[0002]%~nx1$[0007]...
  91. if exist %~pnx1 set loadfile=%root%%%~pnx1 && goto :eof
  92. rootnoverify %~d1 && if exist %~pnx1 && goto :find
  93. if exist bd && rootnoverify %bd%
  94. if not exist %~pnx1 && find --set-root --ignore-floppies %~pnx1 || find --set-root --devices=f %~pnx1
  95. goto :find

  96. :chdis
  97. debug 1
  98. find --set-root | set root=
  99. debug %debug%
  100. goto :eof

  101. :.img
  102. :.ima
  103. :.gz
  104. :imgfile
  105. set mem=--mem
  106. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem=
  107. call :find %~1
  108. map %mem% %loadfile% (fd0)
  109. map --hook
  110. if "%~2"=="" && goto :_img
  111. shift
  112. if /i "%~1"=="--dts-ext" && call :dtsext %*
  113. if /i "%~1"=="--max-ext" && call :maxext %*
  114. :_img
  115. rootnoverify (fd0)
  116. if not exist (0)/menu.lst chainloader (0)+1 || configfile (0)/menu.lst
  117. boot || echo -n
  118. exit

  119. :dtsext
  120. shift
  121. write --offset=120 (fd0)/config.sys %~1,0
  122. write --offset=370 (fd0)/config.sys %~2,0
  123. write --offset=232 (fd0)/autoexec.bat %~3 %~4 %~5 %~6 %~7 %~8 %~9
  124. goto :eof

  125. :maxext
  126. shift
  127. if not exist (0)/CONFIG.SYS exit
  128. if not exist (0)/AUTOEXEC.BAT exit
  129. cat --locate="default=" --replace="default=1,0" --number=1 (0)/CONFIG.SYS
  130. cat --locate="call" --replace="Call" (0)/AUTOEXEC.BAT
  131. cat --locate="CALL" --replace="Call" (0)/AUTOEXEC.BAT
  132. cat --locate="m.bat" --replace="M.BAT" (0)/AUTOEXEC.BAT
  133. cat --locate="M.bat" --replace="M.BAT" (0)/AUTOEXEC.BAT
  134. cat --locate="m.BAT" --replace="M.BAT" (0)/AUTOEXEC.BAT
  135. debug 1
  136. cat --locate="Call M.BAT" --number=1 (0)/AUTOEXEC.BAT | set offset=
  137. debug %debug%
  138. write --offset=0x%offset% (0)/AUTOEXEC.BAT %* \r M.BAT \r
  139. goto :eof

  140. :.iso
  141. :isofile
  142. set mem1=--mem
  143. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem1=
  144. call :find %~1
  145. map %mem% %loadfile% (0xff) || map %mem1% %loadfile% (0xff)
  146. map --hook
  147. chainloader (0xff)
  148. boot
  149. exit

  150. :.0
  151. :.bin
  152. :.sys
  153. :chain
  154. calc *0x8280&0xff-0x21 || chainloader --force --raw (pd)%~pnx2 && boot && exit 1
  155. if not %swap%==1 if %hdd%==1 set con=1 && call :swap
  156. call :find %~1
  157. chainloader %loadfile% || chainloader --force %loadfile%
  158. boot
  159. exit

  160. :pe
  161. shift
  162. call :find %~1
  163. map --in-place ()+1 (hd0)
  164. map --hook
  165. chainloader --force %loadfile%
  166. boot
  167. exit

  168. :nt
  169. shift
  170. call :find %~1
  171. checkrange 0x21 read 0x8280 && chainloader --force --raw (pd)%loadpath% && boot && exit
  172. if not %hdd%==1 && goto :_nt
  173. map () (hd0)
  174. map (hd0) ()
  175. map --rehook
  176. call :find %loadfile%
  177. :_nt
  178. chainloader %loadfile% || chainloader --force %loadfile%
  179. dd if=()+1 of=(md)0x3E+1
  180. boot
  181. exit

  182. :lstfile
  183. shift
  184. :.lst
  185. :.0pe
  186. :.usr
  187. :.diy
  188. call :find %~1
  189. if /i %~nx1==menu.0pe && call :0pe %2 %3
  190. configfile %loadfile%
  191. exit

  192. :0pe
  193. if #%1==# exit || calc %~1 && write 0x60300 0x60300 && write 0x60100 %~1
  194. if /i not "%~x2"==".iso" exit
  195. if "%~2"=="%~nx2" set /u tmp=%usrpath%%%~nx2 || set /u tmp=%~pnx2
  196. write (md)0x301+1 %tmp%
  197. set tmp=%tmp%
  198. set /a tmp=*0x4CB00
  199. write 0x60360 %tmp%
  200. set tmp=
  201. exit

  202. :ramos
  203. shift
  204. call :find %~1
  205. set mem=--mem
  206. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem=
  207. if %topset%==1 && set top=--top ! set top=
  208. map %mem% %top% %loadfile% (hd)
  209. map --hook
  210. map (hd-1) (hd0)
  211. map (hd0) (hd-1)
  212. map --rehook
  213. if not "%~2"=="" && goto :_ramos
  214. rootnoverify (hd0)
  215. chainloader +1
  216. boot
  217. exit
  218. :_ramos
  219. rootnoverify (hd0,0)
  220. chainloader %~2
  221. boot
  222. exit

  223. :mem
  224. set memset=1
  225. goto :next

  226. :nomem
  227. set memset=0
  228. goto :next

  229. :top
  230. set topset=1
  231. goto :next

  232. :noswap
  233. set swap=1
  234. goto :next

  235. :next
  236. shift
  237. goto :start

  238. :swap
  239. if not %hdd%==1 && echo -e \n You are not booting from HDD, no need for swapping the HDD.
  240. if /i %~1==--swap && goto :movebegin
  241. if %swap%==1 && echo -e \n You have already swapped the HDD. && goto :next
  242. echo -e \n Press $[0004]"S" $[0007]in $[0004]10 $[0007]seconds to swap HDD (if only you are booting from USB-HDD)
  243. echo -e \n OR press any other key to $[0004]continue, nothing to do.\n
  244. checkrange 0x73,0x53 pause --wait=10 || goto :moveend
  245. :movebegin
  246. set /a hd=*0x475&0xff+0x7f
  247. checkrange 0x7f calc %hd% && goto :next
  248. set /a hdm=%hd%+1
  249. map (hd0) (%hdm%)
  250. map --hook
  251. :move
  252. set /a hd1=%hd%+1
  253. map (%hd1%) (%hd%)
  254. set /a hd=%hd%-1
  255. checkrange 0x7f calc %hd% || goto :move
  256. map --unmap=%hdm%
  257. map --rehook
  258. ::rootnoverify (hd0,0)
  259. echo -e \n Success for swapping the HDD
  260. :moveend
  261. set swap=1
  262. if %con%==1 && set con= && goto :eof
  263. set con=
  264. goto :next

  265. :input
  266. clear
  267. echo -e \n Please input the command, use $[0005]--help $[0007]or "$[0104]H$[0007]" for RUN usage.
  268. echo -e \n OR press Enter to use $[0005]--fira $[0002]iso=/WIN$.ISO$[0007] as default.
  269. echo -e \n You can also $[0007]Press "$[0104]M$[0007]" to $[0003]Main Menu $[0007]or "$[0104]C$[0007]" To $[0003]Commandline.
  270. set path=
  271. set /p path=>Input Command:
  272. if not exist menu && set menu=(md)4+8
  273. if /i %path%==m && configfile %menu%
  274. if /i %path%==c && commandline
  275. if /i %path%==h && goto :help
  276. if not exist path && echo -e \n Use $[0005]--fira $[0002]iso=/WIN$.ISO$[0007] as default. && set path=--fira iso=/WIN$.ISO
  277. call :start %path%
  278. exit

  279. :firadisk
  280. set dflag=fira
  281. map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
  282. goto :check_floppy

  283. :winvblock
  284. set dflag=wvbk
  285. map --rd-size=2048
  286. map --mem (rd)+4 (0x55)
  287. goto :check_floppy

  288. :check_floppy
  289. map --hook
  290. if /i %m:~7,6%==nodisk && set nodisk=1
  291. if %nodisk%==1 && set fd0path=%m:~14% ! set fd0path=%m:~7%
  292. if not exist fd0path && if %dflag%==fira set fd0path=FIRADISK.IMG || if %dflag%==wvbk set fd0path=WINVBLOCK.IMG
  293. if /i %~2==iso && goto :loadfloppy
  294. if /i %~2==disk set noiso=1 && goto :loaddisk
  295. shift
  296. set n=%~1
  297. if /i not %n:~,3%==fd1 && goto :loadfloppy
  298. set fd1path=%n:~4%
  299. if "%fd1path%"=="" && set fd1path=/IASTOR.IMG
  300. goto :loadfloppy

  301. :loadfloppy
  302. set mem1=--mem
  303. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem1=
  304. if exist fd1path && goto :loadfloppy1
  305. call :find %fd0path%
  306. if %dflag%==fira && set floppy1=floppy,vmem=find:%loadpath%;
  307. map %mem% %loadfile% (fd1) || map %mem1% %loadfile% (fd1)
  308. map --mem (md)+2880 (fd0)
  309. map --hook
  310. dd if=(fd1) of=(fd0) count=1
  311. goto :load_choise
  312. :loadfloppy1
  313. call :find %fd1path%
  314. if %dflag%==fira && set floppy1=floppy,vmem=find:%loadpath%;
  315. map %mem% %loadfile% (fd1) || map %mem1% %loadfile% (fd1)
  316. call :find %fd0path%
  317. if %dflag%==fira && set floppy0=floppy,vmem=find:%loadpath%;
  318. map %mem% %loadfile% (fd0) || map %mem1% %loadfile% (fd0)
  319. map --hook
  320. :load_choise
  321. if /i %~2==iso && goto :loadiso
  322. if /i %~2==disk set noiso=1 && goto :loaddisk
  323. goto :start

  324. :loadiso
  325. shift
  326. call :find %~2
  327. if %dflag%==fira && set cdrom=cdrom,vmem=find:%loadpath%;
  328. map %mem% %loadfile% (0xff) || map %mem1% %loadfile% (0xff)
  329. map --hook
  330. shift
  331. if /i %~2==disk && goto :loaddisk
  332. if %nodisk%==1 && goto :iso_step1
  333. call :cd_or_hdd
  334. checkrange 0x69,0x49 pause --wait=10 && goto :iso_step1
  335. goto :iso_step2

  336. :iso_step1
  337. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%cdrom%%%floppy1%%%floppy0%\n\0
  338. if not %nodisk%==1 if not %swap%==1 if %hdd%==1 set con=1 && call :swap
  339. chainloader (0xff)
  340. boot
  341. exit

  342. :iso_step2
  343. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%cdrom%\n\0
  344. find --set-root --devices=h /WIN_NT$.~BT/SETUPLDR.BIN && chainloader ()/WIN_NT$.~BT/SETUPLDR.BIN && boot && exit
  345. find --set-root --devices=h /NTLDR && if exist /NTDETECT.COM
  346. if not exist /NTLDR && echo -e \x20System installation failed, press any key to back && pause && exit
  347. chainloader /NTLDR
  348. boot
  349. exit

  350. :loaddisk
  351. shift
  352. call :find %~2
  353. if %dflag%==fira && set disk=disk,vmem=find:%loadpath%;
  354. if %memset%==1 && set mem=--mem ! set mem=
  355. map --heads=255 --sectors-per-track=63 %mem% %loadfile% (hd)
  356. map --hook
  357. map (hd-1) (hd0)
  358. map (hd0) (hd-1)
  359. map --rehook
  360. if %noiso%==1 && goto :disk_step2
  361. call :cd_or_hdd
  362. checkrange 0x69,0x49 pause --wait=10 && goto :disk_step1
  363. goto :disk_step2

  364. :disk_step1
  365. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%disk%%%cdrom%%%floppy1%%%floppy0%\n\0
  366. if %dflag%==wvbk && write (0x55) #GRUB4DOS\x00v=1\x00%loadpath:~1%\x00\x80\x00
  367. chainloader (0xff)
  368. boot
  369. exit

  370. :disk_step2
  371. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%disk%%%cdrom%\n\0
  372. if %dflag%==wvbk && write (0x55) #GRUB4DOS\x00v=1\x00%loadpath:~1%\x00\x80\x00
  373. rootnoverify (hd0)
  374. chainloader +1
  375. boot
  376. exit

  377. :cd_or_hdd
  378. echo -e \n Press $[0004]"I" $[0007]in $[0004]10 $[0007]seconds to boot from ISO
  379. echo -e \n OR press any other key to $[0004]continue System Installation$[0007] (boot from harddisk).\n
  380. goto :eof

  381. :automenu
  382. set i=1001
  383. if "%~2"=="" && set path=/BOOT/IMGS/ ! rootnoverify %~d2 && set path=%~p2
  384. find --set-root --ignore-floppies ls %path% clear || find --set-root --devices=f ls %path% clear || goto :folder_not_found
  385. call :chdis
  386. if not exist font if not exist image && set image=color yellow/black 10
  387. echo -e %font%\n%image%\ndefault 1\ntimeout 10 > (md)0x3000+0x10
  388. echo -e \ntitle                             Automenu for %root%%%path% \\n \nclear\n >> (md)0x3000+0x10
  389. ls %path% | call :makemenu %0 || echo -n
  390. if not exist menu set menu=(md)4+8
  391. echo -e title [%i:~-2%] Back to Main Menu \\n configfile %menu%\nconfigfile %menu%\n >> (md)0x3000+0x10
  392. set i=
  393. set tmp=
  394. configfile (md)0x3000+0x10
  395. exit

  396. :folder_not_found
  397. echo -e \n Folder $[0003]%path% $[0007]not found, Press any key to back
  398. pause
  399. exit

  400. :makemenu
  401. shift
  402. if #%1==# exit
  403. set tmp=%~n1
  404. if /i not #%~x1==#.TXT if not #%~x1==# if not "%tmp:~-2,1%"=="~" if /i not "%~n1"=="firadisk" if /i not "%~n1"=="winvblock" || goto :makemenu
  405. if exist %path%%%~n1.TXT && set file=%path%%%~n1.TXT && call :read_txt %file%
  406. if not exist title set title=%~nx1
  407. if not %next1:~,2%==-- && set next1= ! if "%next1%"=="%front1%" && set next1=
  408. if not %front1:~,2%==-- && set front1= ! if "%front1%"=="%title%" && set front1=
  409. echo -n title [%i:~-2%] RUN %title% \n %~nx1 >> (md)0x3000+0x10
  410. if not exist front1 if not exist next1 && set front1=%front% && set next1=%next%
  411. echo -e \n%runs% %front1% %path%%%~1 %next1%\nboot\n >> (md)0x3000+0x10
  412. set title= && set front1= && set next1=
  413. set /a i=%i%+1
  414. goto :makemenu
  415. exit

  416. :read_txt
  417. call :read_line %file% title=1
  418. call :read_line %file% front1=2
  419. call :read_line %file% next1=3
  420. goto :eof

  421. :read_line
  422. set _start=0
  423. set _end=0
  424. cat --locate=\xA --number=%3 %1 | call :get_last_line
  425. set /a _end=%_end%-%_start%
  426. cat --skip=%_start% --length=%_end% %1 | set %2=
  427. set _start=
  428. set _end=
  429. goto :eof

  430. :get_last_line
  431. if "%1"=="" exit
  432. if "%2"=="" && set /a _end=0x%1 ! if "%3"=="" && set /a _start=0x%1+1
  433. shift
  434. goto :get_last_line
复制代码
回复

使用道具 举报

5#
发表于 2012-5-6 21:32:03 | 只看该作者
貌似还没成功的先例吧?楼主要开辟方法吗?
回复

使用道具 举报

6#
 楼主| 发表于 2012-5-6 21:32:59 | 只看该作者
换这个试下

  1. !BAT by sratlf 0416
  2. clear
  3. if not exist debug set debug=off
  4. debug %debug%
  5. terminal console
  6. checkrange 20110128:-1 read 0x8278 || clear && pause Need grub4dos-0.4.5b-2011-01-28 or above. && exit 1
  7. delmod -l %~nx0 || insmod %~0
  8. if not exist runs set runs=%~nx0
  9. if not exist usrpath set usrpath=(bd)/BOOT/IMGS/
  10. calc *0x8280&0xff-0x21 || pxe keep
  11. calc *0x8280&0xff-0x23 || set bd=(ud) && goto :fbinst
  12. calc *0x8280&0xff-0x80 || set bd=(hd) && goto :hddzip
  13. if not exist bd && set /A bd=*0x8280&0xff
  14. if not %bd:~,1%==( && set bd=(%bd%)

  15. :start
  16. if "%~1"=="" goto :input
  17. set m=%~1 && set /a lenm=*0x4cb00
  18. if %m:~,2%==-- && goto :c%lenm% || goto :other
  19. if "%~x1"=="" goto :chain || goto :%~x1 || goto :err

  20. :fbinst
  21. calc *0x82b9&0xff-0x80 || set hdd=1 && goto :hdd
  22. calc *0x82b9&0xff || goto :zip
  23. :hddzip
  24. calc *0x82a0&0xff-0x80 || set hdd=1 && goto :hdd
  25. calc *0x82a0&0xff || goto :zip
  26. :hdd
  27. set /A hd1=*0x8280&0xff
  28. set /A hd2=*0x8208>>16&0xffff
  29. set bd=(%hd1%,%hd2%)
  30. set hd1= && set hd2=
  31. goto :start
  32. :zip
  33. map (0) (hd)
  34. map --hook
  35. goto :start

  36. :c4
  37. if /i %~1==--pe goto :pe
  38. if /i %~1==--nt goto :nt
  39. goto :err
  40. :c5
  41. if /i %~1==--mem goto :mem
  42. if /i %~1==--top goto :top
  43. if /i %~1==--lst goto :lstfile
  44. goto :err
  45. :c6
  46. if /i %~1==--swap goto :swap
  47. if /i %~1==--fira goto :firadisk
  48. if /i %~1==--wvbk goto :winvblock
  49. if /i %~1==--help goto :help
  50. goto :err
  51. :c7
  52. if /i %~1==--nomem goto :nomem
  53. if /i %~1==--ramos goto :ramos
  54. goto :err
  55. :c8
  56. if /i %~1==--noswap goto :noswap
  57. goto :err
  58. :c10
  59. if /i %~1==--automenu goto :automenu
  60. goto :err
  61. :c13
  62. if /i %~1==--fira-nodisk goto :firadisk
  63. if /i %~1==--wvbk-nodisk goto :winvblock
  64. goto :err
  65. :other
  66. if /i %m:~,6%==--fira goto :firadisk
  67. if /i %m:~,6%==--wvbk goto :winvblock
  68. :err
  69. echo -e \n Command error, or File not found: $[0004]%~1
  70. :help
  71. echo -e \n RUN Usage:
  72. echo -e \n RUN file.iso$[0003]|$[0007].img$[0003]|$[0007].ima$[0003]|$[0007].gz$[0003]|$[0007].bin$[0003]|$[0007].lst$[0003]|$[0007].0pe$[0003]|$[0007].usr
  73. echo -e \n RUN $[0005]--automenu $[0007][/path/]
  74. echo -e \n RUN $[0005]--pe$[0003]|$[0005]--nt$[0003]|$[0005]--lst $[0007]/file.*
  75. echo -e \n RUN $[0005]--swap$[0003]|$[0005]--mem$[0003]|$[0005]--nomem $[0007]etc.
  76. echo -e \n RUN $[0005]--ramos $[0007]/hdd.* [/ldrfile]
  77. echo -e \n RUN $[0005]--fira$[0003]|$[0005]--wvbk$[0007][$[0002]-nodisk$[0007]][:/img.*] [$[0002]fd1$[0007][:/img.*]] [$[0002]iso=$[0007]/file.iso$[0003]|$[0002]disk=$[0007]/hdd.*]
  78. goto :input
  79. exit

  80. :find
  81. if "%~1"=="%~nx1" && set path=%usrpath% ! set path=%~p1
  82. if %path:~,1%==( && call :_find %path%%%~nx1 ! call :_find %bd%%%path%%%~nx1
  83. goto :eof
  84. :_find
  85. set loadpath=%~pnx1
  86. call :chdis
  87. echo -e \n $[0004]Loading $[0101]%root%$[0003]%~p1$[0002]%~nx1$[0007]...
  88. if exist %~pnx1 set loadfile=%root%%%~pnx1 && goto :eof
  89. rootnoverify %~d1 && if exist %~pnx1 && goto :find
  90. if exist bd && rootnoverify %bd%
  91. if not exist %~pnx1 && find --set-root --ignore-floppies %~pnx1 || find --set-root --devices=f %~pnx1 || goto :err
  92. goto :find

  93. :chdis
  94. debug 1
  95. find --set-root | set root=
  96. debug %debug%
  97. goto :eof

  98. :kernel
  99. kernel %loadfile%
  100. boot
  101. exit

  102. :.img
  103. :.ima
  104. :.gz
  105. :imgfile
  106. set mem=--mem
  107. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem=
  108. call :find %~1
  109. cat --locate=\xEB --length=4 --number=1 %loadfile% || goto :kernel
  110. map %mem% %loadfile% (fd0)
  111. map --hook
  112. if "%~2"=="" && goto :_img
  113. shift
  114. if /i "%~1"=="--dts-ext" && call :dtsext %*
  115. if /i "%~1"=="--max-ext" && call :maxext %*
  116. :_img
  117. rootnoverify (fd0)
  118. if not exist (0)/menu.lst chainloader (0)+1 || configfile (0)/menu.lst
  119. boot || echo -n
  120. exit

  121. :dtsext
  122. shift
  123. write --offset=120 (fd0)/config.sys %~1,0
  124. write --offset=370 (fd0)/config.sys %~2,0
  125. write --offset=232 (fd0)/autoexec.bat %~3 %~4 %~5 %~6 %~7 %~8 %~9
  126. goto :eof

  127. :maxext
  128. shift
  129. if not exist (0)/CONFIG.SYS exit
  130. if not exist (0)/AUTOEXEC.BAT exit
  131. cat --locate="default=" --replace="default=1,0" --number=1 (0)/CONFIG.SYS
  132. cat --locate="call" --replace="Call" (0)/AUTOEXEC.BAT
  133. cat --locate="CALL" --replace="Call" (0)/AUTOEXEC.BAT
  134. cat --locate="m.bat" --replace="M.BAT" (0)/AUTOEXEC.BAT
  135. cat --locate="M.bat" --replace="M.BAT" (0)/AUTOEXEC.BAT
  136. cat --locate="m.BAT" --replace="M.BAT" (0)/AUTOEXEC.BAT
  137. debug 1
  138. cat --locate="Call M.BAT" --number=1 (0)/AUTOEXEC.BAT | set offset=
  139. debug %debug%
  140. write --offset=0x%offset% (0)/AUTOEXEC.BAT %* \r M.BAT \r
  141. goto :eof

  142. :.iso
  143. :isofile
  144. set mem1=--mem
  145. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem1=
  146. call :find %~1
  147. map %mem% %loadfile% (0xff) || map %mem1% %loadfile% (0xff)
  148. map --hook
  149. chainloader (0xff)
  150. boot
  151. exit

  152. :.0
  153. :.bin
  154. :.sys
  155. :chain
  156. calc *0x8280&0xff-0x21 || chainloader --force --raw (pd)%~pnx2 && boot && exit 1
  157. if not %swap%==1 if %hdd%==1 set con=1 && call :swap
  158. call :find %~1
  159. cat --locate=\xEB --length=4 --number=1 %loadfile% || goto :kernel
  160. chainloader %loadfile% || chainloader --force %loadfile%
  161. boot
  162. exit

  163. :pe
  164. shift
  165. call :find %~1
  166. map --in-place ()+1 (hd0)
  167. map --hook
  168. chainloader --force %loadfile%
  169. boot
  170. exit

  171. :nt
  172. shift
  173. call :find %~1
  174. checkrange 0x21 read 0x8280 && chainloader --force --raw (pd)%loadpath% && boot && exit
  175. if not %hdd%==1 && goto :_nt
  176. map () (hd0)
  177. map (hd0) ()
  178. map --rehook
  179. call :find %loadfile%
  180. :_nt
  181. chainloader %loadfile% || chainloader --force %loadfile%
  182. dd if=()+1 of=(md)0x3E+1
  183. boot
  184. exit

  185. :lstfile
  186. shift
  187. :.lst
  188. :.0pe
  189. :.usr
  190. :.diy
  191. call :find %~1
  192. if /i %~nx1==menu.0pe && call :0pe %2 %3
  193. configfile %loadfile%
  194. exit

  195. :0pe
  196. if #%1==# exit || calc %~1 && write 0x60300 0x60300 && write 0x60100 %~1
  197. if /i not "%~x2"==".iso" exit
  198. if "%~2"=="%~nx2" set /u tmp=%usrpath%%%~nx2 || set /u tmp=%~pnx2
  199. write (md)0x301+1 %tmp%
  200. set tmp=%tmp%
  201. set /a tmp=*0x4CB00
  202. write 0x60360 %tmp%
  203. set tmp=
  204. exit

  205. :ramos
  206. shift
  207. call :find %~1
  208. set mem=--mem
  209. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem=
  210. if %topset%==1 && set top=--top ! set top=
  211. map %mem% %top% %loadfile% (hd)
  212. map --hook
  213. map (hd-1) (hd0)
  214. map (hd0) (hd-1)
  215. map --rehook
  216. if not "%~2"=="" && goto :_ramos
  217. rootnoverify (hd0)
  218. chainloader +1
  219. boot
  220. exit
  221. :_ramos
  222. rootnoverify (hd0,0)
  223. chainloader %~2
  224. boot
  225. exit

  226. :mem
  227. set memset=1
  228. goto :next

  229. :nomem
  230. set memset=0
  231. goto :next

  232. :top
  233. set topset=1
  234. goto :next

  235. :noswap
  236. set swap=1
  237. goto :next

  238. :next
  239. shift
  240. goto :start

  241. :swap
  242. if not %hdd%==1 && echo -e \n You are not booting from HDD, no need for swapping the HDD.
  243. if /i %~1==--swap && goto :movebegin
  244. if %swap%==1 && echo -e \n You have already swapped the HDD. && goto :next
  245. echo -e \n Press $[0004]"S" $[0007]in $[0004]5 $[0007]seconds to swap HDD (if only you are booting from USB-HDD)
  246. echo -e \n OR press any other key to $[0004]continue, nothing to do.\n
  247. checkrange 0x73,0x53 pause --wait=5 || goto :moveend
  248. :movebegin
  249. set /a hd=*0x475&0xff+0x7f
  250. checkrange 0x7f calc %hd% && goto :next
  251. set /a hdm=%hd%+1
  252. map (hd0) (%hdm%)
  253. map --hook
  254. :move
  255. set /a hd1=%hd%+1
  256. map (%hd1%) (%hd%)
  257. set /a hd=%hd%-1
  258. checkrange 0x7f calc %hd% || goto :move
  259. map --unmap=%hdm%
  260. map --rehook
  261. ::rootnoverify (hd0,0)
  262. echo -e \n Success for swapping the HDD
  263. :moveend
  264. set swap=1
  265. if %con%==1 && set con= && goto :eof
  266. set con=
  267. goto :next

  268. :input
  269. echo -e \n Please input the command, use $[0005]--help $[0007]or "$[0104]H$[0007]" for RUN usage.
  270. echo -e \n OR press Enter to use $[0005]--fira $[0002]iso=/WIN$.ISO$[0007] as default.
  271. echo -e \n You can also Input "$[0104]M$[0007]" to $[0003]Main Menu $[0007]or "$[0104]C$[0007]" To $[0003]Commandline.
  272. set path=
  273. set /p path=>Input Command:
  274. if not exist menu && set menu=(md)4+8
  275. if /i %path%==m && configfile %menu%
  276. if /i %path%==c && commandline
  277. if /i %path%==h && goto :help
  278. if not exist path && echo -e \n Use $[0005]--fira $[0002]iso=/WIN$.ISO$[0007] as default. && set path=--fira iso=/WIN$.ISO
  279. call :start %path%
  280. exit

  281. :firadisk
  282. set dflag=fira
  283. goto :floppy

  284. :winvblock
  285. set dflag=wvbk
  286. goto :floppy

  287. :floppy
  288. if /i %m:~7,6%==nodisk && set nodisk=1
  289. if %nodisk%==1 && set fd0path=%m:~14% ! set fd0path=%m:~7%
  290. if not exist fd0path && if %dflag%==fira set fd0path=FIRADISK.IMG || if %dflag%==wvbk set fd0path=WINVBLOCK.IMG
  291. set tmp=%~2
  292. if /i %tmp:~,3%==fd1 || goto :choise
  293. set fd1path=%tmp:~4%
  294. if "%fd1path%"=="" && set fd1path=/IASTOR.IMG
  295. shift
  296. :choise
  297. if /i %~2==disk set noiso=1 && goto :loaddisk
  298. set mem1=--mem
  299. if %memset%==1 && set mem=--mem ! if %memset%==0 && set mem1=
  300. if exist fd1path && goto :loadfloppy1
  301. call :find %fd0path%
  302. if %dflag%==fira && set floppy1=floppy,vmem=find:%loadpath%;
  303. map %mem% %loadfile% (fd1) || map %mem1% %loadfile% (fd1)
  304. map --mem (md)+2880 (fd0)
  305. map --hook
  306. dd if=(fd1) of=(fd0) count=1
  307. goto :load_choise
  308. :loadfloppy1
  309. call :find %fd1path%
  310. if %dflag%==fira && set floppy1=floppy,vmem=find:%loadpath%;
  311. map %mem% %loadfile% (fd1) || map %mem1% %loadfile% (fd1)
  312. call :find %fd0path%
  313. if %dflag%==fira && set floppy0=floppy,vmem=find:%loadpath%;
  314. map %mem% %loadfile% (fd0) || map %mem1% %loadfile% (fd0)
  315. map --hook
  316. :load_choise
  317. if /i %~2==disk set noiso=1 && goto :loaddisk
  318. if /i not %~2==iso && goto :next
  319. shift
  320. if %dflag%==fira && map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
  321. call :find %~2
  322. if %dflag%==fira && set cdrom=cdrom,vmem=find:%loadpath%;
  323. map %mem% %loadfile% (0xff) || map %mem1% %loadfile% (0xff)
  324. map --hook
  325. shift
  326. if /i %~2==disk && goto :loaddisk
  327. if %nodisk%==1 && goto :iso_step1
  328. call :cd_or_hdd
  329. checkrange 0x69,0x49 pause --wait=10 && goto :iso_step1
  330. goto :iso_step2

  331. :iso_step1
  332. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%cdrom%%%floppy1%%%floppy0%\n\0
  333. if not %nodisk%==1 if not %swap%==1 if %hdd%==1 set con=1 && call :swap
  334. chainloader (0xff)
  335. boot
  336. exit

  337. :iso_step2
  338. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%cdrom%\n\0
  339. find --set-root --devices=h /WIN_NT$.~BT/SETUPLDR.BIN && chainloader ()/WIN_NT$.~BT/SETUPLDR.BIN && boot && exit
  340. find --set-root --devices=h /NTLDR if exist /NTDETECT.COM || echo -e \x20System installation failed, press any key to back && pause && exit
  341. chainloader /NTLDR
  342. boot
  343. exit

  344. :loaddisk
  345. shift
  346. if %dflag%==fira && map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
  347. if %dflag%==wvbk && map --rd-size=2048 && map --mem (rd)+4 (0x55)
  348. call :find %~2
  349. if %dflag%==fira && set disk=disk,vmem=find:%loadpath%;
  350. if %memset%==1 && set mem=--mem ! set mem=
  351. map --heads=255 --sectors-per-track=63 %mem% %loadfile% (hd)
  352. map --hook
  353. map (hd-1) (hd0)
  354. map (hd0) (hd-1)
  355. map --rehook
  356. if %noiso%==1 && goto :disk_step2
  357. call :cd_or_hdd
  358. checkrange 0x69,0x49 pause --wait=10 && goto :disk_step1
  359. goto :disk_step2

  360. :disk_step1
  361. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%disk%%%cdrom%%%floppy1%%%floppy0%\n\0
  362. if %dflag%==wvbk && write (0x55) #GRUB4DOS\x00v=1\x00%loadpath:~1%\x00\x80\x00
  363. chainloader (0xff)
  364. boot
  365. exit

  366. :disk_step2
  367. if %dflag%==fira && write (99) [FiraDisk]\nStartOptions=%disk%%%cdrom%\n\0
  368. if %dflag%==wvbk && write (0x55) #GRUB4DOS\x00v=1\x00%loadpath:~1%\x00\x80\x00
  369. rootnoverify (hd0)
  370. chainloader +1
  371. boot
  372. exit

  373. :cd_or_hdd
  374. echo -e \n Press $[0004]"I" $[0007]in $[0004]10 $[0007]seconds to boot from ISO
  375. echo -e \n OR press any other key to $[0004]continue System Installation$[0007] (boot from harddisk).\n
  376. goto :eof

  377. :automenu
  378. shift
  379. set i=1001
  380. if "%~1"=="" && set path=/BOOT/IMGS/ ! rootnoverify %~d1 && set path=%~p1
  381. find --set-root --ignore-floppies ls %path% clear || find --set-root --devices=f ls %path% clear || goto :err
  382. call :chdis
  383. if not exist font if not exist image && set image=color white/blue blue/yellow light-red/blue 10
  384. echo -e %font%\n%image%\ndefault 1\ntimeout 10 > (md)0x3000+0x10
  385. echo -e \ntitle                             Automenu for %root%%%path% \\n \nclear\n >> (md)0x3000+0x10
  386. ls %path% | call :makemenu %0 || echo -n
  387. if not exist menu set menu=(md)4+8
  388. echo -e title [%i:~-2%] Back to Main Menu \\n configfile %menu%\nconfigfile %menu%\n >> (md)0x3000+0x10
  389. set i=
  390. set tmp=
  391. configfile (md)0x3000+0x10
  392. exit

  393. :makemenu
  394. shift
  395. if #%1==# exit
  396. set tmp=%~n1
  397. if /i not #%~x1==#.TXT if not #%~x1==# if not "%tmp:~-2,1%"=="~" if /i not "%~n1"=="firadisk" if /i not "%~n1"=="winvblock" || goto :makemenu
  398. if exist %path%%%~n1.TXT && set file=%path%%%~n1.TXT && call :read_txt %file%
  399. if not exist title set title=%~nx1
  400. if not %next1:~,2%==-- && set next1= ! if "%next1%"=="%front1%" && set next1=
  401. if not %front1:~,2%==-- && set front1= ! if "%front1%"=="%title%" && set front1=
  402. echo -n title [%i:~-2%] RUN %title% \n %~nx1 >> (md)0x3000+0x10
  403. if not exist front1 if not exist next1 && set front1=%front% && set next1=%next%
  404. echo -e \n%runs% %front1% %path%%%~1 %next1%\nboot\n >> (md)0x3000+0x10
  405. set title= && set front1= && set next1=
  406. set /a i=%i%+1
  407. goto :makemenu
  408. exit

  409. :read_txt
  410. call :read_line %file% title=1
  411. call :read_line %file% front1=2
  412. call :read_line %file% next1=3
  413. goto :eof

  414. :read_line
  415. set _start=0
  416. set _end=0
  417. cat --locate=\xA --number=%3 %1 | call :get_last_line
  418. set /a _end=%_end%-%_start%
  419. cat --skip=%_start% --length=%_end% %1 | set %2=
  420. set _start=
  421. set _end=
  422. goto :eof

  423. :get_last_line
  424. if "%1"=="" exit
  425. if "%2"=="" && set /a _end=0x%1 ! if "%3"=="" && set /a _start=0x%1+1
  426. shift
  427. goto :get_last_line
复制代码
回复

使用道具 举报

7#
 楼主| 发表于 2012-5-6 21:34:41 | 只看该作者
换了run也是引导到一楼的画面就停止了
回复

使用道具 举报

8#
 楼主| 发表于 2012-5-6 22:44:01 | 只看该作者
将ISO放置非隐藏的UD分区的UDDIY下也是一楼的错误,包括BEINI只能进入内核,无法加载TCE目录
回复

使用道具 举报

9#
 楼主| 发表于 2012-5-6 22:46:47 | 只看该作者
查看mount的结果好像是应该用 dev/sda1?

Windows XP Professional-2012-05-06-22-46-22.png (9.48 KB, 下载次数: 22)

Windows XP Professional-2012-05-06-22-46-22.png
回复

使用道具 举报

10#
发表于 2012-5-7 00:49:19 | 只看该作者
回复

使用道具 举报

11#
 楼主| 发表于 2012-5-7 19:16:06 | 只看该作者

回复 #10 pseudo 的帖子

2. 为什么CDlinux等linux类的iso不能全藏入ud

因为iso里有两部分程序,一部分只在启动初期用到,载入内存后,这部分文件就不需要了;另一部分是进入保护模式后(这时grldr的仿真已失效)才用到的。
如果藏入ud,那么前一部分没问题,但进入保护模式后,要访问后一部分就没办法了,grldr已经失效,linux不认识ud,注定失败。
firadisk能否挽救?不能,firadisk只能在windows保护模式下起作用,对linux无效。

其实,要将类linux的iso藏入ud也是可以的,但可见区要放一份从iso解出的文件,以便解决访问后一部分文件的问题。

另一种办法是将后一部分文件”全内置“到前一部分文件里,启动初期随前一部分一并载入内存,这要改变iso里文件原有文件及其结构,多占内存,但确实可以实现全藏入ud的目的。后像已经开始有人这么去做了。

有个课题可以研究一下,就是如何(不改变结构)直接将CDlinux等全藏入ud。这个应该不太难。0PE差不多就是答案了。

以上过年闲聊,不必较真。
回复

使用道具 举报

12#
发表于 2012-5-7 19:19:36 | 只看该作者
原帖由 secowu 于 2012-5-7 19:16 发表
2. 为什么CDlinux等linux类的iso不能全藏入ud

因为iso里有两部分程序,一部分只在启动初期用到,载入内存后,这部分文件就不需要了;另一部分是进入保护模式后(这时grldr的仿真已失效)才用到的。
如果藏入 ...

如果要2份文件,还不如就可见区放一份文件。。。
回复

使用道具 举报

13#
 楼主| 发表于 2012-5-7 19:21:32 | 只看该作者
原帖由 <i>zhs509</i> 于 2012-5-7 19:19 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2436505&ptid=210102" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
如果要2份文件,还不如就可见区放一份文件。。。
<br />
UD只放那两个文件,其它的解压至可见分区确实可以启动,但失去了隐藏的最初目的
回复

使用道具 举报

14#
发表于 2012-5-7 19:22:36 | 只看该作者
原帖由 secowu 于 2012-5-7 19:21 发表

UD只放那两个文件,其它的解压至可见分区确实可以启动,但失去了隐藏的最初目的

如果这样还不如都不放置。。。
都放可见区,UD区就弄个菜单就是了
回复

使用道具 举报

15#
发表于 2012-5-7 19:53:50 | 只看该作者
你可以给cdlinux的作者发email,好久没更新了,让他改改initrd脚本,搜索initrd内部的跟文件挂载,就像puppylinux那样,整个用mksquashfs打包挂载!
回复

使用道具 举报

16#
 楼主| 发表于 2012-5-7 20:14:29 | 只看该作者
类别: 工具

描述: 这个程序用于创建病毒、蠕虫或其他恶意软件。

建议的操作: 立即删除这个软件。

System Center Endpoint Protection 检测到可能会侵害您的隐私或损坏计算机的程序。您仍然可以访问这些程序所使用的文件而不删除这些程序(不推荐)。若要访问这些文件,请选择“允许”操作,并单击“应用操作”。如果此选项不可用,请以管理员身份登录或请求安全管理员提供帮助。

项目:
file:I:\0PE_NBv1.4.3(2012-05-05)52MB_FBA\FbinstTool.exe

联机获取有关此项目的详细信息。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-28 11:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表