S-ATA 와 UEFI 가 주류인 최신의 시스템에서 ARC 경로는 어떻게 처리되나?

이 글은 지난 글인 [Ntldr] 윈도우 XP 의 부팅 : BOOT.INI - 윈도우 형식 부팅 항목의 이해 글에서 이어지는 내용입니다. 그 때는 테스트할 여건도 안 되었고, 그래서 마지막에 제 생각을 박스로 남겨놨었는데, 해당 부분이 오히려 다른 분들에게 혼란을 가중시킬 줄은 몰랐습니다. 이제는 그 때와는 다르게 테스트 여건도 갖추어졌기에 실제로 테스트를 진행하여 알아낸 것을 포스팅으로 남기고자 합니다.


일단 지금 이 글에서 이야기할 내용은 바로 Ntldr 부트 매니저의 부팅 환경 설정 파일인 Boot.ini 파일에서 아래와 같은 윈도우의 위치를 나타내는 ARC(Advanced RISC Computing) 경로에 대한 내용입니다.



그리고 아래는 ARC 경로에 대한 마이크로소프트의 KB 문서입니다.



우리가 사용하는 PC 는 현재 모두 Intel x86 기반의 컴퓨터입니다. 일단 그점 알아두시고요. 링크의 마이크로소프트 KB 문서에서 이야기한 내용 중에 중요한 것은 아래와 같습니다.

multi(X)disk(Y)rdisk(Z)partition(W)
scsi(X)disk(Y)rdisk(Z)partition(W) 일 때

1. x86 기반 컴퓨터에서는 muliti(X) 경로와 scsi(X) 경로가 모두 사용된다.
2. E-IDE 는 multi(X) 경로를 사용한다.
3. multi 경로는 무조건 0 값을 가진다. - multi(0)
4. Z는 어댑터에 있는 디스크의 서수이며 대개 0 과 3 사이의 번호이다.



근데 해당 문서는 2003년 10월 29일에 최종적으로 수정된 내용입니다. 문제는 10년이 지난 지금은 E-IDE 와 함께 그 당시에는 없던 S-ATA 라는 새로운 인터페이스가 혼재되어 사용되고 있다는 것이죠. 우선 이전 글에서도 잠깐 언급했지만 제가 알고 있는 E-IDE 를 기준으로 한 multi 경로에 대한 rdisk 의 경로 명명 규칙은 아래와 같습니다.

Primary Master multi(0)disk(0)rdisk(0)partition(W)
Primary Slave multi(0)disk(0)rdisk(1)partition(W)
Secondary Master multi(0)disk(0)rdisk(2)partition(W)
Secondary Slave multi(0)disk(0)rdisk(3)partition(W)


일단 저는 rdisk 는 무조건 0~3 인줄 알고 있었습니다. [대개가 정말 중요한 건데... 놓쳤어...] S-ATA 라는 새로운 인터페이스가 등장했지만 마땅한 자료도 없었고... 혼자 이것저것 생각하다보니 이제는 multi 도 scsi 처럼 숫자가 바뀌나? scsi 로 넘어가나? 그러한 의문만 가졌죠. 그리고 그 어디에서도 rdisk(4) 를 넘어가는 내용을 찾지 못했었으니 의문은 더욱 커져만 가고... 테스트할 수 있는 여건도 안 되고...

근데 어쩌다보니 시스템에 하드 디스크를 덕지덕지 붙여 넣게 되었고, 그 결과 얼떨결에 이젠 테스트할 수 있는 여건이 만들어졌네요. 그래서 테스트해봤습니다. 그랬더니...

"rdisk 에 계속 이어서 번호를 붙여나가면 된다."


라는 아주 간단한 결과가 나오더군요. 결론을 이야기하면 S-ATA 가 6 포트, E-IDE 가 1 포트(1 채널)해서 총 8 개의 디스크를 달 수 있는 시스템이라면 S-ATA 와 E-IDE 를 합쳐서 rdisk(0) ~ rdisk(7) 으로 인식됩니다. 간단하죠? 이 간단한 걸... 결론은 나왔고, 다음은 제가 실제로 진행한 테스트입니다.






ARC 경로 명명 테스트 자료

윈도우 XP 를 설치하면 ARC 경로가 자동으로 입력되죠. 그럼 각 디스크의 ARC 경로를 확인하는 가장 간단한 방법은? 바로 디스크마다 모두 윈도우 XP 를 설치해봐서 Boot.ini 에 입력되는 ARC 경로를 보면 되겠죠? 간단하잖아요? 안 그런가요? 저는 이렇게 단순 무식하면서 확실한 걸 좋아합니다.

일단 결론부터 말하겠습니다. ARC 경로는 UEFI 시스템을 기준으로 펌웨어에서 설정된 디스크의 순서를 따라 rdisk 가 설정됩니다. multi 는 예나 지금이나 항상 0 으로 고정이고요. 아무튼, S-ATA 든 E-IDE 든 상관없이, S-ATA 가 IDE 모드든 AHCI 모드든 상관없이, 그냥 무조건 펨웨어에서 설정된 디스크의 순서에 맞춰 ARC 경로의 rdisk 가 설정되더군요. 펌웨어에서 디스크의 순서를 바꿔주면? ARC 경로의 rdisk 도 그에 맞춰서 바꿔줘야 합니다.



1. SATA = AHCI 모드

시스템은 UEFI 기반이며, 현재 S-ATA 를 AHCI 모드로 설정한 후, E-IDE 를 포함하여 S-ATA 까지 가지고 있는 디스크를 모두 연결하여 시스템에 총 7 개의 디스크를 연결하였습니다. 이 때 ST3000DM001 은 GPT 디스크로 윈도우 XP 를 설치할 수 없기에 별도로 녹색으로 표시하였습니다. [32비트 XP 는 GPT 디스크를 못 읽죠.]

아무튼 디스크들의 순서는 펌웨어에서 아래와 같이 설정되어 있습니다. [8 번 디스크는 펌웨어 설정 창을 캡쳐하기 위해 연결한 USB 메모리이니 신경쓰지 않으셔도 됩니다.]




그리고 아래는 윈도우 XP 에서 살펴본 디스크의 목록입니다. 이걸 보여드리는 이유는 ARC 경로는 윈도우에서 표시되는 디스크의 순서가 아닌 펌웨어에서 설정된(인식된) 디스크의 순서를 따라간다는 것을 좀 더 확실하게 보여드리기 위함입니다. [참고로 AHCI 모드일 땐 GPT 로 설정된 디스크가 디스크 관리에서 아예 디스크 목록에 나오질 않았습니다. 그냥 해당 번호는 비워둔 채 다음 디스크 번호로 넘어갑니다. IRST 의 영향인지 원래 그런 것인지는 확실치 않지만, 뭐 그냥 그렇더라고요. 참고하세요.]



아무튼, 이 상태에서 윈도우 XP 를 설치할 수 없는 GPT 로 설정된 디스크를 제외한 모든 MBR 디스크에 각각 윈도우 XP 를 설치했습니다. 그리고 아래는 각 디스크에 윈도우 XP 의 설치를 모두 마치고 최종적으로 나온 Boot.ini 파일의 ARC 경로입니다. [옵션 부분은 필요없으니 쳐냈습니다.]

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP - SATA-SSD 830"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP - SATA-Vertex4"
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Windows XP - SATA-HD103SJ"
multi(0)disk(0)rdisk(4)partition(1)\WINDOWS="Windows XP - SATA-WD740GD"
multi(0)disk(0)rdisk(5)partition(1)\WINDOWS="Windows XP - SATA-ST3160815AS"
multi(0)disk(0)rdisk(6)partition(1)\WINDOWS="Windows XP - EIDE-WD1600JB"


어떤가요? 펌웨어에서 설정된 디스크의 순서와 정확하게 일치하죠? [비어있는 3 번은 이야기했듯이 GPT 디스크라 윈도우 XP 를 설치하지 못한 겁니다.] 이러한 상태에서 만약에 펌웨어에서 디스크의 순서를 바꾼다면? 처음에 이야기했듯이 펌웨어에서의 디스크 순서와 동일하게 ARC 경로도 바뀌더군요. 그러니 만약에 펌웨어에서 디스크의 순서를 바꿨다면 그에 맞춰서 Boot.ini 의 ARC 경로도 바꿔줘야 하는 겁니다. 기억하세요. 다음으로 넘어가죠.



2. SATA = IDE 모드

혹시나 S-ATA 의 모드에 따라서 ARC 의 경로가 바뀌진 않을까요? 디스크의 순서 설정 등 나머지 내용은 앞서와 동일하며, 단지 S-ATA 를 IDE 모드로만 바꾸고 다시 실험을 진행해보았습니다. [IDE 모드에서는 디스크의 순서를 설정하는 곳에서 디스크들을 파악하기가 쉽지 않아 부득이 AHCI 모드일 때의 캡쳐본을 가져왔습니다.]




앞서와 마찬가지의 이유로 윈도우 XP 에서 살펴본 디스크의 목록을 보여드리도록 하겠습니다.



아래는 IDE 모드일 때 최종적으로 나온 Boot.ini 파일의 ARC 경로입니다.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP - SATA-SSD 830"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP - SATA-Vertex4"
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Windows XP - SATA-HD103SJ"
multi(0)disk(0)rdisk(4)partition(1)\WINDOWS="Windows XP - SATA-WD740GD"
multi(0)disk(0)rdisk(5)partition(1)\WINDOWS="Windows XP - SATA-ST3160815AS"
multi(0)disk(0)rdisk(6)partition(1)\WINDOWS="Windows XP - EIDE-WD1600JB"


동일하죠? 즉, ARC 경로는 S-ATA 의 모드와는 상관이 없다는 것을 알 수 있었습니다. 테스트해보니 별거 없더군요. 뭔가 좀 화끈한 결과가 나오길 은근 기대했는데 말이죠. ^^; 아무튼, 어떻게 도움이 되었을지 모르겠네요. 참고로 오늘 이 글의 내용에 맞춰 관련 글의 내용은 일부 수정하였습니다. 그럼 저는 이만 설치했던 윈도우 XP 들을 제거하고 시스템도 원래대로 되돌리러 가야겠네요. 이상입니다. ^^

 

 

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

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. BlogIcon 니드뽀폴쉐 2012.12.10 19:44 신고  댓글주소  수정/삭제  댓글쓰기
    오랜만에 댓글을... 매일 눈팅은 합니다. 클릭도...^^;;


    오... 펌웨어 인식 순서대로 윈도우도 인식하는군요. @.@

    제 경우엔 분명 사타포트번호(0~7)에 맞춰 의도적으로 연결해도 윈도우 순서가 달랐던 것 같은데...

    담에 꼭 다시 해봐야겠네요.

    근데 전편의 기억이 안나서(혹은 안봐서..^^;;) 그러는데, 윈도우 설치전에도 똑같은 거겠죠?
    이것 때문에 윈도우 설치시 운영체제용 제외하곤 전부 제거후 설치하고 다시 연결했던 기억이..ㅠㅠ
    • BlogIcon CApple 2012.12.11 00:09 신고  댓글주소  수정/삭제
      뭔가 살짝 잘못 이해하신 듯 한데요. 사파 포트가 아니라 CMOS 셋업에서 설정한 하드 디스크의 순서에 맞춰지더군요. 펌웨어 설정이란 CMOS 셋업을 의미합니다. 그러니까 사파 포트 번호에 맞춰 연결해도 CMOS 에서 순서 설정을 다르게 하면 사타 포트 번호와 맞지 않는 것이 맞죠.
    • BlogIcon 니드뽀폴쉐 2012.12.11 12:16 신고  댓글주소  수정/삭제
      아... CMOS셋업에서 "설정"한 순서대로군요.
      기본 순서(하드 우선순위 항목(?))가 사타포트 번호가 기본인줄 알았는데... ^^;;;
    • BlogIcon CApple 2012.12.12 02:52 신고  댓글주소  수정/삭제
      아~ 그리고 참고로 이건 제가 테스트한 UEFI 시스템을 기준으로 한 겁니다. BIOS 시스템에선 어떨 지 모르겠네요. 아무튼 중요한 것은 그게 아니라 rdisk(0~) 으로 쭈욱 숫자를 이어나간다는 것이니까요. ㅎㅎㅎ

      p.s 사타 포트인데 위 댓글에 사파 포트 라고 오타가 났네요. ^^;; 대댓글은 수정하면 순서가 바뀌기 때문에 수정하기도 뭐하고 ㅜ_ㅜ
  2. 돌산 2012.12.11 01:06 신고  댓글주소  수정/삭제  댓글쓰기
    제가 둔해서 이전 글 답글에서 말씀하신 내용을 알아 듣지를 못했네요.설마 ARC경로 관련 추가 포스팅을 해주실 줄은 생각하지 못했었습니다.테스트 과정을 보니 시간도 많이 걸렸을 것 같고,일일이 디스크 연결하시느라 많이 고생하셧을 것 같습니다.감동 먹었습니다.고맙습니다.

    그리고 마음에 와닿는 한마디"저는 이렇게 단순 무식하면서 확실한 것을 좋아합니다".
    전 상황이 닥치면 생각이 너무 많습니다.행동은 없이 말이죠.그래서 이런 태도가 항상 마음에 안들어서 고치려고 노력중입니다.경험이 무엇보다 중요하고 그것을 통해서만이 진짜 "앎"을 알 수 있다고 머리로도 이해하고 가슴으로도 뼈저리게 느끼는 데,너무 오랜 시간동안 굳어져 버린 때문인지 실제의 변화는 미미합니다.

    그래서 캐플님의 그런 말이나 혹은 실험 정신을 가끔씩 글의 어떤 부분에서 대할 때마다 가슴에 팍팍 박힙니다. 컴퓨터에 관한 정보뿐만 아니라 그러한 점도 배울 수 있어서 정말 좋습니다.
  3. BlogIcon Minty99 2012.12.12 01:29 신고  댓글주소  수정/삭제  댓글쓰기
    부팅.. 이제 다 이해했다고 생각했는데..
    PC 켜고 나온 grub rescue> 이거 하나보고 멍해졌다는..ㅎㅎ
    윈도우로 부팅시켜보겠다고 active도 걸어보고 bootsect도 해보고 bcdedit이랑 bcdboot도 해봤는데 안되더군요.
    결국은 걍 포맷했습니다 ㅠㅠ

    그다음에는 우분투 부팅복구가 문제였어요.. 이건 30분 삽질 끝에 라이브USB로 부팅해서 해결..
    부팅은 정말 장난 아니네요 --;;
    GRUB을 이상한데 설치해서 부팅이 안되다니...하아...

    좋은글 잘 보고 갑니다~

    [s](응? 왜 여기다 이런 글을 쓴거지?)[/s]
    • BlogIcon CApple 2012.12.12 02:28 신고  댓글주소  수정/삭제
      [rb]bootsect /nt60 c: /mbr /force[/rb] 와 같이 MBR 의 부트 코드를 초기화해도 안 되던가요? 혹시 /mbr (/force) 를 빼먹고 작업하신 게 아닐련지요. 잘못 설치된 GRUB 문제는 위와 같이 MBR 코드 영역을 표준 코드로 초기화하는 방법으로 해결이 될텐데 말이죠.
    • BlogIcon Minty99 2012.12.13 00:05 신고  댓글주소  수정/삭제
      bootsect /nt60 ALL /mbr /force 했습니다.
      GRUB이 어디에 들어갔는지 알수 없었으니까요..
      그랬더니 화면에 bootmgr도 GRUB도 안뜨고 커서만 깜빡거리더군요..하하--;;

댓글을 달아 주세요

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

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

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