Windows : 시스템을 복제하기 위해 robocopy를 수행하는 것이 안전합니까?


16

약간의 배경 지식으로 시작하겠습니다. Linux 시스템에서는 한 하드 드라이브에서 다른 하드 드라이브로 모든 파일을 가져올 수 있고 부트 로더를 수정하는 한 동일하고 부팅 가능한 완전한 상태로 남아 있다는 사실에 자주 의존합니다. 기능 시스템. 같은 일이 ... 심지어 MySQL은 복구 할 수 있습니다 (특별한 시스템 상태 백업, 그냥 파일을 필요 없음) 백업 및 복원 작동 때로는 그것이 백업시 동결되지 않은 경우에도

Windows에서는 파일 수준에서 시스템을 복제하여 시스템을 복제 한 적이 없었습니다. 항상 VMWare Converter, Ghost, diXML 등의 도구가 필요합니다. 드라이브 이미지 전체를 기반으로합니다. 처음에는 이것이 주로 Windows가 레지스트리를 수행하는 특수 / 마법의 방식 때문이라고 가정했으며 질문하지 않았습니다 (작동했습니다). 오늘까지. 나는 이런 종류의 사고가 멍청하다는 것을 깨달았고 실제로 Windows는 파일 모음 일 뿐이라는 것을 깨달았습니다. 테스트로 오프라인 Windows 2003 서버 드라이브를 가져 와서 파일을 빈 하드 드라이브에 복사하여 드라이브를 활성화하고 완벽하게 작동 시켰습니다.

아니면 했습니까? 고스트에게 기대했던 것과 같은 완전 복제본이 아니기 때문에 실패 할 것이라는 비이성적 인 두려움을 갖는 이유는 무엇입니까? 내가 무서워해야합니까? 왜 그렇게 쉬웠습니까? AD 서버가 다른가요? 이 방법이 실패하는 경우가 있습니까?

파일 별 복사 방법이 필요한 경우 VSS (S : 드라이브로 섀도 복사 된 C : 드라이브 노출)로 동일한 작업을 수행하려고 시도했을 때 동일한 접근 방식이 실패한 이유는 무엇입니까? 보다 구체적으로 로그인 화면까지 부팅 시스템을 확보했습니다. 암호도 받아 들였지만 GUI에서 오류없이 사용자를 즉시 ​​로그 오프했습니다. 나는 심지어 같은 결과를 복사하기 전에 막을 수없는 서비스를 제외한 모든 서비스를 종료하려고 시도했습니다.

그건 그렇고 내가이 robocopy /E /SEC모든 복사 작업에 사용 하고 있습니다.

이 방법을 사용하여 문제를 찾고 있습니까? 나는 유령 등이 입증되었다는 것을 알고 있습니다. 왜 바퀴를 재발 명합니까? ... 나는 모든 것을 얻지 만 ... 전문가로서 일이 왜 그렇게 작동하는지 알고 싶습니다. 그렇기 때문에 이것을 이해하는 것이 중요합니다. (시스템 상태 백업이 없었던 시스템에서 완전 복구를 수행해야하는 드문 가능성은 말할 것도 없습니다)


2
도메인 컨트롤러의 특정 사례를 해결 : 도메인 컨트롤러를 복제하는 안전한 방법은 Active Directory 복제를 망칠 수 있기 때문에 안전하지 않습니다. 나는 세부 사항에 대해 애매하지만 기본적으로 각 DC에는 AD 변경 순서를 일관되게 유지하는 데 필수적인 고유 식별자가 있습니다. 두 DC가 동일한 식별자를 사용하려고하면 전체 시스템이 비명을 지르는 힙에서 붕괴됩니다.
Harry Johnston

또한 복제 된 서버를 도메인 컨트롤러로 승격시키는 것은 안전하지 않습니다. Windows 인스턴스가 DC가 되려면 Windows 설치 프로그램을 통해 설치 해야합니다 . 이주의 사항을 지키지 않으면 여러 가지 이상한 증상이 나타날 수 있습니다.
Harry Johnston

답변:


4

AD 서버가 다릅니다. 도메인 컨트롤러 의 C : \ Windows \ SYSVOL \ sysvol 디렉토리에는 C : \ Windows \ SYSVOL \ domain 디렉토리를 가리키는 디렉토리 접합이 있습니다.

 Directory of C:\Windows\SYSVOL\sysvol

04/13/2011  01:22 PM    <DIR>          .
04/13/2011  01:22 PM    <DIR>          ..
04/13/2011  01:22 PM    <JUNCTION>     domainName.acme.com [C:\Windows\SYSVOL\domain]

거의 모든 유형의 수동 복사 작업으로 인해 접합이 중단되어 SYSVOL이 온라인 상태가되지 않습니다. 정확하지만 이는 정상적인 복원 시나리오에서 발생할 수 있으므로 필요한 경우 항상 SYSVOL 정션을 확인하고 다시 작성하는 것이 좋습니다.

링크와 관련하여 Windows 2008 / Vista / Windows 7 시스템은 바이너리의 % SYSTEMROOT % \ System32 폴더에 수천 개의 링크가있을 수 있습니다. 이러한 링크 대상은 실제로 % SYSTEMROOT % \ Winsxs 폴더에 있습니다.

이를 확인하지는 않았지만 Robocopy는 링크 대신 대상을 복사 할 수 있습니다. 스위치 / SL :: "심볼 링크 대 대상 복사"를 설명합니다.

시스템이 올바르게 작동하는 것처럼 보일 수 있지만 시스템 업데이트 활동을 수행 할 때 링크 대상이있는 위치에 파일을 유지해야하는 경우 어떻게됩니까? 아마도 그것들을 다시 만들지 만 테스트 가치가있을 것입니다.

이러한 링크가 복사 된 디스크로 어떻게 전송되는지 궁금한 경우 이전 및 이후 스냅 샷을 작성한 다음 Windiff 또는 Notepad ++를 사용하여 파일을 비교할 수 있습니다.

다음 명령을 사용하여 드라이브의 접합점을 출력 할 수 있습니다.

dir C:\ /aL /s  >> junctions.txt  

파일에서 다음 스크립트를 사용하여 위치에 대한 링크 출력 (예 : systemroot)을 얻을 수 있습니다.

for /r %systemroot% %%i in (*.exe,*.dll) do (
  echo Checking file: %%i >> file.txt
  fsutil.exe hardlink list "%%i" >> file.txt 2>&1
  echo . >> file.txt
)

네 말이 맞아 접합점은 주요 문제입니다. 이에 대한 더 많은 연구를 통해 접합을 사용하는 것은 AD 서버 만이 아닙니다. Windows 7에서도 이들을 많이 사용합니다. Robocopy는 접점을 복사하는 방법을 모릅니다. "Robocopy는 정션을 발견 할 수 있습니다 ... MOUNTVOL 명령을 사용하여 작성된 볼륨 마운트 포인트 또는 LINKD 명령을 사용하여 작성된 디렉토리 링크 일 수 있습니다. Robocopy는 일반 디렉토리를 작성하여 소스의 정션을 처리합니다. 대상에서 정션을 복제 할 수 없으므로 대상에서 동일한 이름입니다. " ... 파일 복사 도구가 있습니까?
ixnaum

다음 은 Windows 7에서 정션을 복사하지 못하는 robocopy에 대한 자세한 내용입니다. fastcopy 는 정션을 복사 할 수 있습니다. 다음에 시도 할 것입니다.
ixnaum

1
또 다른 잠재적 인 문제인 Windows 7 (아마도 2008)은 "응용 프로그램 데이터"에 대해 C : \ users \ <user> \ AppData \ Local \ 아래의 각 사용자 프로필 폴더에 순환 접점을 가지고 있습니다. 백업 권한이있는 계정을 사용하여 Robocopy를 실행하거나 폴더 권한을 변경하면 해당 정션에서 무한 루프로 이동할 수 있습니다.
Greg Askew

7

ntfscloneWindows 2000 및 Windows XP의 파일 수준 복제 (Linux NTFS 도구 유틸리티 사용)를 수행했습니다. ntfscloneWindows Vista 또는 최신 버전에서는 시도 하지 않았지만 아무런 문제가 없습니다. ImageXWindows XP 및 Windows 7 에서는 Microsoft의 파일 수준 복제 도구를 사용 하며 정기적으로 문제가 없습니다. 나는 일반적으로 서버 컴퓨터를 복제하지 않지만 ImageX서버 OS에서 잘 작동 할 것으로 기대 합니다.

라이브 파일 시스템을 복사하는 것은 항상 어려운 일입니다. 볼륨 섀도 복사본은 대기 파일 시스템을 노출 해야 하지만 여전히 기회가 있다고 생각합니다. (로그인 할 수없는 VSS 복제 볼륨에서 어떤 일이 있었는지 말할 수 없습니다. 실패한 복제본을 볼 수 없으면 실제로 진단하기가 매우 어렵습니다). 가능하면 항상 오프라인 상태 인 시스템을 복제하는 것이 좋습니다.

완전히 대기 상태 인 파일 시스템을 복사하고 있으며 모든 파일을 얻을 수 있다고 가정하면 다음과 같습니다.

  • 마스터 부트 레코드 (MBR) 및 파티션 부트 레코드 (PBR)가 양호
  • 좋은 부트 로더

Microsoft를 bootsect.exe사용하여 이전 NTLDR 기반 버전의 Windows NT (NT 3.5 ~ Windows Server 2003) 및 BOOTMGR 기반 버전 (Windows Vista 이상)에 적합한 MBR 및 PBR을 작성할 수 있습니다. Windows 2003 복제본은 부팅 된 이후 NT 5.2 형식 PBR이있는 디스크에 있어야합니다.

NTLDR 부트 로더는 파일 수준 복사본으로 복사되며 Windows 2003 복사본이 문제없이 작동 한 이유를 설명합니다. BOOTMGR 부트 로더는 bcdboot.exe유틸리티 (BOOTMGR 기반 Windows 설치 미디어에 포함)를 사용하여 설치할 수 있습니다 .

이 방법으로 Active Directory 도메인 컨트롤러 (DC) 컴퓨터를 복제하지 않습니다. 원래 DC와 동일한 네트워크에서 DC의 복제본을 부팅하지 않으려는 경우 이는 전적으로 지원되지 않으며 계획되지 않은 시나리오이기 때문입니다.

편집 (이제 실제 컴퓨터에서 몇 분 남았습니다) :

도구는 내가 위의 설명, ImageX그리고 ntfsclone(가 원시 부문 모드로 실행되어 있지 않은 경우 유령처럼), 파일 시스템 수준의 복제 도구입니다. 섹터 별 복사가 아닌 NTFS 파일 시스템을 해석합니다. 이 두 도구 모두 ROBOCOPY( /SL인수없이) 및 XCOPY( 인수없이)와 같은 연결 지점이나 하드 링크에 문제가 없습니다 .

일반적으로 Microsoft는 파일 수준 복제 기반 시스템 복제를 수행 할 계획이 없습니다. 네, 할 는 있지만, 깨지면 조각을 보관해야합니다.


그러나 ntfsclone과 ImageX는 Ghost와 매우 유사한 이미지 기반입니다 ... 파일 별 복사는 어떻습니까?
ixnaum

1
ImageX는 디스크의 블록 수준 복사본을 생성하지 않으며 파일 기반입니다. (물론, "이미지 파일"을 생성하지만 이것은 iso와 같은 zip 파일과 비슷합니다.) ImageX는이 작업을 지원하는 유일한 방법입니다.
Harry Johnston

4

라이브 파일 시스템을 복사 할 때 발생하는 문제 VSS는 기존 Windows 인스턴스에 이미 레지스트리에있는 새 디스크의 서명이있을 것입니다. 복사본을 부팅 할 때 부팅중인 파티션의 서명이 레지스트리와 일치하고 D:그렇지 않은 E:경우 또는로 마운트됩니다 C:.

레지스트리 파일을 마운트하고 업데이트 HKLM\SYSTEM\MountedDevices 하여 복사 한 후 다시 시작하기 전에이 작업을 수행 하여 정렬 할 수 있습니다 . \DosDevices\C:항목 을 삭제하고 새 드라이브의 항목을로 변경하려고 C:합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.