파티션 정렬 방식의 변화 - Disk Partition Alignment

윈도우 XP(윈도우 5.x) 까지는 디스크에서 첫 번째 파티션의 시작 위치(Offset)을 32KB 지점으로 잡았습니다. 즉, 디스크의 숨겨진 부트 트랙(Logical Sector 0~62, Total 63 Sector, 31.5KB) 영역이 끝난 후, 첫 섹터인 섹터 63 에서 부터 파티션이 시작되는 것이죠. 왜 그랬냐면 간단하게 기존까지 사용되던 디스크의 주소 체계인 CHS(Cylinder, Head, Sector) 가 63 섹터 구조였으니까요. 그래서 첫 번째 파티션은 물론 나머지 파티션들도 이러한 CHS 구조에 맞춰 실린더(트랙) 경계로 파티션의 시작 위치가 정해졌습니다.

아무튼 이러한 이유로 윈도우 XP 의 디스크 관리나 DiskPart 를 통해 파티션을 구성한 디스크를 살펴보면 첫 번째 파티션의 Offset 이 32KB 지점으로 표시되는 것을 확인할 수 있습니다. 물론 다른 파티션들도 실린더(트랙) 경계에 맞춰서 생성된 것들입니다.

윈도우 XP 에서 파티션을 생성하는 경우, 첫 번째 파티션의 시작 지점은 32KB 지점


근데 윈도우 비스타(윈도우 6.x) 이후로 넘어오면서 이러한 첫 번째 파티션의 시작 위치가 1MB(1024KB) 지점으로 바뀌었죠. GPT 도 고려해야 했고, 뭐 RAID 도 있고, 갑자기 AF(Advanced Format) 이라는 4KB 짜리 섹터 구조를 가진 새로운 디스크들이 개발되기도 했고, 직접적인 건 아니지만 디스크의 주소 체계로 CHS 가 아닌 LBA 가 사용되기도 했고, 뭐 이러한 여러 가지 복합적인 이유로 바뀌게 되었습니다. 1024KB 지점이 섹터나 클러스터 등 여러 가지를 생각해보았을 때 올바로 정렬되기에도 좋고, 변환 등을 고려했을 때도 가장 좋은 위치였으니까요. 그래서 그 외에 나머지 파티션들도 이에 맞춰 1MB 를 기준으로 파티션의 시작 위치가 결정됩니다.

특히나 기존의 CHS 구조를 사용할 경우 Advanced Format(4KB Size Sector) 이 적용된 디스크들이 가장 큰 문제가 되는데요. 이전의 CHS 구조로(63 섹터 구조) 파티션을 정렬하면 디스크의 물리적 섹터(4KB)와 파티션에 구성된 OS 의 클러스터들(보통 거의 4KB, 또는 4KB 배수 단위) 사이에 1 Emulated Sector(4KB 물리 섹터 위에 구현된 8 개의 512Byte 논리 섹터) 씩 어긋나는 현상이 발생하게 되고, 이로 인해 하나의 클러스터가 디스크에서 하나의 물리적 섹터에 정상적으로 정렬되지 못하고, 두 개의 물리적 섹터에 걸쳐지는 상황이 발생, 클러스터 하나의 내용이 바뀌면 섹터 두 개의 내용을 바꿔줘야 하는 뭣 같은 구조가 갖추어져서, 결과적으로 디스크의 성능이 당신이 산 주식마냥 훅~ 떨어지는 문제가 발생하게 되었으니까요.

64 섹터(LBA 64)와 같이 딱 맞아 떨어지는 지점에서 파티션들을 시작해야 성능의 하락이 없는데, 이게 지금까지 그냥 CHS 구조에 맞춰서 63 섹터부터 파티션을 시작하고 다른 파티션들도 그와 비슷하게 파티션의 시작 위치가 지정되다 보니까 이게 좀 그렇네? 뭐 그렇게 된 거죠. 그래서 윈도우 비스타부터 AF 를 비롯하여 여러 가지 다른 문제들을 해결하기 위해 첫 번째 파티션의 오프셋을 아예 저 멀리 1024KB 로 옮기고 이후의 다른 파티션들의 경계로 1024KB 단위를 기준으로 생성하도록 바꾸게 된 것입니다.

그래서 윈도우 비스타, 7, 8 을 쓰시는 분들은 AF 기술이 적용된 디스크에 대해 신경 쓰지 않으셔도 됩니다. 언제나 문제는 이제는 출시된 지 너무 오래된 윈도우 XP 가 문제죠. 참고로 아래는 AF 기술에 대한 아주 간략한 WD 사의 설명입니다.

http://www.wdc.com/wdproducts/library/WhitePapers/ENG/2579-771430.pdf


그래서 윈도우 비스타, 7, 8 등 비스타 이후 윈도우의 디스크 관리나 DiskPart 를 통해 파티션을 생성한 디스크를 살펴보면 첫 번째 파티션의 Offset 이 1024KB 지점으로 표시되는 것을 확인할 수 있습니다. 역시나 다른 파티션들도 1MB 경계를 기준으로 생성된 것들입니다.

윈도우 비스타, 7, 8 에서 파티션을 생성하는 경우, 첫 번째 파티션의 시작 지점은 1024KB 지점 


이건 링크를 걸려고 보니까 작성한 글이 없어서 그냥 짧게 설명해봤습니다. 디스크 관리에서 설명해놨었어야 한건데 이걸 왜 고스트에서 설명하고 있나? 라는 의문이 들지만 뭐 빼먹고 정리하지 않은 제 잘못이죠.






-align : 파티션 정렬 방식의 선택

* 예제는 64비트 고스트를 통해 작업하였습니다. 16비트, 32비트 고스트도 명령은 동일합니다.
* 16비트 고스트 = Ghost.exe  * 32비트 고스트 = Ghost32.exe  * 64비트 고스트 = Ghost64.exe


고스트는 기본적으로 원본 디스크와 동일한 방식으로 대상 디스크의 파티션들을 정렬합니다. 하지만 -align 스위치를 통해 대상 디스크의 파티션 정렬 방식을 임의로 선택할 수도 있습니다.

-align=chs  <- CHS 구조에 맞춰 실린더 경계를 기준으로 파티션들을 정렬, 첫 번째 파티션은 32KB 지점에 생성됨.
-align=1mb <- 새로운 1MB 경계로 파티션들을 정렬, 첫 번째 파티션은 1024KB 지점에 생성됨.

한 가지! -align 스위치는 곧바로 적용이 안 되는데요. 정확하게 고스트가 거부를 하는 것인지 윈도우가 거부하는 것인지 모르겠지만, 아무튼! 단독으로 사용하려는 경우 작업이 거부됩니다. 그래서 강제 적용을 의미하는 -or 스위치를 함께 적용해주어야 합니다.


그럼 실제로 예제 작업을 보도록 하겠습니다. 예제는 디스크 복사로 진행하죠. [디스크 복원도 동일합니다.] 참고로 작업에 대한 중간 스크린 샷은 생략하며, 결과만 확인하는 것으로 하겠습니다.


대상 디스크의 파티션들을 CHS 구조로 정렬 [* 고스트 디스크 8 = 윈도우 디스크 7]

ghost64 -clone,mode=copy,src=7,dst=8 -sure -fx -align=chs -or



대상 디스크의 파티션들을 1MB 구조로 정렬 [* 고스트 디스크 8 = DiskPart 디스크 7]

ghost64 -clone,mode=copy,src=7,dst=8 -sure -fx -align=1mb -or



참고로 보시면 파티션의 크기가 미묘하게 다른 것을 확인할 수 있는데요. 각각 실린더 경계 기준과 1MB 경계 기준에 맞추다보니 시작 위치가 조금씩 달라지고 이러한 부분에서 미묘한 용량 차이가 발생하기 때문에 그렇습니다.

윈도우 XP 에서만 사용하던 디스크를 새롭게 윈도우 7 에서 사용하실거라면(또는 구형 디스크에서 AF 적용 신형 디스크로 복사하는 것이라면) 이런 식으로 파티션 정렬 방식을 재지정하여 복사(복원)해주시는 게 좋습니다. 여기까지 입니다. ^^



 

 

신고
캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. BlogIcon Minty99 2012.10.10 23:25 신고  댓글주소  수정/삭제  댓글쓰기
    블로그 도메인 바꾸셨네요?ㅎㅎ
  2. 병운 2012.10.11 09:10 신고  댓글주소  수정/삭제  댓글쓰기
    아... 파티션 다루는 툴에서 파티션을 새로 작성하거나 사이즈를 변경할 때 가끔씩 미묘하게 용량차이나는게 저런 이유때문에 그렇군요.
    항상 새로운걸 많이 보고 갑니다.
  3. BlogIcon 니드뽀폴쉐 2012.10.11 13:29 신고  댓글주소  수정/삭제  댓글쓰기
    역시 XP가 명작이긴 했지만 너무 오랜 시간이 지나버린게 문제네요. ^^

    근데, 파티션 잡을 때 100GB로 딱 맞게 윈도우상에서 보이게 하려면 도대체 얼마를 잡아야 되는건가요? 102400MB부터 조금씩 늘려가면서 해봤는데 절대 안맞는 것 같던데... ^^;;;;
  4. 돌산 2012.11.17 20:18 신고  댓글주소  수정/삭제  댓글쓰기
    고스트.용량은 작은데 각종 스위치를 생각해 보니 굉장히 많은 기능을 구현할 수 있는 대단한 프로그램이네요.

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com