이 글은 지난 글인 [Ntldr] 윈도우 XP 의 부팅 : BOOT.INI - 윈도우 형식 부팅 항목의 이해 글에서 이어지는 내용입니다. 그 때는 테스트할 여건도 안 되었고, 그래서 마지막에 제 생각을 박스로 남겨놨었는데, 해당 부분이 오히려 다른 분들에게 혼란을 가중시킬 줄은 몰랐습니다. 이제는 그 때와는 다르게 테스트 여건도 갖추어졌기에 실제로 테스트를 진행하여 알아낸 것을 포스팅으로 남기고자 합니다.
일단 지금 이 글에서 이야기할 내용은 바로 Ntldr 부트 매니저의 부팅 환경 설정 파일인 Boot.ini 파일에서 아래와 같은 윈도우의 위치를 나타내는 ARC(Advanced RISC Computing) 경로에 대한 내용입니다.
우리가 사용하는 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 들을 제거하고 시스템도 원래대로 되돌리러 가야겠네요. 이상입니다. ^^