윈 도 우 고스트 자동화 2탄 분할백업 관련해서 질문드립니다 (suk님 자료)
2017.04.06 20:27
원본인 11.5.1.2266 버전은 단일파일 백업으로 이상없습니다
12.0.0.10517 버전으로 파일을 교체해서 백업할 경우에 단일파일 백업이 되질않는데 이 문제를 해결하고싶습니다 (분할백업됨)
배치파일 어디를 수정해야하는지 문의드립니다
@prompt $s
@cd /d "%~dp0"
@color 1f
@setlocal enabledelayedexpansion
@if /i %systemdrive%==x: goto pe
@if not exist %~d0\ghost\ (echo. & echo %~d0\ghost 폴더가 없습니다 & echo. & pause & exit )
@if not exist %~d0\ghost\boot.wim (echo. & echo ghost 폴더에 boot.wim이 없습니다 & echo. & pause & exit )
@if not exist Ghost32.exe (echo. & echo. & echo Ghost32.exe 파일이 있어야 합니다 & echo. & pause & exit )
@if not exist Ghost64.exe (echo. & echo. & echo Ghost64.exe 파일이 있어야 합니다 & echo. & pause & exit )
@ver | find " 5." >nul && goto xp
@echo. 관리자권한 확인>%windir%\admin.confirm || (
echo Set UAC = CreateObject("Shell.Application"^) > admin.vbs
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> admin.vbs
admin.vbs & del admin.vbs & exit/b )
@del %windir%\admin.confirm
:del
@for %%A in (a b c 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:\윈도백업용표시파일입니다 del /f/q/a %%A:\윈도백업용표시파일입니다
if exist %%A:\윈도복구용표시파일입니다 del /f/q/a %%A:\윈도복구용표시파일입니다
if exist %%A:\vhd백업용표시파일입니다 del /f/q/a %%A:\vhd백업용표시파일입니다
if exist %%A:\vhd복구용표시파일입니다 del /f/q/a %%A:\vhd복구용표시파일입니다
if exist %%A:\윈도백업용표시파일입니다 (
@echo.
@echo. "%%A:\윈도백업용표시파일입니다" 파일이 삭제되지 않습니다
@echo.
@pause
@exit
)
if exist %%A:\윈도복구용표시파일입니다 (
@echo.
@echo. "%%A:\윈도복구용표시파일입니다" 파일이 삭제되지 않습니다
@echo.
@pause
@exit
)
if exist %%A:\vhd백업용표시파일입니다 (
@echo.
@echo. "%%A:\vhd백업용표시파일입니다" 파일이 삭제되지 않습니다
@echo.
@pause
@exit
)
if exist %%A:\vhd복구용표시파일입니다 (
@echo.
@echo. "%%A:\vhd복구용표시파일입니다" 파일이 삭제되지 않습니다
@echo.
@pause
@exit
)
)
@bcdedit >nul || (echo. & echo bcdedit 에러납니다. PE에서 실행하세요& echo. & pause & exit)
@echo.
@echo. %Systemdrive%을 고스트 백업 후에, 재부팅하시려면 엔터 [지금 재부팅됩니다.전자동]
@echo.
@set sys=sys
@set /p sys=다른 설정은 0번 입력하세요 :
@if %sys%==0 goto rb
@echo rb >rb
@bcdedit /enum {current} /v | find "vhd=" >nul || (echo. >%Systemdrive%\윈도백업용표시파일입니다& goto bcd)
for /f "tokens=2,3 usebackq delims=[]\," %%a in (`"bcdedit /enum {current} /v | find "osdevice""`) do echo %%b>%%a\vhd백업용표시파일입니다
@echo. >%Systemdrive%\윈도백업용표시파일입니다
@goto bcd
:rb
@echo.
@echo. 고스트 백업 후에, 재부팅하시려면 엔터
set rb=rb
@set /p rb=아니면 0번 입력하세요 :
@echo rb >rb
@if %rb%==0 echo fx >rb
:vol1
echo lis vol | diskpart
@for %%A in (z y x w v u t s r q p o n m l k j i h g f e d c b a) do @(
if exist %%A:\windows (echo. & echo %%A:에 윈도가 있습니다.&set src=%%A)
)
:src1
@echo.
@echo. 백업할 파티션을 고르세요.
set src=%src%
@set /p src=문자만 입력하세요,위의 문자는 엔터 :
@echo %src%| find ":" && goto src1
@if /i %src%:==%Systemdrive% (echo. >%src%:\윈도백업용표시파일입니다& goto bcd)
@if not exist %src%:\* (echo. >%src%:\윈도백업용표시파일입니다& goto pe)
@if exist %src%:\windows\system32 (echo. >%src%:\윈도백업용표시파일입니다& goto pe)
@echo.
@echo.
@echo.
@echo. %src%드라이브에는 윈도가 없고, "파일이 있습니다"
set confirm=ok
@set /p confirm=정말 백업하시려면 "0번" 입력하세요, 잘못 입력하셨으면 엔터 :
@if %confirm%==0 (echo. >%src%:\윈도백업용표시파일입니다& goto pe)
@goto vol1
:bcd
@set wim_hdd_path="%~dp0boot.wim"
@set wim_hdd_menu=%wim_hdd_path%
@for %%a in (%wim_hdd_path%) do set wim_hdd_sdi=%%~dpaboot.sdi
@copy /y %windir%\system32\boot.sdi "%wim_hdd_sdi%"
@for /f "tokens=1 delims=\" %%a in (%wim_hdd_path%) do set wim_hdd_path1=%%a
@for /f "tokens=2 delims=:" %%a in (%wim_hdd_path%) do set wim_hdd_path2=%%a
@for /f "tokens=2 delims=:" %%a in ("%wim_hdd_sdi%") do set wim_hdd_sdi_path=%%a
@set wim_hdd_path_bcd=[%wim_hdd_path1%]%wim_hdd_path2%
@bcdedit /create {ramdiskoptions} /d "Ramdisk Options"
@bcdedit /deletevalue {ramdiskoptions} description
@bcdedit /set {ramdiskoptions} ramdisksdidevice partition=%wim_hdd_path1%
@bcdedit /set {ramdiskoptions} ramdisksdipath "%wim_hdd_sdi_path%"
@bcdedit /create /d %wim_hdd_menu% /application OSLOADER > guid
@for /f "tokens=1-5 delims=-" %%a in (guid) do @(
set first=%%a
set last=%%e
set wim_hdd_guid=!first:~-9!-%%b-%%c-%%d-!last:~0,13!
)
@del guid
@bcdedit /set %wim_hdd_guid% device ramdisk="%wim_hdd_path_bcd%",{ramdiskoptions}
@bcdedit /set %wim_hdd_guid% osdevice ramdisk="%wim_hdd_path_bcd%",{ramdiskoptions}
@bcdedit /enum {current} | find "winload.efi" && (bcdedit /set %wim_hdd_guid% path \windows\system32\boot\winload.efi)
@bcdedit /enum {current} | find "winload.efi" || (bcdedit /set %wim_hdd_guid% path \windows\system32\boot\winload.exe)
@bcdedit /set %wim_hdd_guid% systemroot \windows
@bcdedit /set %wim_hdd_guid% detecthal yes
@bcdedit /set %wim_hdd_guid% winpe yes
@bcdedit /set %wim_hdd_guid% nointegritychecks yes
:@bcdedit | find %wim_hdd_path% || bcdedit /displayorder %wim_hdd_guid% /addlast
@bcdedit /default {current}
@bcdedit /bootsequence %wim_hdd_guid%
@bcdedit | find "bootsequence" || @(echo. & echo 즉석부팅 등록에 실패했습니다 & echo. & pause & exit )
shutdown -r -f -t 0
exit
:pe
@ for /f "tokens=1-3 delims=-" %%a in ("%date%") do @(
set y=%%a
set m=%%b
set d=%%c
)
@ for /f "tokens=1-2 delims=:" %%a in ("%time%") do @(
set hh=%%a
set mm=%%b
)
@if exist %windir%\SysWOW64 set bit=64
@if not exist %windir%\SysWOW64 set bit=32
@if not exist Ghost%bit%.exe (echo. & echo. & echo Ghost%bit%.exe 파일이 있어야 합니다 & echo. & pause & exit )
@for %%A in (a b c 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:\윈도백업용표시파일입니다 (set src=%%A& del %%A:\윈도백업용표시파일입니다& goto img)
if exist %%A:\vhd백업용표시파일입니다 (set src=%%A& goto img)
)
:vol2
echo lis vol | diskpart
@for %%A in (z y w v u t s r q p o n m l k j i h g f e d c b a) do @(
if exist %%A:\windows (echo. & echo %%A:에 윈도가 있습니다.&set src=%%A)
)
:src2
@echo.
@echo. 백업할 파티션을 고르세요.
set src=%src%
@set /p src=문자만 입력하세요,위의 문자는 엔터 :
@echo %src%| find ":" && goto src2
@if not exist %src%:\* (echo. >%src%:\윈도백업용표시파일입니다& goto img)
@if exist %src%:\windows\system32 (echo. >%src%:\윈도백업용표시파일입니다& goto img)
@echo.
@echo.
@echo.
@echo. %src%드라이브에는 윈도가 없고, "파일이 있습니다"
set confirm=ok
@set /p confirm=정말 백업하시려면 "0번" 입력하세요, 잘못 입력하셨으면 엔터 :
@if %confirm%==0 (echo. >%src%:\윈도백업용표시파일입니다& goto img)
@goto vol2
:img
@if exist %src%:\vhd백업용표시파일입니다 goto vhd
:img2
@if not exist %src%:\windows\system32 goto rb2
@if exist %src%:\windows\SysWOW64 set bit2=64
@if not exist %src%:\windows\SysWOW64 set bit2=32
@reg load hklm\load %src%:\windows\system32\config\software
@for /f "skip=2 tokens=3* usebackq" %%a in (`"reg query "HKLM\load\Microsoft\Windows NT\CurrentVersion" /v ProductName"`) do @set win=%%a %%b %bit2%bit
@reg unload hklm\load
:rb2
@if exist rb find "rb" rb && (set rb=rb& goto run)
@if exist rb find "fx" rb && (set rb=fx& goto run)
@echo.
@echo. 고스트 백업 후에, 재부팅하시려면 엔터
set rb=rb
@set /p rb=아니면 0번 입력하세요 :
if %rb%==0 set rb=fx
:run
if exist file del file
if exist rb del rb
if exist GHOSTERR.TXT del GHOSTERR.TXT
if exist *.dmp del *.dmp
@if not exist %src%:\windows\system32 goto run2
start Ghost%bit%.exe -clone,mode=pcreate,src=@OS:%src%:,dst="%win%-%y%-%m%-%d% %hh%h-%mm%m-%src%-drive.gho" -sure -z1 -fnf -%rb%
exit
:run2
start Ghost%bit%.exe -clone,mode=pcreate,src=@OS:%src%:,dst="%y%-%m%-%d% %hh%h-%mm%m-%src%-drive.gho" -sure -z1 -fnf -%rb%
@exit
:xp
@bcdedit 1>nul 2>nul && goto del
@if not exist %~d0\ghost\Install-BM (
echo.
echo ghost 폴더 안에 Install-BM폴더가 없습니다
echo.
pause
exit
)
@echo.
@echo boot.wim으로 자동 재부팅 하기 위하여 win7 방식으로 부팅파일을 심습니다.
@echo.
@echo. 하지 않으시려면 창을 닫으시면 됩니다.
@echo.
@pause
@copy /y Install-BM\bootmgr %systemdrive%\
@copy /y Install-BM\bcdedit.exe %windir%\System32
@copy /y Install-BM\bootsect.exe %windir%\System32
@copy /y Install-BM\ko-KR\bcdedit.exe.mui %windir%\System32\ko-KR\
@xcopy /cherykisf Install-BM\Boot %systemdrive%\Boot
@copy /y Install-BM\boot.sdi %systemdrive%\Boot\
@copy /y Install-BM\boot.sdi %windir%\System32\
@bcdedit /import Install-BM\BCD
@bcdedit /create {ntldr} /d "Windows XP"
@bcdedit /set {ntldr} device partition=%systemdrive%
@bcdedit /set {ntldr} path \ntldr
@bcdedit /displayorder {ntldr} /addfirst
@bcdedit /default {ntldr}
@bcdedit /set {bootmgr} device partition=%systemdrive%
@bcdedit /set {memdiag} device partition=%systemdrive%
@bcdedit /create {ramdiskoptions} /d "Ramdisk Options"
@bcdedit /set {ramdiskoptions} ramdisksdidevice partition=%systemdrive%
@bcdedit /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
@bcdedit /deletevalue {ramdiskoptions} description
@bootsect /nt60 %systemdrive% /mbr
@attrib %systemdrive%\bootmgr +a +s +h +r
@attrib %systemdrive%\Boot +s +h
@goto del
:vhd
cd /d %src%:\
for /f "tokens=* usebackq" %%a in (`"find /i ".vhd" vhd백업용표시파일입니다"`) do set vhd=%%a
>diskpart.txt echo sel vdi file="%src%:\%vhd%"
>>diskpart.txt echo attach vdisk
>>diskpart.txt echo sel par 1
>>diskpart.txt echo ass letter=a
diskpart /s diskpart.txt
@if not exist a:\윈도백업용표시파일입니다 (
>diskpart.txt echo sel vdi file="%src%:\%vhd%"
>>diskpart.txt echo sel par 2
>>diskpart.txt echo ass letter=a
diskpart /s diskpart.txt
)
del diskpart.txt
del vhd백업용표시파일입니다
set src=a
@if not exist a:\윈도백업용표시파일입니다 (echo. & echo "a:\윈도백업용표시파일입니다"가 없습니다. 엉뚱한 파티션이 선택된 듯 합니다 & echo. & pause & exit )
del a:\윈도백업용표시파일입니다
@cd /d "%~dp0"
goto img2
-------------------------------------------------------------------------------------------------------------
댓글 [2]
-
suk 2017.04.07 02:37
-
도넛 2017.04.07 03:34 답변감사합니다
그냥사용해도되긴한데 궁금해서 질문해봤습니다
저한테는 최고의 백업툴이라 상위버전으로 교체해서 백업하면 속도면에서 좋지않을까해서 해본건데 분할백업이라
그냥 단일백업이 가능한 11.5.1.2266버전으로 만족해야겠습니다
감사합니다
위에도 답변했습니다만...고스트 bat 은 사용하지 않고 있습니다
bat 내용도 잊혀져서 저도 모르겠습니다
내용을 지금 보면...관계 있는 것은 이런 고스트 명령일텐데요.
start Ghost%bit%.exe -clone,mode=pcreate,src=@OS:%src%:,dst="%win%-%y%-%m%-%d% %hh%h-%mm%m-%src%-drive.gho" -sure -z1 -fnf -%rb%
봐도 분할 백업과 관련된 것은 없는 듯 한데요
무엇보다 고스트 버전에 따라서 달라진다고 하셨으니...제가 명령어 봐야 소용이 없을 듯 합니다
고스트 버전은 11.5.1 으로 충분하다고 봅니다.