中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » [征求修改]系统安装备份恢复启动盘(中文)
« [1] [2] »
作者:
标题: [征求修改]系统安装备份恢复启动盘(中文) 上一主题 | 下一主题
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 /testmemff
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
查看资料  发送邮件  发短消息 网志  OICQ (49662411)  编辑帖子  回复  引用回复
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
状态 离线
『第 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
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: