윈도우즈를 몇달 사용하고 나면 다시 설치하는건 이제는 일상이다. 보안이나 안정성과는 거리가 먼 제품을 판매하는 마이크로소프트 비난하기도 이제는 지겹다. 어차피 피할 수 없다면, 매번 추가설치하는 파일들을 윈도우즈 설치시에 같이 설치하도록 해서, 손이라도 좀 덜 가게 만들자.
여기서 소개할 방법은 윈도우즈XP 설치CD를 제작하는 방법을 알고 있다는 전제하에 설명할 것이다. 설치CD 제작 방법을 모르면 링크된 사이트의 설명을 먼저 이해해야 한다.
간단한 경우
가장 간단한 경우는 복사만 하면 되는 경우이다.
예컨대, 윈도우즈 파워토이의 tweakui.exe
는
실행파일 하나로 구성되어 있으며 프로그램 자체의
설정을 위한 레지스트리를 사용하지 않는다. 이런 경우는
원하는 디렉토리로 파일을 복사하도록만 해주면 되겠다.
널리 사용되고 있는 방법은
$OEM$디렉토리를 사용하는
방법이다. 예컨대,
TweakUI의 경우에는 tweakui.exe
만 있으면
따로 설치할 필요가 없다. 이를
%systemroot%\system32
(통상 C:\windows\system32
)로
설치해서 사용하려면, 설치 CD의 루트 디렉토리로부터
$OEM$\$$\system32
디렉토리를
만들고 그 안에 tweakui.exe
를
복사하면 된다. 이 방법의 장점은 첫째 매우 간단하며
둘째 디렉토리 구조를 자유롭게 설정할 수 있다는
점이다. 단점은 설치프로그램이 파일을 있는 그대로
복사하므로 압축을 하기가 애매해진다는 것이다. (물론
실행파일 압축을 할 수도 있지만,
실행파일 압축은
꼭 필요한 경우가 아니면 피하는게 좋다.)
윈도우즈 설치정보를 편집하는 방법
다른 방법은 CD의 I386
디렉토리에
설치하고자 하는 파일을 넣는 방법이다. 이 방법의
장단점은 $OEM$디렉토리구조를 이용하는 경우와
정반대이다. 지금 다루는 경우에만 한정해서 보면
이 방법은 불필요하게 복잡하고 제약적이지만, 뒤에 설명할
다른 경우들과 공통되는 부분이다.
이 방법은 다음과 같이 요약할 수 있다.
- 설치할 파일 압축 - 윈도우즈 유틸리티 makecab.exe를 사용하여 파일을 압축한다. (반드시 할 필요는 없다.)
I386\DOSNET.INF
편집 -[Files]
섹션에 새 파일이름을 추가한다.I386\TXTSETUP.SIF
편집 -[SourceDisksFiles]
섹션에 새 파일을 추가한다.
예: tweakui.exe
를
%systemroot%\system32
로
설치
- 설치할 파일을 다음과 같이 압축한다.
makecab /D CompressionType=LZX tweakui.exe
위의 명령을 실행하고 나면tweakui.ex_
라는 이름으로 압축된 파일이 생긴다. 이를I386
디렉토리로 복사한다. I386\DOSNET.INF
를 자신이 사용하는 편집기로 열어서[Files]
섹션을 찾아 그 아래에 다음을 덧붙인다.d1,tweakui.exe
[Files]
섹션은 여러개가 있을수 있다. 여러개 중에 어느곳에 덧붙이더라도 상관없다. 또는, 새로[Files]
섹션을 만들어도 된다. 예컨대,I386\DOSNET.INF
파일의 맨 밑에[Files] d1,tweakui.exe
라고 덧붙여도 된다.- 마지막으로
I386\TXTSETUP.SIF
를 자신이 사용하는 편집기로 열어서[SourceDisksFiles]
섹션을 찾아 다음을 덧붙인다.tweakui.exe = 1,,,,,,,2,0,0
[SourceDisksFiles]
섹션도 여러개가 있을 수 있으며, 새로 하나 만들어도 된다. 위에서 "2"는%systemroot%\system32
이다. 각 디렉토리의 번호는I386\TXTSETUP.SIF
의[WinntDirectories]
섹션에 나열되어 있다.
긴 파일이름 처리
설치CD 자체는 긴 파일이름을 지원하나,
I386
디렉토리 안의 파일들은
도스의 8.3형식을 지키고 있다. 긴 파일이름을
써야하는 경우에는 I386\DOSNET.INF
에는
8.3형식의 이름을 넣고 I386\TXTSETUP.SIF
에는 8.3형식의 이름과 긴 파일이름을 넣는다.
예를 들어, programwithlongname.exe
라는
가상의 프로그램이 있다고 해보자. 이를 8.3형식에 맞추기 위해
progwlnm.exe
라고 CD에 저장하나 설치후에는
다시 programwithlongname.exe
로 이름을
바꾸려고 한다. 이 경우는 다음과 같이 처리한다.
- 이름을 바꿔 압축
ren programwithlongname.exe progwlnm.exe makecab /D CompressionType=LZX progwlnm.exe
이렇게 해서 생긴progwlnm.ex_
를I386
디렉토리로 복사한다. I386\DOSNET.INF
의[Files]
섹션에는 8.3형식의 이름을 추가d1,progwlnm.exe
I386\TXTSETUP.SIF
의[SourceDisksFiles]
섹션에는 8.3형식의 이름으로 앞에서와 같은 내용을 쓰고 난 뒤, 맨 뒤에 쉼표를 찍고 긴 파일이름을 덧붙인다.progwlnm.exe = 1,,,,,,,2,0,0,programwithlongname.exe
제한과 확장
여기서 설명한 DOSNET.INF
와
TXTSETUP.SIF
를 편집하는
방법을 약간 더 확장하면 레지스트리도
설치할때 설정할 수 있다.
이에 대해서는 다른 글에서 설명한다.
여기서 설명한 방법의 결정적인 제약은 %systemroot%
(통상 c:\windows
)와 그 서브디렉토리만으로
설치가 가능하다는 점이다. 이를 해결하는 방법은
.INF
파일을 이용하는 방법이 있다.
이에 대해서는 또 다른 글에서 설명한다.