![Board logo](images/default/logo.gif)
标题: [系统相关] [已解决]xp系统下,运行1次bat或者vbs代码,就自动将ghost安装到xp启动菜单里面。 [打印本页]
作者: ygqiang 时间: 2015-1-8 00:19 标题: [已解决]xp系统下,运行1次bat或者vbs代码,就自动将ghost安装到xp启动菜单里面。
本帖最后由 ygqiang 于 2015-1-8 11:05 编辑
[已解决]xp系统下,运行1次bat或者vbs代码,就自动将ghost安装到xp启动菜单里面。
xp启动菜单里面显示单独的一个选项。开机可以选择进入,进入以后直接启动某个版本的ghost
(有3个版本的ghost)(ghost都是在dos环境下运行的)。
(虽然也有很多软件,但需要频繁多次点击鼠标才能装上。而且主要是经常重装xp系统)
如何实现?谢谢
作者: ygqiang 时间: 2015-1-8 00:42
网上看到的资料。。。
@echo off
title 正在判定系统引导器类型……
color 1f
attrib -s -r -h >nul 2>nul
set disname=启动系统维护工具-20110210版
set timeout=3
if exist c:\boot.ini goto ntldr
if exist c:\boot\bcd goto bootmgr
goto nosys
:ntldr
title 系统启动属于ntldr类型,正在安装工具,请稍等……
type c:\boot.ini| find "\ZHANGHD.LDR" >nul && echo. && title 本工具已经安装,请退出。&& pause && goto clear
echo=>>c:\boot.ini
echo=>>c:\boot.ini
echo C:\ZTPE\GRUB\ZHANGHD.LDR="%disname%">>c:\boot.ini
bootcfg /timeout %timeout% >nul 2>nul
goto clear
:bootmgr
title 系统启动属于bootmgr类型,正在安装工具,请稍等……
set vid=
bcdedit >bcdtemp.txt
type bcdtemp.txt | find "\ZHANGHD.LDR" >nul && echo. && title 本工具已经安装,请退出。&& pause && del ntldr && goto clear
bcdedit /create /d "%disname%" /application bootsector >vid.ini
for,/f,"tokens=2 delims={",%%i,in (vid.ini) do (
set vida=%%i
)
for,/f,"tokens=1 delims=}",%%i,in ("%vida%") do (
set vid={%%i}
)
echo %vid%>vid.ini
bcdedit /set %vid% device boot >nul
bcdedit /set %vid% path \ZTPE\GRUB\ZHANGHD.LDR >nul
bcdedit /displayorder %vid% /addlast >nul
bcdedit /timeout %timeout% >nul
del ntldr >nul 2>nul
goto clear
:nosys
title C盘没有发现系统引导器,正在安装工具到硬盘,请稍等……
echo 请手动删除C盘的NTLDR,然后重命名文件ZHANG到文件名NTLDR,然后按任意键继续
@pause >nul 2>nul
bootsect /nt52 C:
goto clear
:clear
del ntdetect.com >nul 2>nul
del bootfont.bin >nul 2>nul
del autoexec.bat >nul 2>nul
del config.sys >nul 2>nul
del autoexec.bat >nul 2>nul
del config.sys >nul 2>nul
del bcdtemp.txt >nul 2>nul
del vid.ini >nul 2>nul
del vid.txt >nul 2>nul
del bcd_backup.log >nul 2>nul
del bcd_backup.log1 >nul 2>nul
del bcd_backup.log2 >nul 2>nul
del bcd_backup.log1 >nul 2>nul
attrib +s +r +h >nul 2>nul
attrib +s +r +h ZTPE >nul
attrib +s +r +h ZTPE\DESKTOP.INI >nul
attrib -s -r -h SETUP.CMD
title 安装已经完成,重新启动选择菜单进入系统维护工具。
@pause
del %0
加 echo. 很有必要相当于回车输出一空行,避免加到文件尾部,如果文件结束有空行则看不出来~~
保险起见批处理要以下最少三行内容
attrib -r c:\boot.ini
echo. >>c:\boot.ini
echo C:\wgldr.mbr="一键恢复系统" >>c:\boot.ini
作者: yu2n 时间: 2015-1-8 09:35
一个文本文件创造一个世界?没那么简单。
放上未完工的项目,对照下,你做到哪一步了?
作者: yu2n 时间: 2015-1-8 09:40
本帖最后由 yu2n 于 2015-1-8 09:45 编辑
以上是Win7PE版本,支持VHD差分系统备份的恢复,支持Ghost备份的恢复。
另有纯DOS版本,仅仅支持Ghost备份恢复。
……都没做到普通用户都能自行安装、安全使用的地步。
整个过程是按照配置文件全自动进行,给不会用的人就是灾难,毁灭数据只在分秒之中。
作者: ygqiang 时间: 2015-1-8 11:00
本帖最后由 ygqiang 于 2015-1-8 16:32 编辑
以上是Win7PE版本,支持VHD差分系统备份的恢复,支持Ghost备份的恢复。
另有纯DOS版本,仅仅支持Ghost备份 ...
yu2n 发表于 2015-1-8 09:40 ![](http://www.bathome.net/images/common/back.gif)
复杂问题简单化。
还是利用现成的启动软件吧。
不过是改造成运行1个bat 文件,就全自动安装到xp启动菜单上了。不需要频繁用鼠标手动点击好多次了。- @echo off
- if "%1" == "h" goto begin
- mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
- :begin
- rem 下边开始写批处代码了
-
-
- set timeout=3
- set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
-
- if exist c:\boot.ini goto ntldr
- exit
-
-
- :ntldr
- bootcfg /timeout %timeout% >nul 2>nul
- attrib -s -r -h c:\boot.ini
-
- echo. >>c:\boot.ini
-
- findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
- findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
-
- if not exist c:\WZBOOT "%rar%" x -y "WDOS工具箱.rar" c:\
- if not exist c:\PETools "%rar%" x -y "通用 PE 工具箱.rar" c:\
-
- attrib +s +r +h c:\boot.ini
-
- exit
复制代码
作者: yu2n 时间: 2015-1-8 11:50
本帖最后由 yu2n 于 2015-1-8 11:53 编辑
回复 5# ygqiang
题目太大……还是说说你的BAT吧。
如果你自己忘了安装WinRAR……
如果你自己改了系统盘符,系统盘符不是 C: ,是 %SystemDrive% ……
如果你装了两个XP系统……
……
如果是给用户用呢?
感觉细节很多很烦是吧?感觉什么软件都不是尽善尽美了吧?
~自己喜欢就好。
安装脚本,供参考:- cls&@echo off
- title %~n0
-
- ::@chcp 950
- @echo off
- title -- Install Grub4Dos Boot Menu -- [Win XP/2003/NT4]
- color 0b
- call :_main
- :: setlocal enableDelayedExpansion
-
- :: Get Input
- goto :eof
- :_main
- :: Set Path
- call :_set_path
- cls
- echo.
- echo, Please enter the installation path, the sample is as follows^:
- echo, Local Drive^: C^:
- echo, UNC Drive^: \\PC002\C$
- echo.
- set /p "wkDir=Input Work Drive:> "
- if not exist "%wkDir%" call :_error_exit "Work Drive Not Found!"
- if not exist "%wkDir%\windows" call :_error_exit "Work Drive Not Found!"
- if not exist "%wkDir%\boot.ini" call :_error_exit "Work Drive Not Found!"
-
- call :_uninstall
- echo.
- echo,UnIntall Grub4Dos Done^! ^$_^$
- echo.
-
- set /p "p=> Install Grub4Dos ... " <nul & pause
- call :_install
- echo.
- echo,Install Grub4Dos Done^! ^^_^^
- echo.
-
- set /p "p=> Install 0pe ... " <nul & pause
- call :_install_0pe
- echo.
- echo,Install 0PE Done^! ^^_^^
- echo.
- pause
- goto :eof
-
-
-
-
- :: Install
- goto :eof
- :_install
- if not exist "%wkDir%\boot.ini.bak_g4d" (
- attrib -a -h -r -s "%wkDir%\boot.ini"
- call :_xcopy "%wkDir%\boot.ini" "%wkDir%\boot.ini.bak_g4d"
- )
- call :_xcopy "%meDir%\boot.ini" "%wkDir%\boot.ini"
- call :_xcopy "%meDir%\grldr" "%wkDir%\grldr"
- call :_xcopy "%meDir%\boot" "%wkDir%\boot"
- goto :eof
-
-
- goto :eof
- :_install_0pe
- call :_xcopy "%meDir%\0pe\0PE.ISO" "%wkDir%\boot\pe\0PE.ISO"
- call :_xcopy "%meDir%\0pe\0PE.ISO.txt" "%wkDir%\boot\pe\0PE.ISO.txt"
- goto :eof
-
-
- goto :eof
- :_uninstall
- if exist "%wkDir%\boot.ini.bak_g4d" (
- attrib -a -h -r -s "%wkDir%\boot.ini"
- call :_xcopy "%wkDir%\boot.ini.bak_g4d" "%wkDir%\boot.ini"
- del /a /f /q "%wkDir%\boot.ini.bak_g4d"
- attrib +a +h +r +s "%wkDir%\boot.ini"
- )
- if exist "%wkDir%\grldr" del /a /f /q "%wkDir%\grldr"
- if exist "%wkDir%\boot" rd /s /q "%wkDir%\boot"
- goto :eof
-
-
- goto :eof
- :_xcopy
- if not exist "%~1" goto :eof
- echo.
- ((pushd "%~1" >nul 2>nul) && (
- echo,[Folder] %~1
- xcopy /d /e /v /c /i /h /r /y /z "%~1" "%~2"
- popd
- )) || (
- echo,[File] %~1
- copy /v /y /z "%~1" "%~2"
- )
- goto :eof
-
-
- rem --set Path
- goto :eof
- :_set_path
- set "meName=%~n0"
- set "meDir=%~dp0"
- set "meDir=%MeDir:~0,-1%"
- set "meLog=%MeDir%\%MeName%.log"
- set "binPath=%MeDir%\bin"
- set "pathBak=%Path%"
- set "path=%pathBak%;%MeDir%;%binPath%"
- goto :eof
-
-
- goto :eof
- :_error_exit
- if "%~1" neq "" (
- echo,[Error] %~1
- ) else (
- if %ERRORLEVEL% neq 0 (echo,[Error] %ERRORLEVEL%)
- )
- pause
- exit
复制代码
文件列表,供参考:- 卷 VBOX_D_DRIVE 的文件夹 PATH 列表
- 卷序列号为 7C67-2B0F
- E:\DATA\APP\SYSTEM\BOOT_GRUB\GRUB_BOOT
- │ boot.ini
- │ grldr
- │ install_grub4dos.bat
- │
- ├─0pe
- │ 0PE.ISO
- │ 0PE.ISO.txt
- │
- └─boot
- │ HDTune.winpe.7z.exe
- │
- └─grub
- │ menu.lst
- │ unifont.hex.gz
- │ wallpaper.lzma
- │
- ├─dos
- │ dir.txt
- │ Maxs.sys
- │ Memdisk.gz
- │ Memtest.iso
- │ ReadMe.txt
- │
- ├─others.tools
- │ BOOTICEx86v1.321.exe.7z
- │ grldr
- │ grldr.mbr
- │ grldr~pwd_se
- │ WINNT5.X_NTLDR.7z
- │
- └─pe
- 0PE.iso.log
- dir.txt
- ReadMe.txt
- Ton8PE_V5.0_ISO.txt
- TonPE.iso
- V7PXE-g115.zip
-
复制代码
作者: amwfjhh 时间: 2015-1-8 13:27
呵呵,楼上的很严谨啊。
任何一个项目,到具体实施时会发现问题比想象的多得多,为什么一个工作多年的高工会比刚毕业的大学生工资拿得高,就知识结构而言可能不相上下甚至可能现在出来的毕业生涉及的知识面还稍广一些,但论做事刚毕业的绝对跟高工比差上几条街,这就是经验差别,是一个项目一个项目累积起来的修炼成果,这是一个慢慢成长的过程,参与其中,解决问题不正是乐趣所在吗。
作者: DAIC 时间: 2015-1-8 14:47
回复 5# ygqiang - findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
- findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
复制代码
这样可以避免重复写入
作者: ygqiang 时间: 2015-1-8 16:32
回复 ygqiang 这样可以避免重复写入
DAIC 发表于 2015-1-8 14:47 ![](http://www.bathome.net/images/common/back.gif)
多谢了。。。最终代码。。- @echo off
- if "%1" == "h" goto begin
- mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
- :begin
- rem 下边开始写批处代码了
-
-
- set timeout=3
- set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
-
- if exist c:\boot.ini goto ntldr
- exit
-
-
- :ntldr
- bootcfg /timeout %timeout% >nul 2>nul
- attrib -s -r -h c:\boot.ini
-
- echo. >>c:\boot.ini
-
- findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
- findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
-
- if not exist c:\WZBOOT "%rar%" x -y "WDOS工具箱.rar" c:\
- if not exist c:\PETools "%rar%" x -y "通用 PE 工具箱.rar" c:\
-
- attrib +s +r +h c:\boot.ini
-
- exit
复制代码
作者: DAIC 时间: 2015-1-9 11:38
回复 9# ygqiang
第19行>>左边那个空格是多余的
作者: ygqiang 时间: 2015-1-10 09:29
windows7的启动菜单项不像XP或2003那样编辑方便,windows7没有boot.ini.虽然可以通过bcdedit编辑和修改,但总感觉不那么方便迅速。为了方便,写了一个批处理用来编辑(包括添加和删除)win7的启动菜单项。
需要注意的是添加的启动菜单项的引导文件名一定不要填错,且文件一定要放到C盘根目录下!
另外,如果你的系统已经直接启用超级管理员(administrator)登录系统了,就不用右键-以管理员身份运行批处理了,直接双击运行即可。win7启用超级管理员(administrator)的方法:在“计算机”上点击鼠标右键选择“管理”,在“系统工具”-“本地用户和组”-“用户”里右键点击“Administrator”,选择属性,把“帐户已禁用”取消,然后退出管理并注销系统,选择Administrator帐户再登录
@echo off
@title 正在编辑bcdedit…By 百味人生http://baivi.com
MODE con COLS=60 LINES=10 &COLOR 0a
setlocal EnableDelayedExpansion
cd c:\windows\system32\
echo.
echo.
set /p name=输入你要添加的启动项名:
set /p path=输入你要添加的启动项的引导文件名:
bcdedit /create /d "%name%" /application bootsector>c:\1.txt
for /f "tokens=2 delims= " %%i in (c:\1.txt) do set dim=%%i
bcdedit /set %dim% device partition=c:
bcdedit /set %dim% path \%path%
bcdedit /displayorder %dim% /addlast
del c:\1.txt
cls
echo.
echo.
echo 正在编辑中,请稍候…
ping /n 4 127.0.0.1>nul 2>nul
cls
echo.
echo 创建了名为"%name%"的启动菜单项
echo.
echo 要删除此启动菜单项请按 1
echo.
echo 保留启动菜单项并退出请按任意键
echo.
echo.
set /p num=输入选项:
if "%num%"=="1" (
goto 1
)
goto 2
:1
bcdedit /delete %dim%>nul
echo 删除完毕!按任意键退出 & pause>nul
:2
set name=
set dim=
set path=
set num=
exit
作者: betterplayer 时间: 2015-12-27 01:25
本帖最后由 betterplayer 于 2015-12-27 01:28 编辑
楼上的各位兄台,我是新手,对于批处理只懂一点点。现在我有个问题想请教。
我管理一个机房,有50台电脑,现在安装的都是Win7系统。
我在教师机上安装了控制软件(极域电子教室),可以对下面的学生机进行监控等任意操作,也可以让学生机直接运行某个程序。
我现在想作一个批处理放到每台学生机上,在教师机上命令每台学生机运行这个批处理后,每台学生机就能自动像人工点击onekey ghost那样按照我的要求设置好后,重启并转到Ghost进行系统的备份或恢复。
我对编程序不是太懂,所以请求各位的帮助。
现在的问题是:如果使用onekey ghost软件,教师机虽然能远程让学生机运行这个程序,但软件打开后,接下去还需要进行备份或恢复的相关设置,这一些却不能自动处理,需要手动来点了。那样就很麻烦。
有没有办法做一个批处理,运行后能让学生机的启动菜单加一条Ghost选项,且在重启后默认跳到这一条,并自动按设定好的Ghost参数对系统盘(C)进行备份呢?
万分感谢!
作者: pcl_test 时间: 2015-12-27 02:48
回复 12# betterplayer
ghost命令即可,另外居然不用网刻
作者: ygqiang 时间: 2015-12-27 08:32
楼上的各位兄台,我是新手,对于批处理只懂一点点。现在我有个问题想请教。
我管理一个机房,有50台电脑, ...
betterplayer 发表于 2015-12-27 01:25 ![](http://www.bathome.net/images/common/back.gif)
不懂,求高手解决。。
作者: betterplayer 时间: 2015-12-27 09:16
回复 betterplayer
ghost命令即可,另外居然不用网刻
pcl_test 发表于 2015-12-27 02:48 ![](http://www.bathome.net/images/common/back.gif)
这位兄弟不理解我的意思。
我是需要在教师机上远程让每台学生机执行一个批处理后,自动在启动菜单上增加默认启动到Ghost的选项,以实现重启后自动备份,且备份到本机上。ghost的命令行我已经知道了,但不知道的是如何添加启动选项,以及让它重启后自动能进入Ghost的工作环境里。
不用网克是因为这50台电脑配置有点差别,而且用网克速度不够快。
网克我也不会用。
作者: aa77dd@163.com 时间: 2015-12-27 10:55
本帖最后由 aa77dd@163.com 于 2015-12-27 11:55 编辑
回复 15# betterplayer
你要做的是:
系统重启后, 自动引导到一个 DOS 环境, 在此环境下, 以 ghost 命令行方式对 windows 所在分区自动完成备份并重启再回到 windows 环境
整个过程都全自动, 不需人为参与干预(这是理想的情况, 实际上有可能遇到到各种状况而中途卡住不动, 或者错误退出).
首先一个最大的技术难点在于引导, 引导有多种方式, 比如 grub4dos, ntldr
XP 系统的 ntldr + boot.ini 可以引导启动一个 DOS 或者 PE 环境, 这种方式是 XP 系统原生的, 在我看来, 也是相对容易掌握些的(grub4dos 需要更多的学习时间)
引导技术放一边, 再就是 DOS 环境和 GHOST 的部署及自动化的问题了, 这些要想自己解决, 需要对 DOS 和 GHOST 都进行较大量的学习
我曾经制作过一个快速备份工具, 和你的想法很接近, 楼主要想实现自己完全的想法, 还请自己进行研究
我做的这个工具, 双击就可以安装好备份工具, 然后 Win + R 键组合, 打入 gbf , 弹出一个 CMD 的窗口, 回车 就可以立即重启备份系统, 在此基础上是可以改成你想要的效果的
制作这个已经是很久前了, 我现在没兴致来折腾它了, 我对 引导 技术, 在 DOS 环境下 GHOST 对各种磁盘分区格式支持的兼容性 这些问题的了解有限, 所以过程全自动的成功率也不能保证 100% 的
下载 GGhost090707速装版
作者: ygqiang 时间: 2015-12-27 11:05
回复 16# aa77dd@163.com
能否设计成:xp系统,桌面环境下。
1、双击/运行某个bat,自动将dos环境和ghost软件装到xp启动菜单上,自动重启xp系统,开始自动ghost备份c盘系统分区到d盘根目录下。
2、双击/运行另1个bat,自动将dos环境和ghost软件装到xp启动菜单上,自动重启xp系统,开始自动将d盘根目录下的gho文件ghost还原到c盘系统分区上。
作者: aa77dd@163.com 时间: 2015-12-27 11:15
回复 17# ygqiang
能, 请楼主自己动手, 丰衣足食
作者: ygqiang 时间: 2015-12-27 11:26
回复 18# aa77dd@163.com
抱歉。。。不会啊。。。
作者: pcl_test 时间: 2015-12-27 11:51
回复 15# betterplayer
不就是每台机各自备份一份镜像么?我的意思是完全没必要弄什么启动项,既然你教师机可以控制学生机并执行批处理,那么把windows桌面版的ghost和编有ghost备份镜像命令代码的批处理文件通过教师机分发到学生机,然后直接执行批处理不就可以了么(极域甚至可以直接执行命令,连批处理都可以不需要)?另外,学校机房的机子难道还每台机都不一样?对于相同的机子,明明可以只需备份一份镜像,恢复时公用同个镜像即可,不明白你为什么要每台机各自备份一份镜像?就算有几组机不一样,那么只要备份几个镜像即可;再有,网刻速度很快,局域网的传输速度,你应该懂的,当然这说的是批量恢复
作者: ygqiang 时间: 2015-12-27 12:00
回复 20# pcl_test
他需要的是:全自动化/自动ghost还原操作吧?
作者: aa77dd@163.com 时间: 2015-12-27 12:10
本帖最后由 aa77dd@163.com 于 2015-12-27 12:12 编辑
回复 20# pcl_test
仅讨论下楼上提到的这一点:
把windows桌面版的ghost和编有ghost备份镜像命令代码的批处理文件通过教师机分发到学生机,然后直接执行批处理不就可以了么
ghost 在 Windows XP 环境下是不能对当前系统所在分区进行备份或者恢复的, 无论是 DOS 版还是 32 位版本的, 所以要对当前系统所在分区做备份, 一个方式就是重启引导到一个 DOS 环境, 再运行 DOS 版的 ghost
这里批处理就会涉及到两个环境了,
一个是 Windows XP 环境下的批处理, 它可以安排某些文件的预先部署, 比如 DOS 环境所需文件的部署, 最后强制重启系统
另一个就是 DOS 环境下的批处理, 它运行 ghost 的命令行方式对 Windows XP 所在分区进行自动备份或者恢复, 以及在重启前(如果是备份系统操作)恢复 boot.ini 中默认启动项设置为 Windows XP, 最后再重启
作者: betterplayer 时间: 2015-12-27 16:41
本帖最后由 betterplayer 于 2015-12-27 16:43 编辑
回复 betterplayer
不就是每台机各自备份一份镜像么?我的意思是完全没必要弄什么启动项,既然你教师机可以控制学生机并执行批处理,那么把windows桌面版的ghost和编有ghost备份镜像命令代码的批处理文件通过教师机分发到学生机,然后直接执行批处理不就可以了么(极域甚至可以直接执行命令,连批处理都可以不需要)?另外,学校机房的机子难道还每台机都不一样?对于相同的机子,明明可以只需备份一份镜像,恢复时公用同个镜像即可,不明白你为什么要每台机各自备份一份镜像?就算有几组机不一样,那么只要备份几个镜像即可;再有,网刻速度很快,局域网的传输速度,你应该懂的,当然这说的是批量恢复
pcl_test 发表于 2015-12-27 11:51 ![](http://www.bathome.net/images/common/back.gif)
大哥,早上我是用手机回复的,没仔细看,所以不知道您是版主,失敬失敬了!
以前我只是玩单机的,第一次接手机房。机房里电脑有两个配置,并不能一个镜像通用,怕出问题。
网克我没有玩过,一次都没有,所以不懂。
另外每台计算机都是固定IP的,计算机都是按排按列命名,如果用一个共用镜像,还是需要在恢复好镜像后再作手动调整,那还不如不用。
还有电脑倒全是千兆网卡的,但有个交换机是百兆的,所以有点不一样啊。这个网克会不会有影响?
所以网克我觉得现在对我不太适用,暂时还不想弄,到明年再摸索下吧。
现在我刚学会了自己封装Win7系统。把机房电脑需要用的软件全部装好,再做成通用的镜像。用这个镜像网克倒是可以的。但恢复好后,还是需要手动设置,那也是一样麻烦的。
我看过雨林木风的onekey ghost,它在win环境下设置好备份或是恢复的需求,点确定后,是在引导上添加了一个启动项,启动是ntldr + boot.ini的形式,然后这个启动大概是先加载了ylmf.img这个镜像,然后自动运行C根下的ghost.bat这个批处理,这个批处理里面的内容如下:
======================================
Ghost.exe -noide -nousb -clone,mode=pdump,src=1:1,dst=1:2\Ghost..\C_Win7.GHO -sure -fro -rb -z9
restart
======================================
关于上面启动的部分我想用批处理也完全可以实现,只是如何实现,我还不懂。
我现在想知道的是我的批处理应该如何来写,也可以在启动项里添加像onekey ghost那样的效果——即下次启动后自动引导到ylmf的镜像,再自动运行ghost.bat的批处理,从而实现自动Ghost备份/恢复的操作。
我认为这样的操作对我来说,肯定会比网克更加方便。
如果你知道还请提点我一下。
谢谢!
作者: betterplayer 时间: 2015-12-27 16:55
回复 pcl_test
ghost 在 Windows XP 环境下是不能对当前系统所在分区进行备份或者恢复的, 无论是 DOS 版还是 32 位版本的, 所以要对当前系统所在分区做备份, 一个方式就是重启引导到一个 DOS 环境, 再运行 DOS 版的 ghost
这里批处理就会涉及到两个环境了,
一个是 Windows XP 环境下的批处理, 它可以安排某些文件的预先部署, 比如 DOS 环境所需文件的部署, 最后强制重启系统
另一个就是 DOS 环境下的批处理, 它运行 ghost 的命令行方式对 Windows XP 所在分区进行自动备份或者恢复, 以及在重启前(如果是备份系统操作)恢复 boot.ini 中默认启动项设置为 Windows XP, 最后再重启
aa77dd@163.com 发表于 2015-12-27 12:10 ![](http://www.bathome.net/images/common/back.gif)
这位大哥您说的很对。
我查过,貌似还不能在win环境下对C分区进行备份的吧。所以只能在DOS下用Ghost来进行备份。
你说的两步,确实我也想到了。
第一步,强制重启系统我不需要。因为等我运行这个批处理后,用电子教室就可以自动让学生机重启。所以批处理在这里涉及的,就只需要如何添加启动项,还有应该部署哪些文件到C根下,且在下次启动时,能自动让它运行备份或恢复的Ghost批处理。
第二步,那就是这个Ghost的批处理了,这个我学习过Ghost的一些参数,基本上是能掌握的,何况用onekey ghost里也可以复制出来,这个不是问题。
所以关键是第一步启动,加载镜像,这些应该如何来写我不懂。
关键主要是对于系统的启动这一块,我没有学过。
谢谢!
作者: betterplayer 时间: 2015-12-27 17:03
回复 aa77dd@163.com
能否设计成:xp系统,桌面环境下。
1、双击/运行某个bat,自动将dos环境和ghost软件装到xp启动菜单上,自动重启xp系统,开始自动ghost备份c盘系统分区到d盘根目录下。
2、双击/运行另1个bat,自动将dos环境和ghost软件装到xp启动菜单上,自动重启xp系统,开始自动将d盘根目录下的gho文件ghost还原到c盘系统分区上。
ygqiang 发表于 2015-12-27 11:05 ![](http://www.bathome.net/images/common/back.gif)
这个兄台说得对。我上面所说的内容,也正是需要实现你所说的这两个功能。
不过稍微有点不一样的是,我需要的这个批处理可以不需要强制重启。而只需要在启动项上加上下次启动时,自动运行备份或者是恢复系统的操作就行。
因为重启电脑这个操作,我用电子教室软件是可以控制实现的。也就是说,等我运行过批处理后,它自动部署好了下次启动时自动备份或者恢复系统所需的操作后,我可以在教师机上用电子教室来控制学生机重新启动系统。
当然如果批处理运行后,能自动重启并进行相应的操作,那也是挺好的。
作者: aa77dd@163.com 时间: 2015-12-27 18:14
本帖最后由 aa77dd@163.com 于 2015-12-27 18:25 编辑
回复 24# betterplayer
我在 16 楼已经贴出了一个链接, 那是我以前基于一个叫做 GGHOST 的工具(该工具在Win系统下没有批处理启动备份的方式, 而是要打开图形界面, 鼠标点击几次按钮才能启动备份过程)自制的快速安装版, 我在其基础上添加了批处理启动备份或恢复过程的方式
你安装我制作的速装版后, 在 C:\GGHO\ 目录中会找到一个名为 GBF.BAT 的批处理文件, 运行它后回车即可启动备份过程; 同一目录下还有一个名为 GHF.BAT 的批处理, 它是用来启动恢复过程的
前述的设置重启后默认启动 DOS 环境的工作 都已经 包含在这两个批处理文件之中, 你想要其他的方式, 可以以此为基础进行修改.
注意: 此工具在制作时是假定系统分区为第一分区 且 盘符为 C: 的, 如果不符这个情况, 各种功能都将不能正常进行.
对分区形式的适应性, 以我的经验, 在这种方式分区运行成功率是最高的: 一个主要分区 + 一个扩展分区(分成若干个逻辑分区) 也就是 Windows XP 系统下最常见的分区形式
系统引导方面: 那时常见的有 grub4dos 适应性很强, 但掌握也需要相当精力; 而 ntldr + boot.ini 是 Windows 原生的, 做简单修改较容易
批处理文件 GBF.BAT 就是修改 boot.ini 来改变启动后的默认操作系统的, 其中有一个我自制的小程序 BootEdit.exe 是专门用来修改 boot.ini 的
GBF.BAT 的代码如下, 你可以自行修改, XP 系统毕竟是大势已去, 所以我是不会再去折腾这些了- @echo off
- cls
- @ color 9F
- @ ECHO OFF
- @ ECHO.
- @ ECHO.
- @ ECHO ┏━━━━━━━━━━━━━━━━━━━━━━┓
- @ ECHO ┃ ┃
- @ ECHO ┃ 【 GGHOST 备份 】 ┃
- @ ECHO ┃ ┃
- @ ECHO ┃ 此命令将使系统重启并进入 DOS 用 GGHOST ┃
- @ ECHO ┃ 备份 C 盘, 保存为 D:\GGHOST~1\SYS.GGH. ┃
- @ ECHO ┃ D 盘格式既可以是 FAT32 也可以是 NTFS. ┃
- @ ECHO ┃ ┃
- @ ECHO ┃ 若回车将立即重启, 否则请关掉此窗口. ┃
- @ ECHO ┃ ┃
- @ ECHO ┗━━━━━━━━━━━━━━━━━━━━━━┛
- @ ECHO.
- @ ECHO.
- PAUSE
- @ if exist D:\GGHOST~1\SYS.GGH goto bakok
-
- if not exist "D:\GGHOST~1\" md "D:\GGHOST...\"
- C:
- cd \
- C:\GGHO\GRUB\attrib.exe -s -h -r boot.ini
- C:\GGHO\GRUB\attrib.exe -s -h -r w_boot.ini > nul
- copy /y C:\GGHO\GBF\boot.ini
- copy /y C:\GGHO\GBF\w_boot.ini
- C:\GGHO\GRUB\attrib.exe +s +h +r boot.ini
- C:\GGHO\GRUB\attrib.exe +s +h +r w_boot.ini
- copy /y C:\GGHO\GRUB\ggho.lst
- cd C:\GGHO
- copy /y C:\GGHO\GBF\GGHO\*.*
- cd C:\GGHO\GRUB
- copy /y C:\GGHO\GBF\GGHO\GRUB\*.*
- cd C:\GGHO\GRUB\gghost~1
- copy /y C:\GGHO\GBF\GGHO\GRUB\gghost~1\*.*
- regedit /s C:\GGHO\GBF\RunOnce.reg
-
- shutdown /r /f /t 0
- rem C:\Ghost\resource\QuickReboot.exe
- exit
-
- :bakok
- cls
- @ ECHO.
- @ ECHO.
- @ ECHO.
- @ ECHO ┏━━━━━━━━━━━━━━━━━━━━━━┓
- @ ECHO ┃ ┃
- @ ECHO ┃ 备份文件已存在 ┃
- @ ECHO ┃ ┃
- @ ECHO ┃ 如果您确实需要再次备份, 请把 SYS.GGH ┃
- @ ECHO ┃ ┃
- @ ECHO ┃ 删除, 或改名, 然后再重新运行本程序. ┃
- @ ECHO ┃ ┃
- @ ECHO ┗━━━━━━━━━━━━━━━━━━━━━━┛
- @ ECHO.
- @ ECHO.
- @ start D:\GGHOST~1
- pause
复制代码
作者: pcl_test 时间: 2015-12-27 19:24
回复 23# betterplayer
对于xp系统,你看一下用onekey ghost进行备份/还原部署后,boot.ini有什么改变,并且onekey ghost释放了哪些文件,把这些东西覆盖到其他机子系统盘,那么应该就可以实现了
作者: yu2n 时间: 2015-12-27 21:03
回复 16# aa77dd@163.com
原来这个是你的大作,感觉不错啊。
作者: yu2n 时间: 2015-12-27 21:12
回复 25# betterplayer
我以前倒是做了个轮子,不过一般人用不来。如果你能看的懂下面的内容,请下载我的作品。比较贴近你的需求,你只需要改改引导就可以了。- 时光倒流一键恢复GHO版 by Yu2n@qq.com 2014.10.05
-
- ------------------------------------------------------------------------
-
- 安装指引
- ~~~~~~~~
- 1. 复制启动文件:
- 1.1) 运行 FbinstTool,打开 SGDL.fba 文件
- 1.2) 导出 SGDL.fba/SGDL/* 下所有文件到启动硬盘的第2分区根目录下(一般是D盘D:\SGDL\*)
- 1.3) 导出 SGDL.fba/sgdlr 到启动硬盘的第2分区根目录下(一般是D盘D:\sgldr)
-
- 2. 设置时光倒流一键恢复系统密碼:
- 运行 Tools 下的 FbinstTool 工具,修改 D:\sgldr 中的md5密碼。
-
- 3. 设置硬盘主引导记录(MBR):
- 3.1) 运行 Tools 下的 BOOTICE 工具
- 3.2) 选定本地硬盘,将主引导记录(MBR)设置为GRUB4DOS
- 3.3) 设置 GRLDR 改名 档案名:SGLDR
-
- 4. 解决 SGLDR 引导与 Windows 7 Loader 冲突(该软件优先占用活动分区PBR工作)
- 4.1) 运行 Tools 下的 BOOTICE 工具
- 4.2) 打开“实用工具”--“GRUB4DOS菜单编辑器”--“启动编辑器”
- 4.3) 打开“打开文件”,选择 D:\sgldr
- 4.4) 找到
- ## --Windows All (Fix Windows 7 Loader 2014-10-05)
- find --set-root --devices=h /ZKXFE
- 4.5) 修改所有的 ZKXFE 为对应的 Windows 7 Loader 文件(在C盘根目录下,由程序随机5个字母生成)
-
-
- ------------------------------------------------------------------------
-
-
- 设置指引
- ~~~~~~~~
- 1. 设置供系统恢复的GHO位置(非必须,默认GHO位置为1:2\SGDL\SGDL.gho)
- 修改 D:\SGDL\Ghost.bat 文件,
- 示例:选择硬盘 1 的分区 2 的备份文件,恢复到硬盘 1 的分区 1 中。(注意:1:2\SGDL\SGDL.gho 为备份文件路径)
- REM ------------------------------------------------------------------------
- Ghost.exe -noide -nousb -clone,mode=pload,src=1:2\SGDL\SGDL.gho:1,dst=1:1 -sure -rb
- restart
- REM ------------------------------------------------------------------------
-
- 2. 迁移用户目录(非必须)
- 为了在系统恢复时不覆盖用户数据,建议修改注册表中用户目录设置。
- 参阅:Tools 中 【Win7:修改注册表来更改“桌面”、“我的文档”、“收藏夹”的位置.txt】
- 也可以使用NTFS的JUNCTION功能(兼容性待测试)
- NT6 中可使用 mklink /j c:\1 d:\2
- NT4 中可使用 linkd c:\1 d:\2
-
- 3. 备份系统(非必须,程序首次运行会自动备份到D:\SGDL)
- 进入PE、DOS系统,运行 Ghost (v11.02),备份 1:1 中的系统到文件 1:2\SGDL\SGDL.gho 。
-
-
-
- ------------------------------------------------------------------------
- 附1:
-
- SGDL 文件列表说明
- .\G4D\* -- 引导所需要的字体/背景图
- .\Tools\* -- 引导/镜像处理工具
- .\Boot\grldr -- 引导文件
- .\ghost.bat -- 自动备份/还原批处理
- .\ghost.exe -- Ghost 11.5 for Dos
- .\SGDL.ima -- 虚拟软盘镜像
- .\SGDL.ima\ghost.exe -- Ghost 11.2 for Dos
-
-
- ------------------------------------------------------------------------
- 附2:
-
-
- 示例1:系统备份
- 备份硬盘 1 的分区 1 中的所有文件,保存到硬盘 1 的分区 3 的备份文件 1:3\SGDL\SGDL.gho 中。
- REM ------------------------------------------------------------------------
- Ghost.exe -noide -nousb -clone,mode=pdump,src=1:1,dst=1:3\SGDL\SGDL.gho -sure -fro -rb -z1
- restart
- REM ------------------------------------------------------------------------
-
- 示例2:系统恢复
- 选择硬盘 1 的分区 3 的备份文件,恢复到硬盘 1 的分区 1 中。
- REM ------------------------------------------------------------------------
- Ghost.exe -noide -nousb -clone,mode=pload,src=1:3\SGDL\SGDL.gho:1,dst=1:1 -sure -rb
- restart
- REM ------------------------------------------------------------------------
-
-
- 推荐已备份的GHO文件路径:
- 硬盘 1 : 分区 3 \SGDL\SGDL.gho
复制代码
http://pan.baidu.com/s/1skfUde1 1opa
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |