이 작동하지 않을 수 있습니다.
이 답변은 일반적인 설정을 가정했을 수 있습니다. 여기서 C :는 운영 체제를 보유합니다.
정확한 사본을 얻지 못하는 이유에 대한 예를 하나 들어 보겠습니다.
이유 # 1 : 탐험가가 멋지다
Microsoft Windows의 GUI (Explorer)를 사용하여 그림을 새 폴더에 복사하면 Windows는 "사용자 친화적"작업을 시도합니다. 사진을보고 축소판 이미지를 만들어 thumbs.db라는 파일에 저장합니다.
따라서 많은 파일을 복사하고 ApicOne.jpg로 시작한 다음 BpicTwo.jpg로 시작한 다음 CpicThree.jpg로 시작하면이 세 이미지를 복사 할 때 3 개의 축소판이 만들어집니다.
그런 다음 이전 thumbs.db 파일을 복사하려고하면 (모든 파일을 복사하기 때문에) 새로운 thumbs.db 파일이 이미 존재하기 때문에 충돌이 발생합니다. 최신 thumbs.db 파일에는 ZpicTwentySix.jpg 파일이 아직 포함되어 있지 않습니다 (파일이 알파벳순으로 복사되어 있다고 가정). 따라서 GUI는 이름이 기존의 thumbs.db 파일을 덮어 쓸지 묻는 메시지를 표시하는 동안 복사를 중지합니다.
간단한 현실은 고통입니다.
이제 이론적으로는 새 파일에 동일한 축소판이 포함되어 있어야하므로 (최종 사진이 복사 된 후) 해당 파일을 건너 뛰거나 이전 파일을 유지하거나 이전 파일을 덮어 쓸 수 있습니다. 그러나 새 파일의 수정 날짜가 달라집니다. 따라서 거기에는 정확한 사본이 없습니다. 또한 파일이 이전에 다른 방식으로 정렬 된 경우 (시간이 지남에 따라 다운로드 한 파일 날짜를 기준으로 디렉토리에 추가됨) 탐색기에서 파일을 알파벳순으로 복사하는 방식으로 정렬 된 다음 다시 한 번, 모든 것을 정확하게 같은 방식으로 저장하지는 않습니다.
이유 # 2 : 파일이 나타나지 않을 수도 있습니다
일부 파일은 실제로 나타나는 방식으로 존재하지 않습니다. C : \ Windows \ WinSXS \에는 "나란히 어셈블리"가 포함되어 있습니다. 기본적으로 공유 파일을 사용하는 두 개의 프로그램을 설치하면 최신 버전의 Microsoft Windows는 파일 이름이 같더라도 두 버전의 파일을 모두 유지합니다. 파일을 업데이트하면 Microsoft Windows가 새 파일과 이전 파일을 모두 저장할 수 있습니다. 이러한 종류의 기술은 여러 소프트웨어가 설치된 경우 호환성이 향상되었으며 문제가있는 경우 이전 상태 ( "시스템 복원")로 롤백하는 기능을 지원합니다. 그러나 이것이 구현되는 방식은 복잡합니다.
WinDirStat ( WinDirStat 페이지 에서 다운로드)를 실행하면 이 프로그램이 하드 드라이브의 파일 크기를 표시합니다. C : \ Windows \ WinSXS 디렉토리는 방대합니다.
그러나 그것은 잘못된 것입니다. WinSXS 디렉토리는 특별합니다. 디렉토리는 파일이 특정 크기임을보고합니다. 그러나 실제로 Windows는 해당 폴더에 특별한 트릭을 사용하고 있습니다. 실제로 해당 폴더에있는 것은 일부 데이터를 공유하는 여러 부분 파일입니다. 내 생각에 그런 것. 요점은 어떤 종류의 속임수가 사용된다는 것입니다. 그리고 WinDirStat는 이러한 트릭을 이해하지 못합니다. 따라서 WinDirStat는 Windows가 알려주는 모든 거짓말을 믿으며, WinDirStat는 결국 WinSXS 디렉토리의 파일이 엄청난 양의 디스크 공간을 차지한다고 말합니다.
프로그램을 실행하려고하면 Windows는 DLL 파일 조각을 조합하고 프로그램이 필요한 데이터의 복사본을 볼 수 있도록 충분히 똑똑하여 프로그램이 제대로 작동합니다.
탐색기 GUI를 사용하여 해당 디렉토리를 복사하려고 할 때 탐색기 GUI의 "복사"기능은 WinSXS가 특별하다는 것을 이해하지 못합니다. 따라서 "복사"기능은 각 개별 파일을 전체 파일 인 것처럼 복사하려고 시도합니다. 결과는 특수하게 처리되지 않은 대상 디렉토리에 파일이 복사됩니다. 따라서 대상이 특수 소스와 일치하지 않습니다.
이유 # 3 : 부팅 프로세스가 복잡 할 수 있음
부팅 코드는 몇 가지 흥미로운 일을 할 수 있습니다. 다른 운영 체제의 다른 버전은 다르게 작동 할 수 있으므로 여기에서 언급 한 특정 세부 사항은 사용중인 특정 Windows 버전과 정확하게 일치하지 않을 수 있습니다. 기본적으로 시스템 시작 (BIOS / (U) EFI)은 파일 위치를 가리키는 부팅 코드 (MBR / GPT)로 디스크 섹션을 확인합니다. 컴퓨터가 매우 단순 할 수있는 코드를 실행하고 있음을 이해하십시오. 이 간단한 코드는 파일 시스템의 복잡한 세부 사항을 완전히 이해하지 못할 수도 있습니다. 예를 들어 NTFS 정션을 이해하지 못할 수 있습니다. 하지만 괜찮습니다. 부팅 코드는 필요한 파일이 디스크의 섹터 번호 6,189,247,145에 있다는 것을 이해합니다. 운영 체제가 설치되면
루트 디렉토리 (C : *. )의 모든 파일을 새 드라이브 (D : *. )로 복사하면 Windows 탐색기의 GUI가 데이터를 알파벳순으로 복사하는 것과 같은 매우 간단한 방법으로 작업을 수행 할 수 있습니다. 운영 체제에서 파일 (예 : C : \ BootLog.txt라는 숨겨진 파일)을 추가 한 경우 C : \ bootmgr (알파벳순) 앞에 올 수 있습니다. 따라서 C : \ bootmgr은 Windows가 C : \ 드라이브에 설치되었을 때와 같이 파일 목록에 표시되지 않습니다.
이것은 보조 드라이브에서 MBR이 올바르게 설정된 상태입니다.
자, MBR이 파일을 찾아야 할 수도 있음을 이해했습니다.
일반적으로 디스크 부팅 코드의 역할은 시스템 부팅 방법에 대한 자세한 내용이 들어있는 파일을 찾는 것입니다. 예를 들어, Windows 95의 경우 이러한 세부 정보는 일반적으로 \ IO.SYS라는 파일에 저장되었습니다 (그러나 대신 사용할 수있는 다른 파일 이름도있었습니다). IBM PC DOS에서는 C : \ IBMBIO.COM 및 C : \ IBMBIO.SYS에 동일한 유형의 기능이 저장되었습니다. 따라서 함께 작동 할 수있는 여러 부팅 파일이있었습니다.
따라서이 문제는 MBR을 넘어 확장 될 수 있습니다. 운영 체제가 시작된 후에도 부트 로더에 여러 "단계"가있을 수 있으며 이는 여러 파일에 영향을 줄 수 있습니다. 나중에 시작되는 "커널"은 말할 것도없고 "첫 번째 단계 부트 로더"와 "두 번째 기반 부트 로더"를 문서화하는 운영 체제를 하나 이상 알고 있습니다. 따라서 부팅에 대한 관심은 초기 부팅 부문에 대한 관심에만 국한되지 않습니다.
이유 # 4 : 데이터가 사용 중일 수 있음
내가 들었던 주된 이유는 레지스트리가 복사되지 않는다는 것입니다. 그러나 머신의 모든 것이 어딘가에 파일입니까?
나는 그것을 믿지 않을 것입니다. Windows가 시작되면 일부 레지스트리를 메모리 또는 캐시 파일에 저장할 수 있다고 생각합니다. 레지스트리가 디스크에 저장되어 있어도 일부 파일은 다른 파일 (예 : "DataThatStillNeedsToBeWritten"파일)에있을 수 있으며 실행중인 Windows 복사본에 "필요한 일부 데이터가 남아 있습니다"라는 메시지가 표시 될 수 있습니다.
Windows GUI가 기본 레지스트리 파일을 복사 한 후 Windows는 캐시 파일에서 데이터를 이동하기 위해 파일을 가져 오는 것과 같이 수행해야하는 일부 작업을 수행 할 수 있습니다 (이 샘플에서는 "DataThatStillNeedsToBeWritten ")를 기본 레지스트리 파일에 넣습니다.
Windows GUI가 "DataThatStillNeedsToBeWritten"캐시 파일을 복사 할 때 해당 파일에 더 이상 레지스트리에 복사 된 세부 사항이 없습니다.
이제 컴퓨터의 전원이 꺼지면 Windows가 frkesk를 상당히 잘 복구합니다 (ChkDsk 실행 지원을 통해). 그러나 D :에서 만든 파일을 복사하면 일부 중요한 데이터가 성공적으로 복사되지 않았으므로 Windows의 새로운 "복사본"이 성공적으로 복구되지 않을 수 있습니다.
이 전체 개념은 Microsoft가 Windows의 "볼륨 섀도 복사본 서비스"(종종 VSS 또는 VSC로 약칭 함)와 같은 복잡한 기술을 만든 이유입니다. 두 약어는 모두 동일한 것을 나타냅니다. 이러한 종류의 문제는 백업 소프트웨어가 "시스템 상태"를 잡을 수있는 이유이며, 인기있는 백업 소프트웨어 제품에는 SQL 데이터베이스 및 전자 메일과 상호 작용하기위한 특수한 플러그인이있을 수 있습니다 (데이터는 종종 온라인 / 사용 가능하고 적극적으로 사용되기 때문에) 익숙한).
해설
나는 이것이 유일한 문제라고 말하지는 않습니다. 이것들은 내 마음에 빨리 튀어 나오는 것입니다. Microsoft Windows 플랫폼은 최신 버전으로 훨씬 더 복잡해졌습니다. (XP는 2K / ME보다 훨씬 더 복잡했으며 XP 서비스 팩 2는 Vista, 7, 7, 8과 마찬가지로 주목할만한 복잡성을 도입했으며이 실적을 바탕으로 10도 마찬가지였습니다.) 특히 최신 버전이 앞으로 더 복잡해지기 때문에 몇 가지 이유가 없을 것입니다.
솔루션
이러한 문제를 해결하기위한 두 가지 팁 :
- Windows가 다른 하드 드라이브에서 부팅 된 경우 휴면 Windows 복사본을 복사하여 이러한 문제 중 적은 수의 문제가 발생할 수 있습니다.
- "스냅 샷"을 지원하는 소프트웨어에는 종종 이러한 많은 문제를 고려하기위한 특수 코드가 있습니다.