Microsoft MVP성태의 닷넷 이야기
Windows: 80. 윈도우 서버 백업의 복원하는 옵션 설명 [링크 복사], [링크+제목 복사],
조회: 22421
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

윈도우 서버 백업의 복원하는 옵션 설명

그동안 윈도우 서버의 백업만 해오다가 지난번 사태로 인해 처음으로 (시스템) 복원을 시도해봤습니다. ^^;

Hyper-V 서비스 시작 오류 - Not enough storage is available to complete this operation.
; https://www.sysnet.pe.kr/2/0/1568

"Windows Server Backup" MMC 도구를 실행하면 "Recovery..." 옵션을 선택해 복원을 진행할 수 있는데요. 이때 Recovery 마법사는 다음과 같이 백업이 저장된 위치를 먼저 물어봅니다.

recover_backup_1.png

제 경우에는 같은 컴퓨터에 HDD 하나를 백업 전용으로 달아 두었기 때문에 첫 번째 옵션을 선택해 진행했습니다. 참고로, 같은 머신일지라도 운영체제가 새로 설치되어 이전 운영체제의 백업본을 접근하는 경우라면 "This server(...)"에 해당하지 않습니다. 그런 경우에는 "A backup stored on another location"을 선택한 후에 현재 PC의 하드를 지정해야 합니다. 안 그러면 vhdx 백업본을 Raw 상태의 HDD로 인식하는 경우가 있어 그다음 단계에서 날짜를 선택할 때 아래의 오류 메시지가 뜨면서 진행되지 않습니다.

The disk New Volume (...) that contains the backup is either not online or is not accessible. Make sure this disk is connected to the computer and is accessible for the recovery to continue. Otherwise, choose a recovery date for which the disk is online and accessible, or choose a backup from another storage location.


정상적으로 진행하면 백업본이 생성된 날짜를 선택할 수 있고, (굵은 글씨체로 보이는 숫자입니다.)

recover_backup_2.png

해당 백업본을 대상으로 다음과 같이 5개의 옵션으로 복원을 할 수 있습니다.

recover_backup_3.png

  1. Files and folders: 말 그대로 파일 및 폴더를 복원하는 것으로 복원해야 할 대상이 명확할 때 사용하면 됩니다.
  2. Hyper-V: 아마도 서비스 정지로 인해 비활성화된 듯 싶고.
  3. Volumes: 백업에 저장된 "System Reserved" 및 특정 드라이브에 저장된 모든 데이터를 기존의 내용을 덮어쓰는 형식이 아닌, 운영체제가 설치되지 않은 일반 드라이브를 대상으로 풀어냅니다. 즉, 하드 디스크 볼륨 단위의 원복이 아닙니다.
  4. Applications: 현재 공식적으로 지원되는 것은 "Registry" 하나에 불과하므로 거의 쓸일이 없습니다. 게다가 "Volumes" 옵션과 마찬가지로 기존 설정에 덮어쓰는 형식이 아니고 새롭게 파일로 쓰는 형식입니다.
  5. System state: 기존 파일을 덮어쓰는 형식이긴 하지만 보안 접근이 불가능한 파일은 복원하지 못하고 실패합니다. 또는 "Volumes" 옵션처럼 기존 설정을 덮어쓰지 않고 특정 폴더에 풀어내는 것이 가능합니다.

이 중에서 운영체제의 구성 요소가 잘못되어 복원을 하는 경우라면 "System state" 옵션을 선택해야 하는데요. 아쉽게도 위에서 설명한 이유로 인해 대개의 경우 복원이 실패합니다. 왜냐하면 운영체제가 실행 중이기 때문에 복원이 불가능한 것입니다. (사실 운영체제가 실행된 상태에서의 "System state" 옵션은 거의 의미가 없습니다.) 대신 윈도우 설치 디스크를 이용해 부팅을 시키면 그제서야 제대로 된 "System state" 복원이 가능합니다. 이에 대해서는 다음의 글을 참고하세요.

Windows Recovery Environment overview
; https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd979562(v=ws.10)




"Files and folders" 복원 옵션을 선택한 경우 원본 위치로 쓰거나 별도의 폴더를 지정하는 것도 가능합니다. 그리고 원본 위치일지라도 다음과 같이 3개의 옵션을 선택할 수 있습니다.

recover_backup_4.png

  1. Create copies so that you have both versions: 예를 들어, "c:\temp\test.txt"라는 파일이 이미 있는 경우, 복원되는 파일을 해당 파일에 덮어쓰지 않고 "c:\temp\2014-01-05 13-49 Copy of test.txt"라는 식의 이름으로 새롭게 중복해서 복원합니다.
  2. Overwrite the existing versions with the recovered versions: 복원본에 있는 내용으로 기존 파일을 덮어씁니다.
  3. Do not recover the items that already exist on the recovery destination: 현재 존재하지 않는 파일에 대해서만 복원본으로부터 파일을 가져옵니다.

여기서 디스크 드라이브를 대상으로 "Create copies so that you have both versions" 옵션을 선택해 복원하게 되면 2배 가량의 디스크 공간이 점유될 것입니다. 물론, 복원하다가 용량이 부족하면 실패하고 거기서 작업은 멈춥니다. 참고로 "Security settings"의 "Restore access control list (ACL) permissions to the file or folder being recovered" 옵션을 주의해야 할 필요가 있습니다. 이 옵션은 기본 선택되어 있는데, 복원되는 ".... Copy of ..." 파일들의 보안도 원본 파일을 그대로 따라가게 되므로 "C:\Program Files"와 같은 식의 폴더/파일인 경우 "TrustedInstaller" 보안이 적용된다는 문제가 발생합니다.

그래도 당황하지 마시고 다음의 명령어로 일괄 삭제(또는 보안 변경)할 수 있으니 참고하세요. ^^ (그렇습니다. 제가 실수로 그 옵션을 선택해 시스템 드라이브 전체를 복원하려 했습니다.)

cd "C:\Windows"

takeown /f "2014-01-05 13-49 Copy of*" /skipsl /r /a /d n
takeown /f "2014-01-05 13-49 Copy of*" /skipsl /r /a /d y

icacls "2014-01-05 13-49 Copy of*"  /grant "Users":F /T /C

del "2014-01-05 13-49 Copy of*" /S
del /AH "2014-01-05 13-49 Copy of*" /S
del /AR "2014-01-05 13-49 Copy of*" /S
del /AA "2014-01-05 13-49 Copy of*" /S

dir /a/s "2014-01-05 13-49 Copy of*"




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/17/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13843정성태12/13/20244393오류 유형: 938. Docker container 내에서 빌드 시 error MSB3021: Unable to copy file "..." to "...". Access to the path '...' is denied.
13842정성태12/12/20244538디버깅 기술: 205. Windbg - KPCR, KPRCB
13841정성태12/11/20244866오류 유형: 937. error MSB4044: The "ValidateValidArchitecture" task was not given a value for the required parameter "RemoteTarget"
13840정성태12/11/20244440오류 유형: 936. msbuild - Your project file doesn't list 'win' as a "RuntimeIdentifier"
13839정성태12/11/20244879오류 유형: 936. msbuild - error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values.
13838정성태12/4/20244609오류 유형: 935. Windbg - Breakpoint 0's offset expression evaluation failed.
13837정성태12/3/20245074디버깅 기술: 204. Windbg - 윈도우 핸들 테이블 (3) - Windows 10 이상인 경우
13836정성태12/3/20244633디버깅 기술: 203. Windbg - x64 가상 주소를 물리 주소로 변환 (페이지 크기가 2MB인 경우)
13835정성태12/2/20245075오류 유형: 934. Azure - rm: cannot remove '...': Directory not empty
13834정성태11/29/20245307Windows: 275. C# - CUI 애플리케이션과 Console 윈도우 (Windows 10 미만의 Classic Console 모드인 경우) [1]파일 다운로드1
13833정성태11/29/20244984개발 환경 구성: 737. Azure Web App에서 Scale-out으로 늘어난 리눅스 인스턴스에 SSH 접속하는 방법
13832정성태11/27/20244922Windows: 274. Windows 7부터 도입한 conhost.exe
13831정성태11/27/20244383Linux: 111. eBPF - BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_RINGBUF에 대한 다양한 용어들
13830정성태11/25/20245206개발 환경 구성: 736. 파이썬 웹 앱을 Azure App Service에 배포하기
13829정성태11/25/20245183스크립트: 67. 파이썬 - Windows 버전에서 함께 설치되는 py.exe
13828정성태11/25/20244452개발 환경 구성: 735. Azure - 압축 파일을 이용한 web app 배포 시 디렉터리 구분이 안 되는 문제파일 다운로드1
13827정성태11/25/20245106Windows: 273. Windows 환경의 파일 압축 방법 (tar, Compress-Archive)
13826정성태11/21/20245342닷넷: 2313. C# - (비밀번호 등의) Console로부터 입력받을 때 문자열 출력 숨기기(echo 끄기)파일 다운로드1
13825정성태11/21/20245680Linux: 110. eBPF / bpf2go - BPF_RINGBUF_OUTPUT / BPF_MAP_TYPE_RINGBUF 사용법
13824정성태11/20/20244753Linux: 109. eBPF / bpf2go - BPF_PERF_OUTPUT / BPF_MAP_TYPE_PERF_EVENT_ARRAY 사용법
13823정성태11/20/20245305개발 환경 구성: 734. Ubuntu에 docker, kubernetes (k3s) 설치
13822정성태11/20/20245176개발 환경 구성: 733. Windbg - VirtualBox VM의 커널 디버거 연결 시 COM 포트가 없는 경우
13821정성태11/18/20245096Linux: 108. Linux와 Windows의 프로세스/스레드 ID 관리 방식
13820정성태11/18/20245254VS.NET IDE: 195. Visual C++ - C# 프로젝트처럼 CopyToOutputDirectory 항목을 추가하는 방법
13819정성태11/15/20244499Linux: 107. eBPF - libbpf CO-RE의 CONFIG_DEBUG_INFO_BTF 빌드 여부에 대한 의존성
13818정성태11/15/20245307Windows: 272. Windows 11 24H2 - sudo 추가
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...