본문 바로가기

PE, ImageX, DISM

WIM 백업 : ImageX 를 통한 백업과 복원시 정션과 심볼 링크 경로 자동 수정 방지하기

ImageX 의 재분석 지점 경로 자동 수정 이해하기

재분석 지점이란 간단하게 심볼 링크정션을 의미합니다. [윈도우에서 링크란 무엇인가? - 하드 링크, 심볼 링크, 정션 -]

재분석 지점(Reparse Point) = 심볼 링크(Symbol Link), 정션(Junction)


앞으로 이 글에서는 그냥 간단하게 링크로 표현하도록 하겠습니다. 이미 링크에 대해서는 충분히 이야기를 했으니 결론부터 이야기할께요. ImageX 는 기본적으로 이미지 캡쳐 당시 캡쳐하는 드라이브에 포함된 링크들 중 원본 경로가 드라이브 내부로 향하는 링크를 파악해두었다가, 추후에 해제시 이들의 원본 경로를 자동으로 수정합니다. 이를 정리하면 아래와 같습니다.

1. 이미지 캡쳐 당시 캡쳐하는 드라이브의 드라이브 문자를 기준으로 해당 드라이브에 포함된 링크들 중 드라이브 내부로 향하는 링크를 파악하여 수정해야 할 링크로 이미지에 기록. [C: 상태에서 캡쳐한다면 C: 를 향하는 모든 링크를 파악]

2. 이미지 해제 당시 앞서 파악해둔 내부로 향하는 링크들의 원본 경로를 이미지 해제 당시 이미지를 해제하고 있는 드라이브의 드라이브 문자를 기준으로 자동으로 수정.



정확하게 무슨 이야기인지 직접 보도록 하죠. 아래와 같이 여러 심볼 링크와 정션들을 준비해보았습니다.


예제 링크들(재분석 지점)

해당 링크들을 두 가지로 분류하면 작업 당시를 기준으로 원본이 드라이브 내부로 향하는 링크들과, 원본이 드라이브 외부로 향하는 링크들, 이렇게 두 가지로 분류할 수 있습니다. ImageX 는 그 중에서도 드라이브 내부로 향하는 링크들을 기억하여 이것을 상대적으로 수정해야 할 링크들로 체크하여 이미지에 저장한다는 이야기입니다. 참고로 이를 ImageX 는 재분석 지점에 대한 상대 경로 연결(Relative path junction)라고 이야기합니다.

현재 예제를 기준으로 작업 당시 D: 드라이브에 위치한 링크들 중에 원본이 D: 를 가르키는 링크들, 바로 이러한 링크들을 ImageX 는 경로를 상대적으로 처리해야 할 링크로 저장을 한다는 이야기이죠.


그럼 실제로 ImageX 로 D: 드라이브를 캡쳐해보도록 하겠습니다.

imagex /Capture D: E:\Backup.wim "Drive D"



그리고 이렇게 캡쳐한 이미지를 T: 드라이브에 풀어보았습니다.

imagex /Apply E:\Backup.wim 1 T:



어떤가요? 캡쳐 당시 드라이브 외부로 향하던 링크는 그대로지만 드라이브 내부로 향하던 링크들은 원본 경로가 자동으로 현재 해제한 드라이브 경로에 맞춰 자동으로 수정되었죠? ImageX 의 재분석 지점 경로 자동 수정이란 바로 이것을 이야기하는 것입니다. 이러한 ImageX 의 재분석 지점 경로 자동 수정은 경우에 따라서 굉장히 유용할 수도, 문제를 야기할 수도 있습니다.






ImageX 의 재분석 지점 경로 자동 수정은 언제 문제가 되는가?

ImageX 의 재분석 지점 파악과 자동 수정은 모두 작업 당시를 기준으로 합니다. ImageX 를 사용할 땐 윈도우에서 뿐만 아니라 윈도우 PE 에서도 많이 사용하죠. 글의 예제에서는 윈도우에서 D: 드라이브일 때 백업하여 원본이 D: 를 향하는 링크들이 수정해야 할 링크들로 이미지 내에 저장이 된 상태입니다.

이러한 이미지를 가지고 작업 당시의 윈도우가 아닌 윈도우 PE 와 같은 다른 윈도우에서도 복원을 진행하는 상황이 충분히 있을 수 있습니다. 그럼 윈도우 PE 와 같은 다른 윈도우에서 동일 드라이브에 복원을 진행하더라도, 해당 드라이브가 항상 D: 드라이브일 거라는 보장은 없다는 겁니다. 드라이브 문자는 상황에 따라서 언제든지 변할 수 있으니까요.

실제로 글에서 예제로 들고 있는 D: 드라이브는 윈도우 PE 로 부팅하였을 때는 E: 드라이브로 인식이 되는 상태입니다. 이러한 상태에서 복원을 진행하면 링크들의 경로가 자동으로 현재 작업을 진행하고 있는 윈도우 PE 의 드라이브 문자에 맞춰 자동으로 E: 로 모두 바뀌게 됩니다.

imagex /Apply D:\Backup.wim 1 E:



그리고 윈도우로 돌아오면 해당 링크들은 더미 링크가 되어 있게 되는 것이죠.

더미 링크가 되어 버린 내부를 향하는 링크들







ImageX 가 재분석 지점 경로를 자동으로 수정하지 못하게 하기

그래서 ImageX 에서는 위의 예제에서와 같은 사태를 방지하기 위해 링크들을 자동으로 수정하지 못하게 하는 /Norpfix 옵션이 존재하고 있습니다. 해당 옵션은 드라이브를 이미징하는 /Capture, /Append 명령에서 사용할 수도 있고, 이미지를 해제하는 /Apply 명령에서도 사용할 수 있습니다.

/Norpfix 를 /Capture(/Append) 때에 사용하면 드라이브의 링크들을 분석하여 수정해야 할 링크들에 대한 정보를 이미지에 저장하는 작업 자체를 아예 하지 않고, 그냥 현재 링크 정보 그대로 이미지를 저장하는 것이고, [해당 이미지로 /Apply 해제를 진행하면 무조건 원래대로만 링크를 복원할 수 있음] /Apply 때 사용하면 해당 이미지에 저장되어 있는 수정해야 할 링크들에 대한 정보를 무시하고, 해당 링크들이 가진 원래의 경로대로 링크들을 복원하는 것을 의미합니다.

/Capture(/Append) 에서 사용 : 드라이브 내부로 향하는 링크들에 대한 분석 없이 이미지 생성(백업).
/Apply 에서 사용 : 현재 이미지에 저장되어 있는 수정해야 할 링크들에 대한 내용을 무시하고 원래대로 해제(복원).


실제로 앞서와 동일한 상황에서 /Apply 작업에 /Norpfix 옵션을 적용하여 작업을 진행해본 모습입니다.

imagex /Apply D:\Backup.wim 1 E: /Norpfix



보시는 것과 같이 내부를 향하는 링크들의 경로가 수정되지 않고 원본 그대로 복원된 것을 확인할 수 있습니다. 그리고 아래와 같이 윈도우로 다시 돌아와 확인해보아도 링크들이 정상 작동하는 것을 알 수 있습니다.

정상 작동하는 내부를 향하는 링크들



캡쳐는 /Norpfix 없이 기존과 동일하게 작업하고, 해제 작업에서 /Norpfix 옵션을 적용하는 것은 사용자의 판단과 필요에 따라 링크들의 경로 수정을 진행할 것인지 결정할 수 있는 장점이 있고, 아예 캡쳐 단계에서 /Norpfix 옵션을 적용하여 이미지를 생성하는 것은 해당 이미지에 포함된 링크들이 무조건 수정되지 않아야 할 때 이를 강제시킬 수 있다는 장점이 있습니다. 즉, 어떠한 작업에 해당 옵션을 적용할 것인지는 백업 이미지의 용도에 따라 적절히 선택하면 되는 겁니다.


참고로 Imagex /Info 명령을 통해 해당 WIM 파일이 /Capture 나 /Append 당시 /Norpfix 를 옵션을 적용하여 생성한 이미지인지 아닌지 확인할 수 있습니다. 하지만 포함된 이미지가 여러 개라면 그 중에 어떠한 이미지가 /Norpfix 옵션이 적용된 이미지인지는 확인할 수 없는 단점이 있습니다.

/Norpfix 옵션 없이 캡쳐한 이미지


/Norpfix 옵션을 통해 캡쳐한 이미지







ImageX 를 통한 윈도우 백업과 복원, 그리고 재분석 지점 경로 자동 수정

심볼 링크와 정션을 설명한 글에서도 이야기를 드렸지만, 윈도우 비스타 이후의 윈도우들은, 윈도우 드라이브에 수많은 내부 링크들이 존재하고 있습니다.



그래서 경우에 따라 ImageX 를 통해 윈도우를 백업하고 복원하는 경우 이러한 내부 링크들이 영향을 받을 수 있는 가능성이 있습니다. 하지만 보통 ImageX 를 통해 윈도우를 백업하고 복원할 때 시스템 내 디스크와 파티션의 구성에 변화가 없다면, 동일한 환경에서(ex. 윈도우 PE) 백업하고 복원하는 것이 대부분일테니, 백업 시점과 복원 시점에 해당 환경에서 드라이브 문자들이 변화할 가능성은 적고, 고로 별다른 문제가 없는 것이 보통입니다.

하지만 최악의 상황을 가정하자면, 시스템 예약 파티션 없이 파티션을 구성한 경우 많은 시스템들이 윈도우 PE 로 부팅한 상태에서도 윈도우 드라이브가 C: 를 할당 받는 것이 일반적인 모습입니다. 이러한 상황에서 /Norpfix 옵션 없이 ImageX 를 통해 윈도우를 백업하게 되면 윈도우의 이러한 내부 링크들이 수정을 필요로 하는 링크들로(Relative path junction) 인식이 되어 저장이 되죠.

그런데 이러한 이미지를 통해 윈도우를 다시 복원하는 시점에 시스템의 디스크나 파티션의 구성이 변화하여 윈도우 드라이브가 C: 를 할당 받지 못하였다면? 이러한 상황에서 복원된 윈도우의 내부 링크들은 모두 더미 링크가 되어 버리고, 이는 윈도우 내부적으로 여러 가지 문제들을 야기시킬 수 있습니다.


다시 한 번 말하지만 ImageX 의 이러한 내부 링크 자동 수정 기능이 윈도우의 백업과 복원에서 문제를 일으키는 경우는 여러 가지 조건이 맞아야 일어날 수 있는 문제입니다. 하지만 그러한 상황이 자신에게 발생하지 말라는 법은 없죠. 윈도우의 내부 링크들은 수정되지 않아야 합니다. 그러니 저는 ImageX 를 통해 윈도우를 백업하고 복원할 땐 가급적 복원 작업에서 /Norpfix 옵션을 추가하여 작업하길 권합니다. 특히나 ImageX 를 통해 윈도우를 다른 드라이브로 옮기려는 경우라면 이러한 상황이 발생할 가능성이 높으니 이번 글에서 이야기한 이 내용을 필히 기억하시길 바랍니다.


참고로 이는 꼭 윈도우 드라이브 뿐만 아니라 데이터 드라이브를 백업하고 복원할 때도 생각해보아야 겠죠? 적절히 알아서 잘 대처하세요. 이번 글은 여기까지 입니다. ^^