|
给朋友组装的监控服务器,由于各方面限制,系统恢复光盘只能用USB光驱装载。我采用GHOST无人值守的恢复方案,为恢复光盘的核心方案,但问题是,USB光驱引导启动DOS,不成问题,也非常简单,只要BIOS支持,就OK,关键在于,仅仅引导DOS是不够的,还要在DOS下驱动起这个USB光驱,因为克隆恢复映像包要从光盘读取,这样就出现了,只要在CONFIG.SYS中加载USB驱动,启动过程中那个虚拟A驱,就会马上丢失,紧接着就是DOS启动宣告失败。其原因在于USB驱动装载后,接替了BIOS对USB设备的管理权,但似乎任务交接出现某些问题,导致USB驱动虽然接替了BIOS对USB设备的管理权,但由于管理方式不同,对于BIOS没有处理完成的任务,采取的处理方式是——撒手不管,这就必然导致上述启动失败的最终必然结果。
在以上描述中,我们可以看到,问题的核心就是,在USB驱动接替BIOS管理USB设备之前,只要能想办法,把后续引导够过程中可能要用到的文件,转存到另外的地方,并重新设置有关的系统环境变量,就能顺利完成整个启动过程。要解决这个矛盾,最简单的方法就是内存虚拟盘。在这里要提到的就是,用这个方法就不能在CONFIG.SYS中加载USB驱动及USB光驱驱动了,而要在AUTOEXEC.BAT中用DEVICE.COM来加载这些驱动。因为加载内存盘驱动之后的,紧接着要进行的系统文件备份操作,只能在AUTOEXEC.BAT中进行,所以在此之后的一切与装载驱动有关的操作,都只能在AUTOEXEC.BAT中进行,好在有DEVICE.COM这个实用的程序,不然问题就真的无法解决了。
经过多次试验,终于做成了这张恢复光盘,光盘不但提供系统分区恢复功能,还提供自动分区(用GDISK实现)选项和手动分区(这当要选用大家熟悉的PQMAGIC了)选项,这样即便是新买的硬盘,用这张光盘引导简单几步,就能让机器正常运转工作。大功告成,终于可以休息一下了!
CONFIG.SYS
device=himem.sys /testmem:off
dos=high,umb
files=10
buffers=10
stacks=9,256
devicehigh=uides.sys /D:UIDE
devicehigh=ramdrive.sys /E 1024
lastdrive=z
AUTOEXEC.BAT
@ECHO OFF
set EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
path %RAMD%\
copy a:\load\*.* %RAMD%\ > NUL
copy a:\autoexec.bat %RAMD%\ > NUL
copy a:\command.com %RAMD%\ > NUL
set comspec=%RAMD%\command.com
subst a: %RAMD%\
device usbaspi.sys /norst
device usbcd.sys /d:USB
lh mscdex /d:UIDE /d:USB
findcd.exe
lh smartdrv.exe
lh ctmouse.exe
lh tway32.exe
call shell.bat
SETRAMD.BAT
@echo off
set RAMD=
set CDROM=
a:\findramd
if errorlevel 255 goto no_ramdrive
if not errorlevel 3 goto no_ramdrive
goto do_shift
:loop
if errorlevel %1 goto no_shift
:do_shift
shift
shift
if not %1*==* goto loop
goto no_ramdrive
:no_shift
set ramd=%2
goto success
:no_ramdrive
echo The Windows 98 startup disk could not create a temporary drive for the
echo diagnostic tools. This may be because this computer has less than the
echo minimum required extended memory.
echo.
:success
set RAMD=%RAMD%:
SHELL.BAT
@ECHO OFF
:start
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo ┌───────────────────────┐
echo │ NDVR监控系统恢复光盘 │
echo │ │
echo │ 1. 自动分区 │
echo │ 2. Pqmagic手工分区 │
echo │ 3. 恢复系统分区到出厂状态 │
echo │ 4. 重新启动 │
echo │ 5. 关机 │
echo └───────────────────────┘
echo.
CHOICE /C:12345 /N /T:5,10 "请选择操作[1/2/3/4/5]:"
if errorlevel 255 goto start
if errorlevel 5 goto shutdown
if errorlevel 4 goto reboot
if errorlevel 3 goto restore
if errorlevel 2 goto pqmagic
if errorlevel 1 goto gdisk
goto start
:gdisk
echo.
echo 自动分区操作将导致硬盘上已有的数据资料全部清除,在
CHOICE /C:yn /N /T:n,10 "确认此操作前请备份重要数据资料,是否继续分区[Y/N]?"
if errorlevel 255 goto start
if errorlevel 2 goto start
if errorlevel 1 goto do_gdisk
goto start
:do_gdisk
%cdrom%
cd ghost11
gdisk 1 /del /all /i /nousb /y
gdisk 1 /batch:fast.txt /i /nousb /y
goto end
:pqmagic
echo.
echo 手动分区操作将导致硬盘上已有的数据资料全部或部分清除,
CHOICE /C:yn /N /T:n,10 "在确认此操作前请备份重要数据资料,是否继续分区[Y/N]?"
if errorlevel 255 goto start
if errorlevel 2 goto start
if errorlevel 1 goto do_pqm
goto start
:do_pqm
%cdrom%
cd pqmagic8
pqmagic
goto end
:restore
echo.
echo 恢复系统分区操作将导致硬盘系统分区上已有的数据资料全部清
CHOICE /C:yn /N /T:n,10 "除,在确认此操作前请备份重要数据资料,是否继续恢复[Y/N]?"
if errorlevel 255 goto start
if errorlevel 2 goto start
if errorlevel 1 goto do_rest
goto start
:do_rest
%cdrom%
cd ghost11
ghost -nousb -noide -clone,mode=pload,src=%cdrom%\ndvr.gho:1,dst=1:1 -batch -sure -rb
goto end
:reboot
reboot
:shutdown
shutdown
:end
reboot
由于附件大小限制,无法上传启动盘img文件与相关程序,需要的话请与我联系。
[ 本帖最后由 9622315 于 2011-2-25 13:59 编辑 ] |
|