본문 바로가기

부팅과 멀티 부팅

[Ntldr] 윈도우 XP 의 부팅 : S-ATA 와 E-IDE 의 ARC 경로는 어떻게 설정되는가?

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 들을 제거하고 시스템도 원래대로 되돌리러 가야겠네요. 이상입니다. ^^