본문 바로가기
별별 강의

[응용프로그램 GHOST] Ghost를 써보자! - lhs9842

by lhs9842 2013. 5. 5.
반응형


안녕하세요 lhs9842입니다.

이 블로그에 제가 맨 처음 쓰고 있던것은 Ghost입니다. 어쩌다가 여러분들꼐 드리는 어린이날 선물이 된 글

첫 인사때 언급을 했었던 글이 이 글입니다. 제 생각보다 몇일 씩 걸리면서 이제야 올라오네요.[각주:1]

너무 길게 적은거 같지만 생각보다 사진이 많고요 스위치를 파일로 대체해서 올려서 최대한 줄인게 이정도입니다.[각주:2]

Ghost가 뭐냐고요? 귀신 아니냐고요?

Ghost[각주:3]는 섹터단위 백업 프로그램입니다.

GHO파일 보신적 있으실 겁니다. 그게 이 Ghost로 백업 한 백업 파일입니다.

그럼 이제 차근차근 Ghost에 대해 알아가면서 배워보도록 하죠

먼저 Ghost의 내용물[각주:4]을 알려드리자면

뭐 이렇게 생겼습니다.

파일별로 설명 드리면 맨 위에 3개(gdisk,gdisk32,Gdisk64)는 파티셔닝프로그램입니다. 각각 도스용 32비트용 64비트용입니다.

그 다음에 ghost,ghost32,ghost64가 있는데요 이것이 고스트의 핵심파일입니다. 실제로 백업을 해주는 녀석이죠 이 역시 각각 도스용 32비트용 64비트용입니다.

그 다음에 있는 Ghostexp는 GHO파일을 열어보는 7-zip 같은 프로그램입니다. 32/64비트 겸용 프로그램입니다.

그 밑에 GhostSrv라는 얘가 있는데요 예는 고스트 캐스트라고 하는 고스트 기능이 있습니다. 그 고스트캐스트의 서버 파일입니다.

그 밑에 omnifs는 파티션 찾는 프로그램입니다. 자동화 시킬적에 파티션 번호 찾을 떄 쓰는 겁니다.

이제 백업/복원 할때 쓸건 ghost파일 뿐입니다.(만약에 윈도우상이나 아니면 PE부팅 상태에서 한다고 하면 ghost32나 ghost64가 되겠죠) 그리고 자동화 할떄나 omnifs를 쓸거고요

밑에 두개는 각각 ghost 참고 문서와 ghost 실행 지침서입니다.

ftp://ftp.symantec.com/public/korean/products/manual/Ghost/symantec_ghost_8.0/Ghost_ref_guide.pdf

ftp://ftp.symantec.com/public/korean/products/manual/Ghost/symantec_ghost_8.0/Ghost_imp_guide.pdf

사실 그냥 GUI로 할떄는 안봐도 영어를 어느정도 한다면 할 수 있습니다. 그런데 이걸 드린 이유는 바로 자동화를 위해 드린겁니다.

사실 이 설명서에 몇가지 빠진 스위치가 있습니다.

-fnf와 -hasfingerprint 이란 스위치 인데요

-hasfingerprint는 참고 문서의 -finger이란 놈하고 비슷한건데요 출력 방식이 한개라도 있으면 1 없으면 0이라고 출력하는 거입니다.

-fnf라는 놈은 -finger이랑 -hasfingerprint가 말하는 걸 지금 하는건 못보게 기록하지 말라는 의미입니다. 이 기록이 뭐 62번 섹터에 저장되고 뭐 더 있는데요 너무 복잡해지니까 이 이야기는 여기서 그만하도록 하고

그러면 사용 방법으로 넘어가겠습니다. 저는 32비트 유저이므로 Ghost32를 실행하도록 하겠습니다.

키면 이런 화면[각주:5]이 우리를 반겨줄겁니다. 그냥 OK누르고 들어가세요 그러면

누르면 이런게 나오는데요

peer to peer은 p2p아시죠? 그겁니다.

GhostCast는 앞에서 파일 설명할떄 나온 GhostSrv를 쓰는 기능입니다. pc방 말고는 쓸일이 없다고 보시면 됩니다.

앞에 나온 peer to peer이나 GhostCast는 좋은 기능이지만 우리가 실제로 쓸만한 기능은 아니기 때문에 논외로 놓겠습니다. 

Local은 백업할 때 쓰는 메뉴고요

Options는 말그대로 옵션입니다

Help는 그대로 도움말(스위치 안내인데 영어...)입니다.

Quit는 나가기 입니다.

이제 GUI환경에서의 백업을 알려드리죠

먼저 Local에 들어가면

3가지가 나오죠?

Disk는 하드 전체를 백업하고요

Partition은 파티션 하나를 전체백업합니다

Check는 GHO파일의 무결성을 검사하고요 저는 파티션에 들어가보겠습니다.

그러면 이렇게 되는데요

To Partition은 파티션에서 다른 파티션으로 복사하는 거이고요

To Image는 파티션을 GHO로 백업

From Image는 이미지를 파티션으로 복원입니다.

먼저 백업 해보죠 To Image 선택합니다.

이런게 나옵니다. 저는 디스크가 하나 있는데 2개가 뜨네요 이유는 현재 부팅중인 OS의 하드는 따로 80번으로 보여주기 때문입니다. 즉 이 사진에서 Drive 1=Drive 80입니다. 

그런데 왜 Size랑 Cylinders의 값이 1번 디스크와 80번 디스크가 다르냐고요? 80번은 부팅된 자기 자신 파티션은 빼고 보여줍니다. 고로 지금 부팅중인거를 백업해려면 1번을 선택합니다.

그러면

이런데요 순서는 디스크에서 앞 섹터에 있는게 앞에 나옵니다. 그러면 저는 지금 부팅중인 3번 파티션 Windows 7 HD를 백업해보죠 3번 선택하고 OK를 누릅니다.

이건 그냥 파일 저장할떄 처럼 저장하면 됩니다만 그냥위에 박스 안에 클릭하면 순차적으로 바뀝니다. 밑에 Image file descripyion은 메모입니다. 지정하고 Save를 누릅니다. 그러면

마지막 선택입니다. 압축률 선택입니다.

No=무압축

Fast=빠른 압축(Z1)

High=많이 압축(Z2)

나중에 자동화 할떄는 더 선택이 되는데 Z2이후 부터는 속도만 더 느리고 압축은 잘 안됩니다. 그냥 Z2쓰세요.

선택하면

마지막으로 진행 할거야? 이렇게 묻습니다. Yes하시면 됩니다. 그러면 대부분은 바로 시작됩니다만 만약에 사용중인 파티션을 백업한다면

이런게 나옵니다. 만약에 일반 데이터 파티션(프로그램 설치나 동영상이나 워드 파일 등 데이터입니다.)에는 Force Lock를 하세요.[각주:6] 하지만 만약에 OS나 부팅용 파티션이라면 잠글 수가 없죠(잠그면 시스템 파일이 닫겨요) 그래서 나온것이 Volume Snapshot입니다. Volume Snapshop에 대해서는 여기[각주:7]에 각주를 달아서 설명하도록 하겠습니다. 너무 길어요. 그러면 저는 부팅 OS백업이니 Volume Snapshop를 선택하죠

그리고 나서 다 되면

이럽니다. 그러면 Continue를 누르시면

또 요놈이 나옵니다. Quit를 누르시면 됩니다.

그러면 먼저 백업용 명령줄에 대해 알아보죠.

명령줄도 그렇게 어렵지 않습니다.

ghost32 -clone[각주:8],mode=pcreate[각주:9],src=1:1[각주:10],dst=1:2[각주:11]\Backup[각주:12].gho -sure[각주:13] -z2[각주:14] -fx[각주:15] -fnf[각주:16]

이제 복구를 알아보죠

복구도 GUI와 명령줄 둘다 됩니다만 GUI로는 잘 안쓰입니다. 왜냐하면 GUI로 하려면 Windows에 부팅해서 진행을 해야하는데 문제가 있죠 바로 복구를 하는게 일반적으로 윈도우를 복원하는데 윈도우를 쓰는데 그 윈도우를 갈아서 다시 덮어버리니 뭐 뒷일은 뻔하죠?[각주:17]

본론으로 넘어 가면 명령줄은 다음과 같습니다.

ghost32 -clone,mode=prestore[각주:18],src=1:2\Backup.gho:1,dst=1:1 -sure -fx

그런데 이걸 부팅중인 윈도우를 덮어 씌우는데 그러면 안된다고 말했는데 그래서 사용 되는것이 DOS와 Windows PE입니다.

그러면 뭐가 편하냐고요? 제작 환경에 따라 틀립니다.

Windows xp[각주:19]이하 및 Windows를 제외한 기타 OS[각주:20]의 환경에서 제작하려고 한다면 DOS를 Windows Vista이상의 환경에서 제작하려고 한다면 Windows PE를 추천합니다만 여기서는 그냥 제가 Windows PE로 제작을 해서 배포합니다.

뭐 이정도입니다. 만약에 그냥은 -fnf 넣을지만 선택해서 올리시면 됩니다. 그런데 프리징이라고 해서 오랫동안 계속 한 화면에 서있으면 끄고 -noide 추가한거 쓰시면 됩니다.(한가지 수정합니다. 지금 수정 하기는 어려워서 글로 설명합니다. 시스템 메뉴에서 6번이 with -fnf -noide이라고 적혀있는데요 스크립트 작성시 오류로 -noide가 저기에 들어가서 말씀드립니다. 6번은 -noide 없이 -fnf만 들어갑니다!)
그리고 파일 지정하실때 공백 넣지 마시고 파티션 번호는 확인할때는 x.x형식이지만 입력할떄는 x:x로 입력하셔야 합니다.
그런데 저작권 문제로 Ghost 관련 파일은 일체 제공할 수 없습니다. 그래서 지금 올려드린 파일에도 이 파일의 핵심인 Ghost파일은 없습니다. 그러면 Ghost 파일을 넣어야 합니다. 넣는 방법을 알려드립니다.

ISO파일에 sources폴더 안에 boot.wim 파일이 있습니다. 이 파일을 열어서 Windows\system32 폴더 안에 Ghost32.exe와 Omnifs32.exe를 넣고 다시 저장 시키면 됩니다. 그런데 wim 파일을 아마 못여실겁니다. 그래서 알려드립니다.[각주:22]먼저 아래 파일을 다운로드 합니다.

imagex.exe

이 파일을 이용해서 wim파일을 마운트 언마운트 시키는 방법을 알려드릴건데요 문제가 있습니다. Windows 6.x 계열[각주:23]이상[각주:24]은 상관 없는데 5.x 계열[각주:25][각주:26]은 이걸 명령을 내리면 winmount.sys가 설치되지 않았다는 에러로 인해진행이 안됩니다. 그래서 5.x사용자는 WAIK를 설치해야 합니다. WAIK는 여기서 받으시면 됩니다.

이걸 받아서 마운트를 시키든지 파일을 뺴내던지 해서 안에 있는 StartCD.exe를 실행해서 MSXML 6 SP1 설치 -> .NET Framework 설치 -> Windows AIK 설치 순서로 진행 하시면 됩니다.

그리고 나서 진행 합니다.

방법은 간단합니다. 위에서 15개 파일로 분할 압축한 파일을 풀면 iso파일 하나가 나옵니다. 그 파일 안에 sources 폴더 안에 boot.wim 파일 있습니다. 이 파일을 빼고 C:\에서 Mount 폴더를 만듭니다.[각주:27] 저 imagex파일을 이용할겁니다. 어떻게 하냐고요? cmd를 여세요 관리자 계정으로 말입니다. 꼭 관리자 계정으로 실행하셔야 합니다.[각주:28] 그리고 wim 파일 넣은 경로로 가서 이 명령어를 치세요

imagex /mountrw boot.wim 1 C:\Mount

그리고 나서 그 cmd를 닫지 마시고[각주:29] Mount 폴더에 가서 Windows가고 또 거기서 System32에 가서 Ghost32.exe와 Omnifs32.exe를 넣고 Mount 폴더 이하의 경로에 접근 된것을 다 닫고[각주:30] 다시 cmd로 와서 아래 명령어를 입력합니다.

imagex /unmount C:\Mount /commit

그리고 다시 iso에 원래 있던 장소에 덮어 씌우면 됩니다. 그리고 진행 하시면 됩니다. 만약에 iso툴이 아니라 일반 압축프로그램으로 진행하신 경우에 저렇게 하고 진행하면 부팅이 안되는 경우가 생길 수 있는데 그건 수정하면서 부트로더가 날아간겁니다.[각주:31] 이 경우에는 iso전용툴로 다시 작업해주세요. 그러면 잘 될겁니다. 가상머신으로 진행 한것을 보여드리죠 사실 목소리를 넣어서 설명하려고 했는데 소리가 안들어 가서 그냥 영상입니다. 그리고 화질이 좀 떨어지는 점 이해 바랍니다.

뭐 이걸로 2013년 4월 14일부터 22일간 시험으로 포스팅이 중단 되었다가 다시 쓰기도 한 이 글을 마치도록 하겠습니다.

이렇게 긴글 읽어 주셔서 감사합니다.

2013.10.17 07:52

파일 변경 했습니다. 지금부터는 메뉴 선택하면 파티션 정보가 출력됩니다.

   


아래의 손가락버튼을 눌러주시면 블로그에 큰 힘이 됩니다.






  1. 사실 이 글과 함께 인사를 드리고자 하였지만 글이 길어서 말이죠 결국 그냥 인사 따로 드리고 나서 VC++와 Linux C의 차이에 대해 설명 드렸는데요. 그 와중에도 이글을 쓰고 있었습니다. ^^ [본문으로]
  2. 아마 스위치까지 여기에 적었다면 아마 A4용지로 한 100페이지는 족히 넘을겁니다. [본문으로]
  3. 정확히는 Symantec Ghost [본문으로]
  4. 이 파일들은 Symantec 社의 저작물이며 상용소프트웨어 이기 떄문에 파일을 올리지 않을 것이며 또한 요청시에도 드릴 수 없습니다. [본문으로]
  5. 만약에 뒤에서 나올 자동화 스위치를 이용해서 들어오면 안나옵니다 [본문으로]
  6. 왠만하면 Force Lock를 해주는게 좋습니다. [본문으로]
  7. Volume Snapshot는 백업 시작 당시의 상태를 사진 찍듯이 찍어서 그걸로 백업을 진행합니다. 이것은 Volume Shadow Copy이라고 하는 서비스를 이용하여 볼륨 세도 복사본을 만들어서 그걸로 백업을 진행합니다. 그래서 생기는 문제가 이걸로 복원하고 부팅을 하면 정상 종료 되지 않았다면서 부팅메뉴가 뜹니다. 그건 킨 상태로 백업을 해서 복원하면 켜져 있는 상황에서 바로 꺼져서 켜지는 걸로 인식하기 떄문입니다. 그냥 표준 모드로 부팅하시면 됩니다. [본문으로]
  8. src(원본)과 똑같이 만들으라는 뜻 [본문으로]
  9. 모드=파일생성 이라는 뜻 [본문으로]
  10. 원본 파티션 번호를 의미 [본문으로]
  11. 백업본 저장 파티션 번호를 의미 [본문으로]
  12. 백업본 파일 이름을 의미 [본문으로]
  13. 작업 진행여부를 확인하지 마시오. 라는 뜻 [본문으로]
  14. 높은 압축으로 압축하라는 뜻 [본문으로]
  15. 작업이 끝나면 고스트를 DOS모드(배치파일 모드)로 종료 시켜 주세요. 라는 뜻 [본문으로]
  16. 고스트 지문을 남기지 마시오 라는 뜻 [본문으로]
  17. 모르시는 분을 위해 알려드리자면 볼륨을 잠그려고 시도를 하는데 시스템이니 못잠그고 에러를 뱉습니다. [본문으로]
  18. 모드=파티션복원 이라는 뜻입니다. [본문으로]
  19. DOS가 편한 이유는 Vista이후에는 PE 부팅 파일인 wim파일을 건드릴 수 있는 파일의 드라이버가 안깔려 있어서 그럽니다. 물론 프로그램 깔면 되긴 한데 1GB짜리라서... 그냥 DOS로 하시는게 편합니다만 xp라면 PE쪽에 방법은 알려드립니다. [본문으로]
  20. 역시 xp와 같은 이유인데요. 사실 리눅스가 윈도우를 도와줄 일이 없죠. 그런데 DOS는 왜되냐고요? DOS는 기본 파일 드립니다. 그냥 거기서 bat파일 바꾸면 됩니다. [본문으로]
  21. 비밀번호는 idongmai.wo.tc [본문으로]
  22. 아쉽게도 Linux 유저분들은 좀 힘듭니다. 저도 윈도우를 실어하지만서도 wim이 Microsoft사꺼인지라.... [본문으로]
  23. Windows Vista, 7, 8 그리고 그에 해당하는 서버버전인 Windows Server 2008, 2010, 2012 [본문으로]
  24. 현재 까지는 6.x 뿐입니다. [본문으로]
  25. Windows 2000, xp 그리고 그에 해당하는 Windows Server 2000, 2003 [본문으로]
  26. 그 이하도 안되는건 마찬가지지만 9x커널에서 뭘바랍니까.... [본문으로]
  27. 다르게 하셔도 됩니다만 그러면 밑에 명령줄 내용이 틀려집니다. Mount 부분은 그냥 빈폴더면 됩니다. 루트 중간에 공백있으면 경로를 "경로"이렇게 처리하셔야 합니다 [본문으로]
  28. 안그러면 명령어 입력하면 ERROR: The current logged on user does not have administrative privileges. 에러가 발생합니다. [본문으로]
  29. 닫아도 됩니다만 또 켜기 귀찮잖아요 [본문으로]
  30. 안그러면 오류 떠요 [본문으로]
  31. 사실 이런 경우가 매우 드문데 간혹 있을 수 있어서 하는 말입니다. [본문으로]
반응형
크리에이티브 커먼즈 라이선스
lhs9842 필자가 게시한 대부분의 블로그 게시물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다. 게시물에 CCL이 적용되지 아니하다고 적혀있는 경우엔 본 라이선스 적용 대상이 아닙니다.

댓글