MBR 의 백업과 복원의 의미
지난 글에서는 MBR 초기화(MBR 코드 영역의 초기화)에 대해서 알아보았습니다. 이번 글에서는 MBR 의 백업과 복원에 대해서 알아볼텐데요. MBR 의 백업과 복원이란 MBR 전체(코드 영역, 디스크 서명, 파티션 테이블)를 통채로 백업하고 복원하는 것을 의미합니다.
코드 영역이나 디스크 서명 뿐만 아니라 파티션 테이블까지 모두 백업하고 복원하기 때문에 사용에 주의를 요하는데요. 왜 그러한지는 뒤에서 설명하기로 하고 일단 먼저 간단하게 가장 대표적인 MBR 관리 도구 중 하나인 MBRWiz.exe 를 통해 MBR 을 백업하고 복원하는 방법에 대해서 알아보도록 하겠습니다.
MBRWiz.exe 를 백업하고 복원하기
1. MBR 백업
먼저 MBRWiz.exe 를 통해 MBR 을 백업하는 방법은 아래와 같습니다. [참고로 디스크 번호는 윈도우에서 인식된 디스크 번호와 동일하지만 좀 더 정확한 디스크 번호는 mbrwiz /list 명령을 통해 확실할 수 있습니다.]
mbrwiz /disk=0 /save=mbr /filename=c:\mbr.dat
이 때 파일의 확장자는 크게 중요하지 않습니다. 보통 가장 많이 사용하는 방식이 C:\MBR 과 같이 그냥 확장자 없이 저장하거나, C:\Disk0.mbr 과 같이 확장자로 이것이 MBR 임을 나타내는 방식, C:\MBR.bak 와 같이 백업한 파일임을 나타내는 방식을 많이 사용하고, C:\MBR.bin, C:\MBR.dat 와 같이 Bin 또는 Dat 확장자 형식으로도 많이 저장합니다. 즉, MBR 백업본 파일의 이름은 순전히 개인 취향입니다.
2. MBR 복원
다음으로 MBRWiz.exe 를 통해 MBR 을 복원하는 방법은 아래와 같습니다. [이 때 백업본 파일은 MBRWiz 나 다른 도구를 통해 백업해둔 MBR]
mbrwiz /disk=0 /restore=mbr /filename=c:\mbr.dat /confirm
/confirm 은 작업을 진행할 지 묻는 대화 메시지를(Yes/No) 출력하지 않고 곧바로 작업하는 것을 의미합니다.
참고로 MBR 의 크기는 512Byte 이기 때문에 보통 그 백업본도 512Byte 이지만, MBRWiz.exe 는 여기에 디스크에 대한 간략한 정보를 MBR 정보 앞에 추가적으로 저장하여(512Byte) 최종적으로 1KB 의 백업본을 생성합니다. 이게 중요한 게 실제 MBR 의 내용 앞에 그 정보를 저장하기 때문에 MBRWiz.exe 를 통해 백업한 1KB 짜리 백업본을 다른 도구를 통해 복원하게 되면 전혀 엉뚱한 결과가 나온다는 것입니다.(MBRWiz 가 디스크 정보로 저장한 부분을 MBR 내용으로 착각) 여러 도구를 혼용하여 사용하는 경우 필히 주의하세요.
이와는 달리 MBRWiz.exe 를 통해 MBR 을 복원할 때는 MBRWiz.exe 를 통해 생성한 1KB 짜리 백업본을 사용하든 다른 도구를 통해 백업한 512Byte 짜리 백업본을 사용하든 정상적으로 복원이 진행됩니다.
이와는 달리 MBRWiz.exe 를 통해 MBR 을 복원할 때는 MBRWiz.exe 를 통해 생성한 1KB 짜리 백업본을 사용하든 다른 도구를 통해 백업한 512Byte 짜리 백업본을 사용하든 정상적으로 복원이 진행됩니다.
MBR 을 백업하고 복원할 때 주의할 점
MBR 의 백업과 복원은 MBR 의 전체 정보를 통채로 백업하고 복원한다고 하였습니다. 이는 파티션 테이블 정보도 그대로 백업하고 그대로 복원한다는 이야기이죠. 아래는 위의 MBRWiz 를 통해 백업한 MBR.dat 파일을 살펴본 것으로 파티션 테이블 영역의 모습입니다.
파티션 정보가 그대로 백업되어 있죠. 이 때문에 의도치 않은 결과가 생길 가능성이 있는데요. 파티션 테이블은 현재 디스크에 존재하는 (주, 확장) 파티션들에 대한 정보이죠. 이게 그대로 백업되고 다시 복원된다는 이야기입니다. 눈치가 빠르신 분들은 제가 대충 무슨 상황을 이야기할 지 감이 잡히셨을텐데요.
결론부터 이야기하면 MBR 을 백업했던 시점과 MBR 을 복원하는 시점의 파티션 구성이 다르면 백업했던 당시와 다르게 변화가 발생한 파티션들은 깨져버리게 됩니다. 즉, 현재의 파티션 구성과 다른 예전의 파티션 구성에 대한 정보가 들어가니까 파티션이 정신을 못차리는 것이죠. 이게 무조건 깨지는 것은 아니고요. 예전의 파티션 테이블 정보로 되돌아가기 때문에 실수로 삭제해버린 파티션은 복원되는 효과를 볼 수도 있습니다.
그럼 다음의 예제들을 통해 어떠한 결과가 발생할 수 있는지 그것을 직접 살펴보도록 하죠. 먼저 첫 번째 경우입니다.
먼저 현재 디스크의 상태입니다.
이러한 파티션 구성을 가진 상태에서 해당 디스크의 MBR 을 백업하였습니다.
이제 파티션 하나를 삭제합니다. 이건 MBR 을 백업했던 상황에서 단순하게 파티션 하나가 사라진 상황이죠?
이와 같은 상태에서 곧바로 예전의 파티션 정보들이 저장되어 있는 MBR 로 복원을 해보도록 하겠습니다.
디스크 관리에서 새로 고침하면 삭제되었던 파티션이 다시 되살아난 것을 확인할 수 있습니다.
물론 안의 파일들도 온전히 살아 있네요.
이러한 파티션 구성을 가진 상태에서 해당 디스크의 MBR 을 백업하였습니다.
이제 파티션 하나를 삭제합니다. 이건 MBR 을 백업했던 상황에서 단순하게 파티션 하나가 사라진 상황이죠?
이와 같은 상태에서 곧바로 예전의 파티션 정보들이 저장되어 있는 MBR 로 복원을 해보도록 하겠습니다.
디스크 관리에서 새로 고침하면 삭제되었던 파티션이 다시 되살아난 것을 확인할 수 있습니다.
물론 안의 파일들도 온전히 살아 있네요.
이와 같이 MBR 복원을 통해 삭제된 파티션을 복원한 결과를 얻었죠? 파티션의 삭제가 보통 파티션 테이블에서 해당 파티션에 대한 정보만 제거하는 것이기 때문에 예전의 파티션 테이블 정보를 그대로 다시 가져오면 파티션이 복원되는 효과를 얻을 수 있는 겁니다.
물론 이렇게 온전하게 파티션이 복원되는 효과를 얻으려면 파티션을 단순하게 삭제만 한 경우, 그리고 그 사이에 해당하는 할당되지 않은 영역에 새로 파티션을 만들거나 하지 않았다는 조건이 필요합니다. 그리고 이러한 내용은 MBR 의 파티션 테이블에 저장되는 주 파티션과 확장 파티션에만 적용되죠. MBR 이 아닌 자체의 EBR 에 저장되는 논리 드라이브는 이러한 효과를 얻을 수 없고요. 미리 백업해둔 MBR 도 있어야 하고, 그래서 여러모로 실제 상황에서 사용하기엔 제약이 많습니다. 그냥 이러한 효과가 있다 정도로만 생각하시면 될 듯 합니다.
참고로 삭제된 파티션을 복원하는 것은 아차! 실수로 파티션을 삭제하였다면? 글을 참고하시는 게 더 좋습니다.
다음으로 그렇다면 MBR 복원에 이런 긍정적인 효과만 있느냐? 변화가 발생한 파티션은 깨진다고 하였죠? 이제 그걸 보도록 하겠습니다.
앞서의 예제와 동일한 파티션 구성에서 E: 드라이브 파티션을 삭제하고 D: 드라이브 파티션을 확장하였습니다. 이건 확실히 파티션 자체에 변화가 생긴 경우이고 그로 인해 MBR 파티션 테이블에서 그에 해당하는 각 파티션 엔트리의 정보도 바뀐 상황입니다.
이 상태에서 예전의 파티션 정보들이 저장되어 있는 MBR 로 복원하고 살펴본 모습입니다.
D: 드라이브 파티션이 RAW 상태로 바뀌어 버렸죠? 파티션 깨진 겁니다. 포맷하고 다시 사용하세요.
이 상태에서 예전의 파티션 정보들이 저장되어 있는 MBR 로 복원하고 살펴본 모습입니다.
D: 드라이브 파티션이 RAW 상태로 바뀌어 버렸죠? 파티션 깨진 겁니다. 포맷하고 다시 사용하세요.
예제에서는 간단하게 보여드리기 위해 MBR 의 백업과 복원 작업 중간 변화가 발생한 D: 드라이브에 파일을 기록하거나 뭐 그런 것이 전혀 없었기 때문에 D: 드라이브 파티션은 깨졌더라도 E: 드라이브 파티션은 다시 살아나는 결과를 보였는데요. 실제 상황에서 D: 드라이브를 한참 사용하다 이러한 작업을 진행하였다면 E: 드라이브 파티션도 깨져서 되돌아갈 확률이 매우 높습니다.
이와 같이 MBR 의 백업과 복원엔 MBR 전체 정보, 즉, 파티션 테이블도 포함되기 때문에 이러한 의도치 않은 결과가 발생할 수 있다는 사실 정도만 기억하시고 주의해서 사용을 해야 한다는 것만 알아두시고 사용하시면 될 듯 합니다. 이상입니다. 다음 글에서 뵙죠. ^^