Board logo

标题: GHOST如何自动定位作后一个分区 [打印本页]

作者: skybolt     时间: 2008-1-4 12:19    标题: GHOST如何自动定位作后一个分区

前提:在硬盘最后一个分区的GHOST目录下有一个名为BF.GHO的备份(硬盘4个分区都是NTFS格式)。
假设已经知道硬盘有4个分区,使用GHOST访问最后一个分区的GHOST\BF.GHO实现全自动恢复的方法为:
Ghost.exe -clone,mode=pload,src=1:4:\ghost\bf.gho:1,dst=1:1 -fx -sure -rb

如果不知道硬盘有4个分区,假设GHOST有一个参数:lastp 表示最后一个分区,则我们就可以用以下命令实现自动还原:
Ghost.exe -clone,mode=pload,src=lastp:\ghost\bf.gho:1,dst=1:1 -fx -sure -rb

事实上,GHOST有没有这个参数?要是有的话是什么?该怎么用?或者通过什么方法实现(分区是NTFS)?

小菜期待大虾解决!谢谢!鞠躬!
作者: fastslz     时间: 2008-1-4 12:43
难度非常高且没有具有100%通用性的代码
最好的方法,在Windows下先定位ghost\bf.gho盘号并生成一个ghost还原参数的批处理文件,纯DOS下加载ntfs驱动直接调用该批处理,获取盘号参考此贴10楼
http://www.cn-dos.net/forum/viewthread.php?tid=36493&fpage=4
作者: skybolt     时间: 2008-1-4 14:34
感谢葱大虾,期待GHOST自己解决这个参数了。
作者: chishingchan     时间: 2008-1-7 08:27
不适用于全部分区是NTFS格式的,只供参考:
@echo off
:: BOOT.INI
attrib c:\boot.ini -s -h -r -a
if not exist c:\boot.ini goto end
for /f "eol=; delims== tokens=1" %%a in ('type c:\boot.ini ^|findstr "multi"') do @set multi=%%a
if %multi%*==* goto end
for /f "tokens=6 delims=()" %%a in ('type c:\boot.ini^|findstr /i "rdisk"') do @set rd=%%a
if "%rd%"=="1" set rdisk=2
if "%rd%"=="0" set rdisk=1
for /f "tokens=8 delims=()" %%a in ('type c:\boot.ini 2^>nul^|findstr /i "partition"') do @set partition=%%a

:: Lastdrive
setlocal EnableDelayedExpansion
set drives= CDEFGHIJKLMNOPQRSTUVWXYZ
for /f %%i in ('wmic logicaldisk where "drivetype=3" get FileSystem ^| find /c "FAT"') do set lastdrive=!drives:~%%i,1!:
if %lastdrive%*==C:* goto end
if %lastdrive%*== :* goto end

:: BACKUP
if not exist %lastdrive%\BACKUP\nul md %lastdrive%\BACKUP
copy Ghost32.exe %lastdrive%\BACKUP /y>nul
copy GhostExp.exe %lastdrive%\BACKUP /y>nul

:: CREATE.TXT
echo -CLONE,MODE=PCREATE,SRC=%rdisk%:%partition%,DST=%lastdrive%\BACKUP\H%rdisk%P%partition%.GHO>%lastdrive%\BACKUP\CREATE.TXT
echo -SKIP=\PAGEFILE.SYS>>%lastdrive%\BACKUP\CREATE.TXT
echo -SURE>>%lastdrive%\BACKUP\CREATE.TXT
echo -RB>>%lastdrive%\BACKUP\CREATE.TXT

:: RESTORE.TXT
echo -CLONE,MODE=PRESTORE,SRC=%lastdrive%\BACKUP\H%rdisk%P%partition%.GHO:1,DST=%rdisk%:%partition%>%lastdrive%\BACKUP\RESTORE.TXT
echo -SURE>>%lastdrive%\BACKUP\RESTORE.TXT
echo -RB>>%lastdrive%\BACKUP\RESTORE.TXT

:end
attrib c:\boot.ini +s +h -a
set multi=
set rd=
set partition=
set drives=
set lastdrive=
[ Last edited by chishingchan on 2008-1-7 at 08:37 AM ]