无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2835|回复: 9
打印 上一主题 下一主题

新:毛桃PE安装至Vista及再利用完整版本

[复制链接]
跳转到指定楼层
1#
发表于 2008-2-16 16:06:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先谢谢毛桃----他的PE及努力
其次谢谢小小强--他的安装至Vista的代码
再次谢谢李培聪--他的安装至Vista的代码

+++Vista菜单启动原理++++

让Vista引导Grub.mbr,再引导GRUB

_____________________________代码显然需要优化,各位请见谅了______________________________________[code]@Echo Off

[ 本帖最后由 secowu 于 2008-2-16 04:41 PM 编辑 ]

PESETUP.rar

4.86 KB, 下载次数: 141, 下载积分: 无忧币 -2

2#
 楼主| 发表于 2008-2-16 16:08:24 | 只看该作者
这个红色部分多了,自选删除

Call :CopyAndSetFiles
Goto SUCCESS

:NewHD
回复

使用道具 举报

3#
 楼主| 发表于 2008-2-16 16:13:37 | 只看该作者
下面这段是PE再利用,请自选修改
echo 请稍候,正在安装中......
Echo.
md %rp%\SETUP\MYINS  >NUL 2>NUL
md %rp%\MINIPE       >NUL 2>NUL
md %rp%\SETUP\TOOLS  >NUL 2>NUL
copy myins\aero.sys %rp%\setup\myins     >NUL 2>NUL
copy myins\checkusb.exe %rp%\setup\myins >NUL 2>NUL
copy myins\grubgui.exe %rp%\setup\myins  >NUL 2>NUL
copy myins\grubinst.exe %rp%\setup\myins >NUL 2>NUL
copy myins\hpusbfw.exe %rp%\setup\myins  >NUL 2>NUL
copy myins\md5.exe %rp%\setup\myins      >NUL 2>NUL
copy myins\myins.dll %rp%\setup\myins    >NUL 2>NUL
copy myins\myins.exe %rp%\setup\myins    >NUL 2>NUL
copy myins\ntboot.exe %rp%\setup\myins   >NUL 2>NUL
copy pesetup.ini %rp%\setup              >NUL 2>NUL
copy pesetup.cmd %rp%\setup              >NUL 2>NUL
copy tools\BMP2COVE.exe %rp%\setup\tools >NUL 2>NUL
copy tools\WIMTOOL.EXE %rp%\setup\tools  >NUL 2>NUL
copy tools\MD5CRYPT.rar %rp%\setup\tools >NUL 2>NUL
copy tools\WIMFS.exe %rp%\setup\tools    >NUL 2>NUL
copy tools\WIMGAPI.DLL %rp%\setup\tools  >NUL 2>NUL
copy tools\WIMGAPI.PAS %rp%\setup\tools  >NUL 2>NUL
cls
echo.
回复

使用道具 举报

4#
 楼主| 发表于 2008-2-16 16:14:55 | 只看该作者
这一段就是Vista下安装至启动菜单的功能
从小小强及李培聪那弄来的

  1. :Vista
  2. Set PEDIR=%RP%\MiniPE
  3. If Exist %RP%\MAOTAO Goto Err1
  4. If Exist %PEDIR% Goto Err1
  5. Echo.&&Echo.
  6. SET BAKPATH=%SYSTEMDRIVE%\BOOT\BCDBAK.BAK
  7. SET INFO=WinPe 工具箱
  8. SET MBRP=\maotaog.bin
  9. color 2f
  10. IF NOT EXIST "%systemdrive%\boot\BCD" goto start
  11. cd /d "%TP%"
  12. :Vinstall
  13. cls
  14. if NOT EXIST %systemroot%\system32\bcdedit.exe goto bcdedit_er
  15. bcdedit.exe /enum all | find "%MBRP%" && goto installed
  16. IF NOT EXIST "%BAKPATH%" start /wait bcdedit.exe /export "%BAKPATH%"
  17. for /f "tokens=2 delims={}" %%i in ('bcdedit.exe /create /d "%INFO%" /application bootsector') do SET CLASSID=%%i
  18. IF "%CLASSID%"=="" GOTO createerr
  19. SET CLASSID={%CLASSID%}
  20. ECHO %CLASSID%>%SYSTEMDRIVE%\BOOT\CLASSID_BK.INI
  21. bcdedit.exe /set %CLASSID% device boot >nul
  22. bcdedit.exe /set %CLASSID% path %MBRP% >nul
  23. bcdedit.exe /displayorder %CLASSID% /addlast >nul
  24. bcdedit.exe /timeout 3 >nul
  25. MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% maotaog.bin -r -y>NUL 2>NUL
  26. MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% MTLDR -r -y>NUL 2>NUL
  27. attrib %RP%\maotaog.bin +s +h
  28. attrib %RP%\MTLDR +s +h
  29. cls
  30. echo                  安装PE引导环境到Windows Vista
  31. echo.                  
  32. echo    ===========================================================
  33. echo   请选择安装方式:
  34. Echo    ║  [1] 普通安装/启动 (硬盘安装)        ║
  35. Echo    ║  [2] Grub安装/启动 (硬盘安装,支持 MD5 密码) ║
  36. Echo    ║  [3] Aero安装/启动 (硬盘安装,支持密码)   ║
  37. Echo    ║  [Q] 退出安装                ║
  38. Echo    ║ 注意: Aero 安装项只适合系统分区在(HD0,0)分区 ║
  39. echo    ===========================================================
  40. Echo.
  41. Set Choice=
  42. Set /P Choice=   请选择要进行的操作 (2/3/Q) ,然后按回车:
  43. If "%Choice%"=="" Goto Start
  44. If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
  45. If /I "%Choice%"=="1" Goto Install
  46. If /I "%Choice%"=="2" Goto GInstall
  47. If /I "%Choice%"=="3" Goto AInstall
  48. If /I "%Choice%"=="Q" Exit
  49. pause>nul 2>nul
  50. :installed
  51. cls
  52. echo    本机已经安装过PE,请先卸载!按任意键进行卸载,关闭退出
  53. pause>nul
  54. for /f %%i in (%SYSTEMDRIVE%\BOOT\CLASSID_BK.INI) do set CID=%%i
  55. bcdedit /delete %CID%
  56. goto Vinstall
  57. :createerr
  58. echo.
  59. echo    创建BCD项错误,安装无法继续!
  60. echo    按任意键退出。。。。。。
  61. echo.
  62. pause>nul
  63. goto Xend
  64. :bcdedit_er
  65. echo.
  66. echo    非完整Vista系统,安装无法继续!
  67. echo    按任意键退出。。。。。。
  68. echo.
  69. pause>nul
  70. goto Xend
  71. :Xend
  72. echo on
  73. exit
复制代码
回复

使用道具 举报

5#
 楼主| 发表于 2008-2-16 16:29:22 | 只看该作者
文件对比

E:.
├─MiniPE
│      BJ2008.XPM.GZ
│      DOS.IMG
│      muifont.gz
│      NTCOM
│      OP.WIM
│      PE
│      WINPE.INI
│      WINPE.IS_

└─SETUP
    │  PESETUP.CMD
    │  PESETUP.INI
    │
    ├─MYINS
    │      AERO.SYS
    │      CHECKUSB.EXE
    │      GRUBGUI.EXE
    │      GRUBINST.EXE
    │      HPUSBFW.EXE
    │      MD5.EXE
    │      MYINS.DLL
    │      MYINS.EXE
    │      NTBOOT.EXE
    │
    └─TOOLS
            BMP2COVE.EXE
            WimFltr.EXE
            WimShExt.DLL
            WIMTOOL.EXE
            WimX.EXE
            WinCMD.EXE
回复

使用道具 举报

6#
发表于 2008-2-16 16:46:16 | 只看该作者
不用这么麻烦,vista有自带的修改启动菜单的命令行
回复

使用道具 举报

7#
发表于 2008-2-16 16:46:57 | 只看该作者
:vista安装
For %%I In (Z Y X W V U T S R Q P O N M L K J I H G F E D C) Do If Exist %%I:\BOOTMGR Set RP=%%I:
Set PE核心目录=%RP%\DEEPIN
set vid=
set timeout=5
set gname=深度官方装机PE
set gname2=\DEEPIN\maotao.bin

bcdedit >c:\windows\temp_bcd.txt
If Exist %PE核心目录% Goto 错误一
Set TargetP=硬盘 && Set TxtSp=
If "%OP%"=="" Call :设定外置

bcdedit   /create /d "%gname%" /application bootsector >c:\windows\vid.ini
If Not Exist %PE核心目录% MD %PE核心目录%>NUL 2>NUL
If Exist %RP%\LDRXPE %去属性% %RP%\LDRXPE
If Exist %RP%\WINNT.XPE %去属性% %RP%\WINNT.XPE
Echo 正在复制文件,请稍候 ............
MyIns\MyIns.exe e MyIns\MyIns.dll -o%PE核心目录% MAOTAO.BIN -r -y>NUL 2>NUL
MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP%\ WINNT.XPE -r -y>NUL 2>NUL
for /f "tokens=2 delims={" %%i In (c:\windows\vid.ini) Do (
               set vida=%%i
)
for /f "tokens=1 delims=}" %%i In ("%vida%") Do (
               set vid={%%i}
)
echo %vid%>c:\windows\vid.ini
bcdedit   /set %vid% device partition=c:   >nul
bcdedit   /set %vid% path %gname2% >nul
bcdedit   /displayorder %vid% /addlast >nul
bcdedit   /timeout   %timeout% >nul
del c:\windows\temp_bcd.txt >nul 2>nul
del c:\windows\temp_bcd1.txt >nul 2>nul
Call :vista拷贝文件
del %RP%\boot.ini /f /q /a >nul 2>nul
del %RP%\bootfont.bin /f /q /a >nul 2>nul
del %RP%\bootfont.bin.2K /f /q /a >nul 2>nul
Goto 成功
回复

使用道具 举报

8#
发表于 2008-2-16 16:47:10 | 只看该作者
:vista卸载
for /f "tokens=1 delims=:" %%i In ('findstr /n %gname2%   c:\windows\temp_bcd.txt') Do (
                Set nid=%%i
)
set /a nid=%nid%-2
findstr /n identifier c:\windows\temp_bcd.txt>c:\windows\temp_bcd1.txt

)
for,/f,"tokens=1",%%i,In (c:\windows\vid.ini) Do (
                set vid=%%i
)
bcdedit /delete %vid% /cleanup >nul
bcdedit /timeout %timeout% >nul
bcdedit >c:\windows\temp_bcd.txt
del c:\windows\temp_bcd.txt >nul 2>nul
del c:\windows\temp_bcd1.txt >nul 2>nul
del c:\windows\vid.ini >nul 2>nul

If Exist %RP%\WINNT.XPE %去属性% %RP%\WINNT.XPE&&Del %RP%\WINNT.XPE /Q>NUL 2>NUL
If Exist %RP%\%日志文件% For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"WinPE外挂位置^" %RP%\%日志文件%') do SET OPU=%%i
If Not "%U%"=="" Set OPU=%OP%

If Exist %OPU%\外部软件 RD %OPU%\外部软件 /S /Q>NUL 2>NUL
If Exist %RP%\%日志文件% %去属性% %RP%\%日志文件%&&Del %RP%\%日志文件% /Q>NUL 2>NUL
If Exist %RP%\DEEPIN RD %RP%\DEEPIN /S /Q>NUL 2>NUL
Title %Prog%——卸载完成
If "%Choi%"=="1" (Echo.&&Echo.&&Echo    卸载完成,请按任意键准备安装 。。。&&PAUSE>NUL 2>NUL&&Goto 开始)
Echo.&&Echo.&&Echo    卸载完成,请按任意键退出 。。。
PAUSE>NUL 2>NUL
Exit
回复

使用道具 举报

9#
发表于 2008-2-16 16:47:41 | 只看该作者
这个是初步写的代码,正在完善卸载模块
回复

使用道具 举报

10#
发表于 2008-2-16 17:26:13 | 只看该作者
改了一下上面的代码。
:vista安装
For %%I In (Z Y X W V U T S R Q P O N M L K J I H G F E D C) Do If Exist %%I:\BOOTMGR Set RP=%%I:
Set PE核心目录=%RP%\DEEPIN

set vid=
set timeout=5
set gname=深度官方装机PE
set gname2=\DEEPIN\maotao.bin

bcdedit >c:\windows\temp_bcd.txt
If Exist %PE核心目录% Goto 错误一
If Exist %RP%\windows\启动菜单 Goto 错误一
Set TargetP=硬盘 && Set TxtSp=
If "%OP%"=="" Call :设定外置

if not exist %RP%\windows\启动菜单 md %RP%\windows\启动菜单
BCDEDIT /export %RP%\windows\启动菜单\bcdbak

bcdedit   /create /d "%gname%" /application bootsector >c:\windows\vid.ini
If Not Exist %PE核心目录% MD %PE核心目录%>NUL 2>NUL
If Exist %RP%\LDRXPE %去属性% %RP%\LDRXPE
If Exist %RP%\WINNT.XPE %去属性% %RP%\WINNT.XPE
Echo 正在复制文件,请稍候 ............
MyIns\MyIns.exe e MyIns\MyIns.dll -o%PE核心目录% MAOTAO.BIN -r -y>NUL 2>NUL
MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP%\ WINNT.XPE -r -y>NUL 2>NUL
for /f "tokens=2 delims={" %%i In (c:\windows\vid.ini) Do (
               set vida=%%i
)
for /f "tokens=1 delims=}" %%i In ("%vida%") Do (
               set vid={%%i}
)
echo %vid%>c:\windows\vid.ini
bcdedit   /set %vid% device partition=c:   >nul
bcdedit   /set %vid% path %gname2% >nul
bcdedit   /displayorder %vid% /addlast >nul
bcdedit   /timeout   %timeout% >nul
del c:\windows\temp_bcd.txt >nul 2>nul
del c:\windows\temp_bcd1.txt >nul 2>nul
Call :vista拷贝文件
Goto 成功



:vista卸载
BCDEDIT /import %RP%\windows\启动菜单\bcdbak
rd %RP%\windows\启动菜单 /q /s
If Exist %RP%\WINNT.XPE %去属性% %RP%\WINNT.XPE&&Del %RP%\WINNT.XPE /Q>NUL 2>NUL
If Exist %RP%\%日志文件% For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"WinPE外挂位置^" %RP%\%日志文件%') do SET OPU=%%i
If Not "%U%"=="" Set OPU=%OP%

If Exist %OPU%\外部软件 RD %OPU%\外部软件 /S /Q>NUL 2>NUL
If Exist %RP%\%日志文件% %去属性% %RP%\%日志文件%&&Del %RP%\%日志文件% /Q>NUL 2>NUL
If Exist %RP%\DEEPIN RD %RP%\DEEPIN /S /Q>NUL 2>NUL
Title %Prog%——卸载完成
If "%Choi%"=="1" (Echo.&&Echo.&&Echo    卸载完成,请按任意键准备安装.........&&PAUSE>NUL 2>NUL&&Goto 开始)
Echo.&&Echo.&&Echo    卸载完成,请按任意键退出.........
PAUSE>NUL 2>NUL
Exit


简化了vista卸载那里,直接还原bcdedit的备份就可以了,不用像uepon那样弄。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 00:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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