Microsoft MVP성태의 닷넷 이야기
Windows: 80. 윈도우 서버 백업의 복원하는 옵션 설명 [링크 복사], [링크+제목 복사],
조회: 22417
글쓴 사람
정성태 (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)
13718정성태8/27/20247440오류 유형: 921. Visual C++ - error C1083: Cannot open include file: 'float.h': No such file or directory [2]
13717정성태8/26/20247034VS.NET IDE: 192. Visual Studio 2022 - Windows XP / 2003용 C/C++ 프로젝트 빌드
13716정성태8/21/20246767C/C++: 167. Visual C++ - 윈도우 환경에서 _execv 동작 [1]
13715정성태8/19/20247384Linux: 78. 리눅스 C/C++ - 특정 버전의 glibc 빌드 (docker-glibc-builder)
13714정성태8/19/20246761닷넷: 2295. C# 12 - 기본 생성자(Primary constructors) (책 오타 수정) [3]
13713정성태8/16/20247493개발 환경 구성: 721. WSL 2에서의 Hyper-V Socket 연동
13712정성태8/14/20247228개발 환경 구성: 720. Synology NAS - docker 원격 제어를 위한 TCP 바인딩 추가
13711정성태8/13/20248076Linux: 77. C# / Linux - zombie process (defunct process) [1]파일 다운로드1
13710정성태8/8/20248006닷넷: 2294. C# 13 - (6) iterator 또는 비동기 메서드에서 ref와 unsafe 사용을 부분적으로 허용파일 다운로드1
13709정성태8/7/20247766닷넷: 2293. C# - safe/unsafe 문맥에 대한 C# 13의 (하위 호환을 깨는) 변화파일 다운로드1
13708정성태8/7/20247557개발 환경 구성: 719. ffmpeg / YoutubeExplode - mp4 동영상 파일로부터 Audio 파일 추출
13707정성태8/6/20247792닷넷: 2292. C# - 자식 프로세스의 출력이 4,096보다 많은 경우 Process.WaitForExit 호출 시 hang 현상파일 다운로드1
13706정성태8/5/20247899개발 환경 구성: 718. Hyper-V - 리눅스 VM에 새로운 디스크 추가
13705정성태8/4/20248170닷넷: 2291. C# 13 - (5) params 인자 타입으로 컬렉션 허용 [2]파일 다운로드1
13704정성태8/2/20248126닷넷: 2290. C# - 간이 dotnet-dump 프로그램 만들기파일 다운로드1
13703정성태8/1/20247451닷넷: 2289. "dotnet-dump ps" 명령어가 닷넷 프로세스를 찾는 방법
13702정성태7/31/20247861닷넷: 2288. Collection 식을 지원하는 사용자 정의 타입을 CollectionBuilder 특성으로 성능 보완파일 다운로드1
13701정성태7/30/20248130닷넷: 2287. C# 13 - (4) Indexer를 이용한 개체 초기화 구문에서 System.Index 연산자 허용파일 다운로드1
13700정성태7/29/20247755디버깅 기술: 200. DLL Export/Import의 Hint 의미
13699정성태7/27/20248251닷넷: 2286. C# 13 - (3) Monitor를 대체할 Lock 타입파일 다운로드1
13698정성태7/27/20248213닷넷: 2285. C# - async 메서드에서의 System.Threading.Lock 잠금 처리파일 다운로드1
13697정성태7/26/20247933닷넷: 2284. C# - async 메서드에서의 lock/Monitor.Enter/Exit 잠금 처리파일 다운로드1
13696정성태7/26/20247469오류 유형: 920. dotnet publish - error NETSDK1047: Assets file '...\obj\project.assets.json' doesn't have a target for '...'
13695정성태7/25/20247455닷넷: 2283. C# - Lock / Wait 상태에서도 STA COM 메서드 호출 처리파일 다운로드1
13694정성태7/25/20247920닷넷: 2282. C# - ASP.NET Core Web App의 Request 용량 상한값 (Kestrel, IIS)
13693정성태7/24/20247245개발 환경 구성: 717. Visual Studio - C# 프로젝트에서 레지스트리에 등록하지 않은 COM 개체 참조 및 사용 방법파일 다운로드1
1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...