|
QEYU
中级用户
   新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-7-3
状态 离线
|
『楼 主』:
[征求修改]系统安装备份恢复启动盘(中文)
练习制作了一个含GHOST7.5的系统安装备份恢复启动盘,恳求版主和各位来指点、修改、提高。谢谢!
由于不懂DOS,肯定会有很多让大家见笑的地方,望请谅解和帮助。
【主要问题】能否智能实现将镜像备份到硬盘的最后一个分区。
【其它问题】应当加入哪些常用工具。
【AUTOEXEC.BAT:】
@echo off
set EXPAND=YES
SET DIRCMD=/O:N
set comspec=a:\command.com
path=a:\;c:\
lh a:\TW /np
lh a:\mouse.exe
lh a:\mscdex.exe /d:mscd001
lh a:\doskey
lh a:\smartdrv
lh a:\ntfsdos
cls
echo.
echo.
echo.
echo.
cls
echo.
echo ====================
echo ★ “魔幻”系统安装备份还原启动盘 ★
echo ======= 制作:QEYU =======
echo.
echo 本安装启动盘是在Windows Millennium (MS-DOS 8.0) Bootdisk基础上制作的、
echo 适于在DOS下系统安装、GHOST操作等。
echo 本启动盘制作过程中,得到了中国DOS联盟和CCF精品技术论坛的技术支持,在
echo 此表示感谢。
echo.
echo ○ 本启动盘已自动加载HIMEM和SMARTDRV,可对操作系统直接进行安装。
echo ○ 可执行FDISK程序,对硬盘进行分区。
echo ○ 可用FORMAT命令格式化分区。
echo ○ 可自动或手动进行系统备份、系统恢复等GHOST操作。
echo.
echo.
echo ■ 操作菜单:
echo.
echo 1 ─ 自动备份系统
echo 2 ─ 自动恢复系统
echo 3 ─ 手动操作GHOST
echo 4 ─ 进入DOS提示符
echo.
choice /c:1234 ▲ 请按上面所列项目输入序号作出选择
if errorlevel 4 goto tishifu
if errorlevel 3 goto shoudong
if errorlevel 2 goto huifu
if errorlevel 1 goto beifen
:beifen
echo.
echo 你已经选择自动备份系统。请等待……
a:\ghost.exe -clone,mode=pdump,src=1:1,dst=d:\system.gho -sure
echo.
echo.
echo ◇ 系统自动备份已完成,请取出软盘按Ctrl+Alt+Del键重新启动系统。
goto end
:huifu
echo.
echo 你已经选择自动恢复系统,请等待……
a:\ghost.exe -clone,mode=pload,src=d:\system.gho:1,dst=1:1 -sure
echo.
echo.
echo ◇ 系统自动恢复已完成,请取出软盘按Ctrl+Alt+Del键重新启动系统。
goto end
:shoudong
echo.
echo 你已经选择手动操作GHOST,请等待进入GHOST操作界面……
a:\ghost.exe
echo.
echo.
echo ◇ 请进行其它操作,或按Ctrl+Alt+Del键重新启动系统。
goto end
:tishifu
cls
echo.
:end
echo.
【CONFIG.SYS:】
device=a:\himem.sys /testmem ff
devicehigh=a:\vide-cdd.sys /d:mscd001
dos=high,umb,auto
files=30
buffers=30
stacks=9,256
lastdrive=Z
|

 |
|
2003-7-25 00:00 |
|
|
dsm75
中级用户
   5 M
积分 238
发帖 44
注册 2003-3-15
状态 离线
|
『第
2 楼』:
用dready可以判断最后的盘符,
set lastdrv=
for %%i in ( q p o n m l k j i h g f e d c) do call chkdrv.bat %%I
your command
chkdrv.bat 文件内容
if not %lastdrv%'==' goto _end
dready %1 /w
if errorlevel 2 goto _end
set lastdrv=%1
_end
加入wbat 和locate可以选择和判断gho的文件
写好了,给大家享用,好吗
|
|
2003-7-25 00:00 |
|
|
walu
高级用户
   
积分 916
发帖 201
注册 2003-5-4
状态 离线
|
『第
3 楼』:
作为附件方式放出来给大家享用吧,谢谢!
|
|
2003-7-25 00:00 |
|
|
QEYU
中级用户
   新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-7-3
状态 离线
|
『第
4 楼』:
Quote: | 以下是引用dsm75在2003-7-25 22:01:53的发言:
用dready可以判断最后的盘符,
setlastdrv=
for%%iin(qponmlkjihgfedc)docallchkdrv.bat%%I
yourcommand
chkdrv.bat文件内容
ifnot%lastdrv%''''==''''goto_end
dready%1/w
iferrorlevel2goto_end
setlastdrv=%1
_end
加入wbat和locate可以选择和判断gho的文件
写好了,给大家享用,好吗 |
|
搞不明白,麻烦得很,和Ghost就是挂不上钩。
传上去的是默认备份到D盘上的,麻烦你给修改指正。
多谢!
打开附件
[此贴子已经被作者于2003-7-26 4:26:05编辑过]
|

 |
|
2003-7-26 00:00 |
|
|
QEYU
中级用户
   新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-7-3
状态 离线
|
『第
5 楼』:
Quote: | 以下是引用walu在2003-7-25 22:11:30的发言:
作为附件方式放出来给大家享用吧,谢谢! |
|
已传上去了。
也希望共同改进提高。谢谢!
为 LP 和 MM 做点实事,是本启动盘的制作宗旨。
|

 |
|
2003-7-26 00:00 |
|
|
hzy
高级用户
   
积分 578
发帖 135
注册 2003-7-10
状态 离线
|
『第
6 楼』:
搭车:
这是我自用的备份恢复盘,请帮忙改良一下!
问题:
1、想把默认备份到D盘改为默认备份到D盘以后的第一个剩余空间大于2G的分区,这个要怎样才能做到?
2、wbat的提示文本能否多行显示(有时想写详细一点的提示信息),怎样才能做到?
@ECHO Off
CLS
SMARTDRV > NUL
LH KILLER > NUL
LH DOSKEY > NUL
LH CTMOUSE > NUL
LH MOUSCLIP /M > NUL
LH SHSUCDX /d:MSCD000 > NUL
LH DOSLFN /Z:CP936UNI.TBL > NUL
XMSDSK 2048 /Y > NUL
FINDCD > NUL
FINDRAMD > NUL
PKUNZIP -o %RAMDRIVE%\ DOSCAB.ZIP > NUL
PATH=%RAMDRIVE%.;A:.;%CDROM%.;C:.;D:.;E:.;F:..G:.;H:.;I:.;J:.;K:.;L:.;M:.;N:.;O:.;P:.;Q:.;R:.;S:.;T:.;U:.;V:.;W:.;X:.;Y:.;Z:
LH TW /NP > NUL
CLS
:Begin
cls
WBAT BOX "SYMANTEC GHOST 备份/还原程序! (请在15秒内作出选择)",自动备份,自动还原,手 动,退 出 #4,15
IF ERRORLEVEL 4 goto end
IF ERRORLEVEL 3 goto _Manual
IF ERRORLEVEL 2 goto _Restore
IF ERRORLEVEL 1 goto _Backup
:_Backup
cls
WBAT BOX "程序将自动在 D 盘上创建 C 盘的696MB分卷镜像备份!",确 定,返 回,退 出 #3
IF ERRORLEVEL 3 goto end
IF ERRORLEVEL 2 goto Begin
IF ERRORLEVEL 1 goto _Autobackup
:_Autobackup
ghost -clone,mode=pdump,src=1:1,dst=D:\backup.gho -split=696 -z9 -auto -sure
goto _end
:_Restore
cls
WBAT BOX "请选择您要还原的备份!",光盘备份,其他备份,返 回,退 出 #4
IF ERRORLEVEL 4 goto end
IF ERRORLEVEL 3 goto Begin
IF ERRORLEVEL 2 goto _Select
IF ERRORLEVEL 1 goto _Cdrom
:_Cdrom
WBAT BOX "C 盘现有的数据将被彻底删除!您真的要还原光盘备份?",确 定,重新选择,退 出 #3
IF ERRORLEVEL 3 goto end
IF ERRORLEVEL 2 goto _Restore
IF ERRORLEVEL 1 goto _Restore1
:_Restore1
ghost -clone,mode=pload,src=%CDROM%\backup.gho:1,dst=1:1 -auto -sure
goto _end
:_Select
cls
set get=
get s "请输入要还原的备份文件全名(含后缀):"
copy /y backup.bat %ramdrive%\ > nul
for %%a in (d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z do if exist %%a\%get% dir /b /s %%a\%get% >>%ramdrive%\backup.bat
call %ramdrive%\backup.bat
if not %backup%"==" goto _find
WBAT BOX "对不起!没有找到您想要还原的备份文件",重新输入,备份列表,退 出 #3
IF ERRORLEVEL 3 goto end
IF ERRORLEVEL 2 goto dir_gho
IF ERRORLEVEL 1 goto _Select
:_find
cls
WBAT BOX "备份文件已找到。若执行还原,C盘现有的数据将被彻底删除!",确 定,重新输入,退 出 #3
IF ERRORLEVEL 3 goto end
IF ERRORLEVEL 2 goto _Select
IF ERRORLEVEL 1 goto _Restore1
:_Restore1
ghost -clone,mode=pload,src=%backup%:1,dst=1:1 -auto -sure
goto _end
:dir_gho
cls
WRITEXT 1+ 1 -f10 您的计算机里的备份文件列表如下:
echo.
for %%a in (d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z do if exist %%a\*.gho dir /b /s %%a\*.gho
WBAT BOX "如果备份文件存在,程序会列表显示出来!",返回开始,重新输入,退 出 #3
IF ERRORLEVEL 3 goto end
IF ERRORLEVEL 2 goto _Select
IF ERRORLEVEL 1 goto Begin
:_end
%RAMDRIVE%\
reboot.bat
:_Manual
ghost.exe
:end
cls
a:\
set backup=
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
WRITEXT 0+ 23 -f10 请取出光盘,并按任意键重启您的计算机 !
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
eject.com > NUL
pause > nul
reboot.com > nul
[此贴子已经被作者于2003-7-28 3:29:32编辑过]
|
|
2003-7-26 00:00 |
|
|
dsm75
中级用户
   5 M
积分 238
发帖 44
注册 2003-3-15
状态 离线
|
『第
7 楼』:
以下是一个简单的wbat多行显示提示文本的应用。
findcd >nul
FINDRAMD>NUL
echo @echo off >%tmp%\_menu.bat
echo %RAMDRIVE% >>%tmp%\_menu.bat
echo call w.bat pal ! cls ! box @%%0:_txt #1,15>>%tmp%\_menu.bat
echo if errorlevel 2 goto exit>>%tmp%\_menu.bat
echo if errorlevel 1 call menu.bat>>%tmp%\_menu.bat
echo goto exit>>%tmp%\_menu.bat
echo :_txt "恭喜你已成功的引导系统">>%tmp%\_menu.bat
echo.>>%tmp%\_menu.bat
IF NOT %CDROM%#==# ECHO 你的光驱已加载到 %CDROM% 盘>>%tmp%\_menu.bat
IF NOT %CDROM%#==# ECHO.>>%tmp%\_menu.bat
IF NOT %RAMDRIVE%#==# ECHO 你的虚拟盘已加载到 %RAMDRIVE% 盘>>%tmp%\_menu.bat
IF NOT %RAMDRIVE%#==# ECHO.>>%tmp%\_menu.bat
ECHO 如果你想启动图形化菜单, 在命令行下键入 menu 启动菜单>>%tmp%\_menu.bat
ECHO.>>%tmp%\_menu.bat
ECHO 现在将在 #? 秒内启动图形化菜单>>%tmp%\_menu.bat
echo.>>%tmp%\_menu.bat
echo [ ok ] [ cancel ]>>%tmp%\_menu.bat
echo :exit>>%tmp%\_menu.bat
echo set wbat=>>%tmp%\_menu.bat
%RAMDRIVE%
call %tmp%\_menu.bat
goto exit
|
|
2003-7-28 00:00 |
|
|
沈洁
金牌会员
      小飞侠
积分 4590
发帖 1812
注册 2003-4-2 来自 上海市
状态 离线
|
『第
8 楼』:
最好能双重加载smartdrv
同时smartdrv 也要加上适当的参数啊!
比如最重要的缓存数量,
多加点16MB够狠吧!
如果不加参数等于只加载了256KB啊!
实在是太少了!
|

 |
|
2003-7-28 00:00 |
|
|
wglwx
高级用户
   
积分 616
发帖 187
注册 2003-4-18
状态 离线
|
『第
9 楼』:
smartdrv在加载时是自动决定缓存大小的。
Quote: | 以下是引用沈洁在2003-7-28 22:28:45的发言:
最好能双重加载smartdrv
同时smartdrv 也要加上适当的参数啊!
比如最重要的缓存数量,
多加点16MB够狠吧!
如果不加参数等于只加载了256KB啊!
实在是太少了!
|
|
如果不加参数,smartdrv在加载时是根据电脑的扩充内存的大小自动决定缓存大小的。
在DOS下:
扩充内存:2M
缓存大小:1M
扩充内存:6M
缓存大小:2M
256K是扩充内存只有2M,而使用WINDOWS时的缓存大小。
|
|
2003-7-29 00:00 |
|
|
QEYU
中级用户
   新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-7-3
状态 离线
|
『第
10 楼』:
@echo off
if not %lastdrv%'==' goto _end
if %1'==' goto _end
if %1==%cdrom% goto _end
if %1==%RAMDRIVE% goto _end
dready %1 /w
if errorlevel 2 goto _end
set lastdrv=%1
:_end
【求助】
为什么找到的 lastdrv 是光驱,是和 %CDROM%、%RAMDRIVE% 有关吗?具体怎样做?
|

 |
|
2003-7-29 00:00 |
|
|
yuanxin
中级用户
  
积分 230
发帖 53
注册 2003-6-11
状态 离线
|
|
2003-7-29 00:00 |
|
|
QEYU
中级用户
   新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-7-3
状态 离线
|
『第
12 楼』:
Quote: | 以下是引用QEYU在2003-7-29 8:03:28的发言:
@echo off
if not %lastdrv%'==' goto _end
dready %1 /w
if errorlevel 2 goto _end
set lastdrv=%1
:_end
【求助】
为什么找到的 lastdrv 是光驱,是和 %CDROM%、%RAMDRIVE% 有关吗?具体怎样做? |
|
问题解决了,用了一个投机取巧的办法:
在“自动备份系统”、“自动恢复系统”等项前,不加载光驱;只有在“进入DOS提示符”项前再加载光驱。
非常感谢谢大家的帮助!
|

 |
|
2003-7-29 00:00 |
|
|
dsm75
中级用户
   5 M
积分 238
发帖 44
注册 2003-3-15
状态 离线
|
『第
13 楼』:
if %1==%cdrom% goto _end是判断是否为光驱
if %1==%RAMDRIVE% goto _end是判断是否虚拟盘,
是者goto _end 跳过
否者用工具 dready %1 /w 判断是否存在有该盘
|
|
2003-7-29 00:00 |
|
|
QEYU
中级用户
   新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-7-3
状态 离线
|
『第
14 楼』:
Quote: | 以下是引用dsm75在2003-7-29 21:14:34的发言:
if %1==%cdrom% goto _end是判断是否为光驱
if %1==%RAMDRIVE% goto _end是判断是否虚拟盘,
是者goto _end 跳过
否者用工具 dready %1 /w 判断是否存在有该盘
|
|
开始时我是这样做的,但lastdrv还是cdrom,可能没加载到%cdrom%中吧?
超级菜鸟再问一个问题:怎样加载虚拟盘?Ghost总往A盘里写ghosterr.txt文件,具体怎样做?
|

 |
|
2003-7-30 00:00 |
|
|
dsm75
中级用户
   5 M
积分 238
发帖 44
注册 2003-3-15
状态 离线
|
『第
15 楼』:
%cdrom% 是用Wengier的dos启动盘的fincd文件自动指定的变量。%RAMDRIVE%也是Wengier的findramd文件自动指定的
你可以在autoexec.bat中最后加上
findcd >nul
findramd >nul
在将这两个文件拷到A盘
xmsdsk 4096 /y /t 可以加载虚拟盘
具体可以看看Wengier的启动盘里面还是有行多有用的
|
|
2003-7-31 00:00 |
|