기 타 WimLib 백업 복원 - 드라이브 목록외에는 Cmd로 구성하여 보았습니다
2021.09.30 12:22
사공이 많아서..하늘을 날아다니는 배를....다시..바다로 보냈습니다..
윈포에는 Cmd 관련해서 고수님들이 많으시죠...고수님들께서는 Cmd만으로도 WimLib 백업 복원을 구성이 가능하실것입니다..
저는 아직도 Cmd는 기초적인 것을 활용하는 정도여서 드라이브 목록을 보여주는것은 cmd가 아니 다른 프로그램을 만든 보조프로그램을 활용하게
되었습니다
Cmd 프로그램도..만드는 사람에 따라서..지식과 경험이 달라 다른 모습으로 구성이 될것입니다
원래 공부 목적이었던 분은 DarknessAngel님의 Recovery.cmd를 수정하시는것이 원하시던것었지만...DarknessAngel님의 작품의 경우 저와는
완전히..다른 방식이어서..결국..기존에 IFW 백업,복원에 활용하던 cmd를 수정하고 보완하는 방식을 하여 보았습니다
프로그램을 만드는 방식은 당연히..사람마다 다를것입니다..저의 경우 아래 기준을 두고 백업,복구 cmd를 구성을 하였습니다
1. 윈도우 파티션에 Win.tag 파일, 백업파티션 테그는 Backup폴더로 하고 모든 드라이브의 파티션명은 영어로 하며 이름에는 빈공간이 없는것을
기준으로 하였습니다
PE에 따라서 드라이브 문자는 언제나 변할수 있는것이어서 신뢰를 할수가 없습니다..그래서 테그 파일이 있는 것이 어떤 드라이브인지 확인을
하기 위해서 메세지에 볼륨명을 꼭 넣습니다..초보분들을 불안증은 아니지만..눈으로 확인을 하는것이 실수를 방지할수 있어서..이렇게 볼륨명을
확인을 합니다
2. Win.tag와 Backup 폴더를 검색하기 위해서 C~Z까지 검색하는 for문을 처음에 한번만 실행을 합니다 이때 모든 정보를 추출해서 이 정보를 가지고
다른 작업을 합니다
- C~Z 중에서 실제 있는 드라이브 갯수와 드라이브 문자 리스트를 저장을 합니다
- Win.tag 파일이 있는 드라이브 갯수와 드라이브 문자 리스트를 저장합니다
- Backup 폴더 검색도 드라이브 갯수와 드라이브 문자 리스트르 저장합니다
이렇게 필요한 정보를 한번 추출하면 되어서..C~Z 드라이브 검색을 for 문으로 여러번 하지 않습니다
이 정보들을 가지고 Win.tag가 0 이나 2개이상 Backup 폴더가 0 이나 2개이상일때 다른 조치를 하도록 구성을 합니다
3. 백업,복원 구분을 위한 글자색을 위해서 findstr.exe 를 활용하고 있습니다 이 findstr.exe는 정보 추출하는데도 활용을 합니다
4. 윈도우 복원시 포맷후 원래 볼륨명을 수정하기 위해서 label.exe 를 활용을 합니다 포멧시에는 공백이 있는 볼륨명으로 할수가 없습니다
저용량 PE라고 해서 무조건 파일을 추가하지 않는것은 손해죠..용량도 얼마되지 않어서 findstr.exe 와 label.exe 를 추가해서 활용하였습니다
저의 경우 이런 것을 기준으로 백업,복구 프로그램을 만드는 방식 대충 정리를 하였습니다
내부 구성은 만드는 사람에 따라서 달라질것 같습니다..저는 주로 구글에서 찾은것을 복사해서 활용을 하였습니다
1. 복구시스템을 구성을 할때..볼률명을 무조건 지정을 해드립니다...또한 새로운 하드를 추가더라도..볼륨명을 넣도록 강조를 합니다
Win.tag나 Backup폴더가 테그로 활용되는것처럼 볼륨명도..제대로 설정이 되었나 확인하는 용도여서..복구시스템에서 필수적인 초치입니다
2. 백업파일이 없어서..아이콘이 백업용 아이콘으로 되어 있습니다..
3. Win.tag와 Backup 폴더가 1개일때 정상적인 모습입니다..백업파일이 없어서 입력란에 보라색으로 안내를 하고 있습니다
복원은 초록색 백업은 보라색입니다.
드라이브 목록은 백업을 할수가 있는 드라이브 목록만 보여주고 있습니다..CD는 표시되지 않습니다
4. Win.tag가 없는 경우입니다...윈도우 파티션 자리에 빨간색으로 안내를 하고 있습니다..윈도우 파티션 관련이어서..입력안내는 초록색으로 하고
있습니다
입력란에는 A~Z까지라고 안내를 하고 있습니다..여기에 입력한 알파벳에 따라서 goto문으로 확인을 하는것이 아니라 어떤것을 입력해도 드라이브
목록에 보이는 드라이브 문자 C D E G 4개 알파벳과 비교해서 일치하는 것우에만 Win.tag를 만들어 줍니다.
비교시에는 findstr.exe 가 활용이 됩니다..글자색뿐만 아니라 소스를 간단히 하는데도 활용이 되고 있습니다
5. C D E G에 없는 z를 입력해 보겠습니다
6. C D E G와 일치하지 않아서..다시 처음부터 시작이 되어서 아래처럼 Win.tag가 없습니다
7. C는 일치를 해서..Win.tag를 만들어 주어서 아래처럼 정상적으로 표시가 되었습니다
8. Win.tag를 만드는것도 쉬운일이 아니죠..실수로 Backup폴더가 있는 드라이브 문자를 입력을 한 경우입니다
9. 안내 메세지를 보여주고 있습니다
10. 새로 SSD를 사서 윈도우를 복제를 했는데 아직 기존 윈도우를 삭제하지 않았다면...이런 경우는 거의 없겠지만 예를 들것뿐입니다
윈도우에서 pe로 부팅하는 경우에는 무조건 윈도우 파티션 외의 Win.tag는 삭제하도록 되어 있어서 이런일이 없습니다
혹시 이런 경우도 있을수 있어서 고려를 한것입니다..
Win.tag가 있는 C,G 드라이브가 표가 되고 있습니다..윈도우 파티션을 선택을 하면 이 두개를 삭제를 하고 선택한 파티션에 새로 만드는 방식으로
하였습니다. 삭제시에는 윈도우에서 처럼 모든 드라이브를 검색하지 않고 이미 추출한 C,G 가 있어서 모든 드라이브 검색없이 삭제를 합니다
11. C,G 드라이브의 Win.tag 삭제후 새로 만들었습니다
12. Backup폴더가 없는 경우입니다..백업파일 관련이어서 입력 메세지는 보라색입니다
13. 실수로 윈도우가 있는 C 드라이브를 입력을 한 경우입니다...당연히 체크를 해주어야죠..
14. 입력한 것과 드라이브 목록에 보이는 C D E G 와 일치하는것이어야 Backup 폴더를 만들어 줍니다..
15. Backup 폴더가 2개라면....폴더에 뭐가 있는지 확인을 해야해서 프로그램은 종료 밖에 없습니다
16. 이제 모든 관문을 통과하고서야 아래 모습이 되었습니다..입력 글자색이 보라색입니다..백업파일이 없네요..
17. 백업을 진행하였습니다
18. cpu를 모두 풀로 사용을 하네요...덕분에 백업속도가 빠른가 봅니다..
19. 백업후 재부팅하였습니다..백업파일이 있어서 아이콘이 초록색으로 바뀌었습니다
20. 복원을 초록색입니다.. label.exe 테스트를 위해서 볼륨명에 공백을 두었습니다
21. 포멧후 복원중입니다
22. label.exe 덕분에 공백이 있는 볼륨명도 잘 설정이 되었습니다..저의 경우 복구시스템 구성시 볼륨명에는 공백이 절대 없게 하기는 합니다
23. 마무리
백업,복구 프로그램은 사고가 발생을 하면..무조건 대형이죠..
급할때 편하려고 복구시스템을 구성을 하는데..잘 사용하는 경우에는 고맙다는 단어 한개지만..사고가 생기면..많은 말들을 듣게 됩니다
실제로 알고보면...사용법대로 사용하지 않아서 인데도..복구시스템을 구성한 사람에게 답답함을 풀게 되는 경우가 있게 되는것 같습니다
그래서..확인하고 또 확인을 하는 과정을 넣게 됩니다.혹시 제가 실수하는 부분도 있을수 있고요..
확인 과정이 많을수록 안전하지만..귀찮음도 있습니다...
그래도 확인을 해야죠..안전사고는 순간 발생을 하는것이어서 조심 또 조심하는것이 최선인것입니다
Cmd로 한다는것이 Cmd 반 GUI 반이 되어 버려서 결국 이렇게 다시 Cmd로 구성을 해보았습니다
드라이브 목록이 cmd가 아니어서 100% Cmd는 아니네요..
벌써 점심시간 입니다..
맛있는 시간이 되시기 바랍니다
댓글 [20]
-
21퍼 2021.09.30 12:34
-
하양나비 2021.09.30 13:09
수고하셨습니다
-
머나먼길.. 2021.09.30 13:20
수고하셨습니다
-
상발이 2021.09.30 14:11
수고하셨습니다.
-
파란하늘흰구름 2021.09.30 20:32
수고많으셨습니다
-
DarknessAngel 2021.09.30 22:22
저도 삽질해서 조금 더 고쳐봤습니다
이제 이렇게 출력됩니다
이정도면 충분히 만족스러운 수준이니 뭔가 새로운 아이디어가 떠오르지 않으면 리커버리로 삽을 안 들듯합니다
:DiskStatus
echo ^|------^|---------------^|-------------^|-------------^|-------------^|----------^|
echo ^|Letter^| Label^| Total Space ^| Used Space ^| Free Space ^|Filesystem^|
echo ^|------^|---------------^|-------------^|-------------^|-------------^|----------^|
set "GB=1073741824"
for /f "skip=1 delims=" %%i in ('wmic logicaldisk get DeviceID^,FreeSpace^,Size^,VolumeName^,Filesystem') do (
for /f "tokens=1-5" %%j in ("%%i") do call :Diskoutput %%j %%k %%l %%m %%n
)
:Diskoutput
rem Thanks for Mua
if "%4"=="" (
goto :eof
)
for /f "tokens=1-6" %%i in (
'mshta vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(FormatNumber(%4/%GB%, 2) & "" "" & FormatNumber((%4-%3)/%GB%, 2) & "" "" & FormatNumber(%3/%GB%, 2) & "" "" & Round((%4-%2)*50/%4)):Close"^)'
) do (
set "label= %5"
set "size= %%i"
set "used= %%j"
set "free= %%k"
set "FileSystem= %2"
set /a "nUsed=%%l, nFree=50-%%l"
)
echo ^|%1 ^|%label:~-14% ^|%size:~-9% GB ^|%used:~-9% GB ^|%free:~-9% GB ^| %Filesystem:~-6% ^|
echo ^|------^|---------------^|-------------^|-------------^|-------------^|----------^|이런식으로 고쳤습니다
윈도용 런쳐도 만들어야하는데, 삽질할 의욕이 안 생기네요
-
왕초보 2021.09.30 23:01
cmd에서 문자열을 잘라내기를 하셔서 정리를 하였네요..
도표로 되어 있어서..구분이 잘되고 있습니다...진짜 고생이 많으셨습니다..
저도 어제 찾은 VBS의 문자열 자르기로 오래전에 VBS로 만들어 놓은 ImageX를 수정해서 작업을 하고 있었습니다
구글에서 찾아가면서 하는중이어서 속도가 나지는 않네요
백업,복원 확인을 메세지로 하고 있어서 VBS 메세지가 저는 친숙하기는 합니다
1. VBS에서 뽑은 정보를 문자열 잘라내기로 정리를 하였습니다...저의 경우 Win.tag나 Backup 폴더 갯수가 0 인 2개 이상인 경우에만 아래
창이 나옵니다 InputBox의 폭의 최대 크기가 정해져 있어서 아래 정도의 정보밖에 넣을수가 없습니다..
2. 초보 지인분들의 경우 메세지가 cmd 보다는 더 편해서 활용하게 됩니다..백업,복원 명령어는 창색등을 설정을 해야해서 cmd로 해야 할것
같습니다..
3. 예전에는 고스트 백업,복원 관련해서 정보를 보여주는 프로그램들이 많이 있었는데..요즘에도 활용이 가는한지 찾아봐야겠습니다
WimLib 덕분에 저도 해보지 않았던 방식을 알게되고 cmd나 VBS에서도 공부를 할수 있는 기회가 되어서 배우는것이 많습니다
마음 깊이 감사를 드리고 있습니다
바쁘신 와중에 이것까지 하시려고 하시니까 의욕이 생기시지 않으신것 같습니다..
화이팅입니다..
---------------------------------------------------------------------------------------------------------------
생각이 나서 말씀하셨던것을 확인을 해보았습니다..볼륨명 한글인 경우..같은 길이 만큼 자르는데도 아래처럼 길게 표시가 되어서 넘어가네요
-
DarknessAngel 2021.10.01 08:08
저도 문자열 자르는거 할줄 몰라서 처음에는 문자열 숫자 길이 체크해서 모잘란만큼 반복문 돌려서 ' '를 붙이는 방법으로 처리했었는데, 반복문 도배라 효율도 나쁘고, 코드 엄청 길어졌었는데, 무아님이 저렇게 깔끔하고 짧게 출력부 만들어주셨습니다
vbs를 좀 더 잘 다룰 수 있다면 저도 cmd보단 vbs로 재변환해서 출력해보고픈데 vbs도 잼병이라...
2바이트 쓰면 저러는건 포기했습니다 (심지어는 폰트에 따라서 밀리는 간격이 다를 수 있습니다)
-
왕초보 2021.10.01 09:16
cmd에서 도움을 주신 고마운 분이 있으셨네요..
저도 한때는 사용기에 있는 자료들을 모두 첨부를 했었는데...지금은 현실이 그렇지 못한 상황입니다.
전혀 도움이 되지 못하여서 죄송합니다...
폰트는 pe에서 맑은 고딕만 사용하고 있어서 생각지 못하였습니다..폰트마다 글자 폭이 틀려서 같은 글자수여도 자리를 더 찾하게
되어서 밀리는것 같습니다.. 볼률명이나..GB등에서 글자수를 줄여서 여유공간을 확보하는것을 처리를 해야할것 같기도 합니다
VBS에서 디스크 정보를 보여주는 것을 아래의 자료를 활용하였습니다
아래로 정렬을 하면 %까지 표시를 할수가 있습니다만 사진처럼 너무 길어셔서..옆으로 하게 되면서 표시를 하지 않았습니다
볼륨명은 objDrive.VolumeName 입니다..오른쪽에는 볼률명을 추가하여 본것입니다
소스에 보시면...DriveTypeFixed 만 표시하여 주고 있습니다
[VBScript-VBS] 하드디스크 남은 용량을, 퍼센트로 표시하는, 비주얼 베이직 스크립트
http://mwultong.blogspot.com/2006/05/vbscript-vbs.html
-
아미띠에03 2021.10.01 06:49
수고하셨습니다.
-
지후빠 2021.10.01 17:41
저도 한번 따라해 봅니다.^^ DiskFree 수정.vbs
왕초~님 질문 하나 드려도 될까요?
https://windowsforum.kr/review/16750628 게시글 참고하여 TBLauncer 를 넣었는데 WMI 오류가 발생합니다.
다이어트를 많이해서 그런것 같은데 뭘 추가해주면 될까요? ^^
-
왕초보 2021.10.01 19:12
진심으로 감사드립니다...
욕심인줄을 알지만...VBS에 대해서 잘아시는 분이 지후빠님이셔서..혹시..수정을 해서 소개를 해주시면 좋은데 하는 생각도 했었습니다
초보인 제가 주먹구구식을 한것하고는 차원이 다르네요...저에게도 많은 공부가 될것 같습니다..
링크를 해주신 사용기는 LaunchBar 여서 TBLauncher 하고 다를수 있습니다.
TBLauncher의 경우 인터넷 연결을 하는 기능도 있어서 설정 ini에서 수정을 하시면 될것 같기도 합니다
저의 경우 오래전에 쓰던것을 넣어보았더니..잘 됩니다...혹시 왕*님 PE가 아니라 더 다이어트가 된 다른 PE라면 저도 모르는 부분입니다
1. 이 런처가 맞는것이죠..
2. 제가 가지고 있는 버전은 1.9 버전이네요
3. ini 설정은 아래처럼 되어 있습니다..
4. 잘 해결 되시길 바랍니다..
-
지후빠 2021.10.01 21:27
감사합니다.^^ PE는 넘사벽이라... 그래서 PE 관련 게시물도 잘 안보게 되는 것 같습니다.ㅜㅜ
좀 늦을 것 같은데요. 귀가해서 테스트 해보겠습니다.
ps. 겸손이 지나치시다는... 이미 다 아시잖야요. ㅎ~ㅎ 또, 디스크 이름 한글에서는 달라질 듯...
-
왕초보 2021.10.01 22:04
볼륨명을 영어로 하는것은 테그파일처럼..기본설정으로 생각을 해야 할것 같습니다
한글까지 고려하기에는...능력부족입니다..편하게 가야죠...
-
지후빠 2021.10.02 00:25
prince.wim에 Launcher 대신 TBLaucher를 넣었더니 다음과 같음 에러가 발생합니다.ㅠㅠ
-
왕초보 2021.10.02 01:24
예전에 사용하던것이 있어서 이것으로 확인을 했었습니다. 죄송합니다...
구버전에서는 wmi를 사용하지않았지만 최신 버전에서는 있어야 하나 봅니다
1. TeraByte Drive Image Backup & Restore Suite 3.47 WinPE x64 에서 추출한것입니다...wmi를 찾네요
2. 버전이 최신 버전입니다.. 아쉽지만 프로그램에서 wmi를 활용한다면 방법이 없을것 같습니다.
-
지후빠 2021.10.02 01:28
넵 감사합니다. ^^ 밤이 늦었습니다. 편히 주무십시오.~
-
왕초보 2021.10.02 01:47
저만 늦은것이 아닌데요...저도 궁금해서 해결방법을 찾아보았습니다
TBLauncher.exe 가 처음 실행시에는 에러 코드가 메세지로 나오지만 프로그램 종료후 다시 실행을 하면 정상적으로 실행이 됩니다
어디엔가 기록을 남기는것 같아서 레지를 찾아보았더니..레지에 표시를 하네요
아래 레지를 추가하시면 wmi 메세지는 나오지 않습니다...잘 되시길 바랍니다
어느 pe에 사용하실지를 정확히 몰라서 reg와 bat 둘다 적었습니다
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\TeraByte Unlimited\TBLauncher\Session]
"InitState"=dword:00000002
Reg.exe add "HKLM\SOFTWARE\TeraByte Unlimited\TBLauncher\Session" /v "InitState" /t REG_DWORD /d "2" /f
1. 레지 적용후 wmi 메세지없이 잘 실행이 되었습니다
2. 왕*님 PE에서 Autoadd.cmd 에 추가를 하였습니다
-
ehdwk 2021.10.01 17:39
수고하셨습니다. -
kanghc2000 2021.10.04 06:30
수고하셧습니다
세심한 작업이 많았겠네요. 보면서 감탄하는중임니다