Callisto
Jupiter
Windows NT(Server 2003 까지) 버전의 CD 부팅
반응형

과거 제가 쓴 글이 몇 개 있습니다.

 

2012년 9월 9일에 썼던 Callisto | 윈도우 NT 베타 버전 부팅 설치가 안될경우 해결 방법 (tistory.com), 동년 10월 25일에 쓴 Callisto | 윈도우 넵튠 사용기 (tistory.com), 2018년 11월 13일에 쓴 Callisto | Windows NT 5.0 빌드 1515 (tistory.com), 역시 동년 11월 15일에 쓴 Callisto | Windows NT 5.0 빌드 1575 (tistory.com), 그 다음 날에 쓴 Callisto | Windows NT 5.0 빌드 1585 (tistory.com), 2019년 8월 4일에 쓴 Callisto | Windows NT 5.0 Workstation 빌드 1859 (tistory.com), 2021년 4월 24일에 쓴 Callisto | Windows NT 5.0 Workstation 빌드 1580 (tistory.com) 이 글들이 대표적인 것인데요, 시간이 갈 수록 내용이 달라지고 제가 알게 된 정보도 달라지는 게 보입니다.

 

NT 버전의 CD 부팅 과정은 간단하게 살펴 보면 다음과 같습니다.

 

먼저 CD-ROM을 부팅 순서로 해둔 뒤 Press any key to boot from CD...에서 아무 키나 누르면 가장 처음 나오는

 

이것을 띄우게 하는 것이 바로

 

여기에 [BOOT]라고 적힌 폴더 안에 있는 2KB 짜리의 파일 입니다. 7zip으로 열었을 때 보이는 파일로, CDIMAGE로 패키징 시에 -b 옵션으로 지정해 줘야 합니다. 저 파일의 내용은

 

대충 이런 내용인데 보시면 SETUPLDR.BIN도 있고 BOOTFIX.BIN도 있고 I386도 있죠. 하드에서 부팅하면 POST 이후에 MBR을 읽어 들이는데 CD는 저게 그 역할을 하는 것이죠. Press any key to boot from CD는 BOOTFIX.BIN에서 띄우는 문구입니다. I386을 찾고 BOOTFIX.BIN을 로드 한 다음, 아무 키나 입력 되면 그 때 SETUPLDR.BIN을 로드하는 것이죠.

 

그 SETUPLDR.BIN을 불러와서 나오는 글자가 저 Setup is inspecting your computer's hardware configuration... 입니다.

 

그 이후로는 NTLDR, NTDETECT.COM, NTKRNLMP.EXE 순으로, 그 다음 각종 장치 드라이버들을 로드 한 뒤에 SMSS.EXE 순서인데 이 SMSS.EXE가 원래 SMSS.EXE 파일이 아닙니다. 바로 I386 폴더에 있는 USETUP.EXE가 SMSS.EXE로 바뀌어 있다는 점인데요. 이 파일은 NTDLL.DLL 파일과 같이 I386 폴더 안의 SYSTEM32 폴더에 있어야 합니다. 왜냐하면 원래 SMSS.EXE를 불러 오는 것이 SYSTEM32 폴더에 있는 것을 불러오는 것이기 때문입니다.

 

리소스 해커로 열어본 CD 부팅 과정에서 불러오는 SYSTEM32에 있는 SMSS.EXE의 실제 정체. USETUP.EXE 입니다.

 

첫 줄에 보이는 문장들이 여기 그대로 나와 있죠.

 

여기까지만 하면 끝이 아닙니다.

 

바로 CD 롬 최상단에 태그 파일이 있어야 하는데요.

 

바로 이 파일들을 말합니다. 이 파일은 설치시 TXTSETUP.SIF를 이용하기에 해당 파일에서 요구하는 파일들이므로, 최상단에 있어야 합니다.

 

%%로 변수처리 되어 있는 부분인데요. 경로를 지정해서 수정 해 주면 루트 최상단이 아니어도 되겠다만 해보진 않았습니다.

 

이렇게 이미 정해져 있습니다. 역시 마음대로 수정해서 똑같이 만들어주면 상관은 없겠다만 해보진 않았습니다.

 

cd2는 MCE나 TPCE를 말하는 것이고, boottagfile1~5는 플로피로 부팅 했을 때 필요한 파일들 입니다. win51mp는 IA64용이고, P 붙은건 프로용, C 붙은건 홈용입니다. 당연히 i는 I386(x86, 동의는 아님)을 의미하죠 sp2 붙은건 서비스 팩 통합 시에 자동으로 생성되구요. 안에 내용은 XP는 Windows 후에 줄바꿈, 2000은 W2k 후에 줄바꿈입니다. 거기다가 2000 서비스 팩 태그는 아예 빈 파일입니다. NT 4.0은 JBCE 후에 줄바꿈입니다. JBCE가 무슨 의미인지는 저도 모릅니다.

 

그리고 여기에는 안보이는 BOOTFONT.BIN 이 아이도 최상단에 있어야 합니다. 없으면 TXTSETUP.SIF가 열심히 찾다가 도저히 안돼서 CD를 넣으라고 합니다.

 

그래서

 

의외로 간단한 방법이 아닙니다. 그러나 저 파일만 있으면 되는 것은 맞습니다. 왜냐하면 다 I386 폴더에 존재하고 SYSTEM32 폴더 안에 NTDLL.DLL과 SMSS.EXE가 없으면 I386에서 복사 해 오면 되거든요. 물론 SMSS.EXE는 SMSS.EX_에서 가져오는 것이 아니라 USETUP.EXE 파일의 이름을 바꿔야 합니다.

 

그래서 시간이 지난 후엔

이렇게 만든 것입니다.

 

간단하죠?

반응형
  Comments,     Trackbacks