노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)로 응답 파일을 만들면서 가장 이해하기 힘들었던 것은 구성 단계였습니다. 아니, 그 구성 단계가 왜 나뉘었는지를 이해하기 힘들었죠.

그런데 객체 지향 프로그래밍에서 다루는 모듈화, 다형성, 정보의 은폐(캡슐화), 상속 등의 방법이 윈도 운영체제 및 그 설치에 응용되었음을 알게 된 뒤로는 조금 이해할 수 있었다. 앞서 말한 그런 개념은 어려우니 넘어가고 쉽게 말해 사용자 데이터와 시스템, 사용자 프로그램, 이렇게 세 가지를 나누어 생각하는 구조로 바뀌고 있다는 뜻이다.

오히려 더 복잡해진다고? 흠, 만드는 입장에서는 그렇지만, 쓰는 사람이 그것을 다 알아야 할 이유가 없기 때문에 더 편할 수도 있습니다. 또한 만드는 입장에서도 처음에만 힘들 뿐 나중에는 바뀐 부분만 바꾸어주면 되므로 상당히 효율적일 수도 있습니다.

정보의 은닉

일단 정보의 은닉은 프로그램에서의 은닉과 사용자 데이터의 은닉으로 나눌 수 있습니다.

프로그램에서의 은닉은 일종의 다형성과 관련이 있습니다. 닷넷과 함께 등장한 WinSxS와 관련이 있습니다. 대부분 이것을 쓰레기 폴더로 인식하지만, 사실은 .DLL 파일과 관련이 있습니다. 자세한 사항은 저도 모르므로, 그 폴더가 쓰레기 폴더가 아니라는 사실만 알려드리는 수준에서 멈추겠습니다.

또 다른 의미로 윈도2000부터 확실하게 분리된 사용자 프로필 폴더와 사용자 프로그램 폴더입니다. 환경 변수에서 %USERPROFILE%과 %ProgramFiles%를 떠올리면 쉽게 이해할 수 있습니다. 윈도 비스타부터는 %USERDATA%와 %PROGRAMDATA%로 바뀌었으나 근본적인 부분은 같습니다. 게다가 윈도 비스타부터 바탕화면에서 탐색기를 실행하면 내 라이브러리가 뜨게 됩니다. 대부분 탐색기의 시작 위치를 C드라이브로 바꾸지만, 제 경우는 오히려 기존에 편집하거나 보관하던 문서를 내 문서 또는 내 라이브러리 쪽으로 옮겼습니다. 자료를 하루 종일 복사만 했던 기억이 있네요. ^^a

그와 함께 윈도 폴더나 프로그램 폴더, 프로필 폴더는 함부로 접근할 수 없게 해 두었죠. 한두 번쯤 경고를 보았을 겁니다. 그것도 일종의 정보의 은닉입니다.

다형성

다형성이란 말 그대로 하나의 대상이 여러 형태를 띈다는 뜻입니다. 앞서 말한 WinSxS 폴더를 삭제하려고 시도했던 사람이라면, 그것이 없어도 윈도의 실행에 지장이 없다는 사실을 알게 됩니다. 그래서 그게 용량만 많이 차지하는 쓰레기라고 여기게 되지요. 그런데 그것은 용량을 거의 차지하지 않습니다. 그건 진짜 파일이 아닌 일종의 링크입니다.

또한 설치 이미지 내부에 있는 각각의 에디션에 해당하는 설치 파일도 일종의 다형성으로 볼 수 있습니다. 참고로 32비트 윈도7 RC 7100 얼티멋 에디션 하나만 해도 무려 8기가바이트나 되는데, 그 이미지 전체 크기는 겨우 2기가바이트 남짓입니다. 나머지 4개 에디션을 합하면 수십 기가바이트가 될 텐데 말입니다. 다형성과 파일 중복의 원리를 이용하여 중첩시켜 버렸기 때문입니다.

모듈화

모듈화는 AIK에서 나타나 있듯이 구성 요소를 하나하나 따로 설치하거나 제거할 수 있다는 뜻입니다. 어떤 구성요소를 설치하기 위해 운영체제 자체를 분해할 필요 없이 특정한 모듈만 준비하여 바로 설치할 수 있고, 아예 그러한 작업을 설치 과정에서 자동으로 처리할 수도 있음을 뜻합니다.

이러한 모듈화는 설치 과정을 단순하게 만들어주며, 또한 설치한 뒤에도 유지 보수가 편해집니다. 그 모듈에 대한 파일만 지니고 해당 기능을 추가할 수 있기 때문입니다.

실제로 한국 테마(한국 로컬팩)나 한국어 언어팩은 캐비넷 파일(.cab)로 제공하고 있으며, 이것은 이미지 파일 관리자 등을 이용하여 윈도 이미지 파일에 추가할 수 있습니다. 이것은 윈도PE 2.0에도 마찬가지로 적용되어 윈도PE를 위한 언어팩을 이용하여 한국어로 메시지를 출력하게 바꿀 수 있습니다. 언뜻 보면 대단히 복잡해 보이지만, 실제로는 레고 블럭처럼 하나하나 쌓아서 만드는 OS로도 볼 수 있습니다.

개인적으로 툴의 크기가 너무 비대한 점을 제외한다면 마음에 듭니다.

상속

윈도7과 상속에 대해서는 잘 알지 못합니다. 분명히 이 개념도 어딘가에 쓰였으리라 여겨지는데 도통 모르겠더군요. 어쩌면 제가 상속에 대해 잘 모르기 때문에 찾지 못한 것일 수도 있습니다.

그밖에 이야기

윈도7을 자꾸 재설치하면서 느끼는 거지만, 설치 프로그램 하나는 기가 막히게 잘 만들었습니다. 이번에 비스타도 설치해 봤습니다. 그런데 간혹 알 수 없는 오류가 나는 때가 있었죠. 버추얼박스 문제라고 생각해서 버추얼박스도 다시 설치해 봤지만, 여전히 몇 차례 다시 설치하면 디스크 에러가 뜨더군요. 그런데 윈도7의 경우에는 사흘에 한 번꼴로 다시 설치함에도 거의 오류가 없습니다.

문제는 재설치만 하다 보니 정작 윈도7 자체를 사용하지 않고 있다는 점이지요. ^^a

 

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)로 응답 파일을 열려면 우선 이미지를 불러온 뒤에 하는 편이 좋다. 그런데 막상 불러오고 나서 보니 이 응답 파일을 어떻게 만들고 고쳐야 하는지를 알 수 없었다. 결국 사용자 설명서 기능을 겸하고 있는 테크넷에 의존하기로 했다.

먼저 AIK를 이루는 각 구성요소의 이름이나 용어 등에 대해 알아보기로 하자.

  • 참고 : 이 글은 AIK7을 설치했다고 가정하고 설명한다. 그러므로 미리 AIK를 설치해 두는 것이 좋다.

용어

이 용어는 테크넷 라이브러리 및 WAIK.chm 파일을 참조하여 번역/수정하였습니다.

  • 응답 파일 (Answer file) :
    윈도 비스타/윈도 7의 설치 대화 상자에 대한 응답을 스크립팅[각주:1] Windows 설치용 응답 파일은 일반적으로 Unattend.xml 또는 AutoUnattend.xml(대문자/소문자 구별 없음)라는 파일명을 가지며, Windows SIM(Windows 시스템 이미지 관리자) 또는 CPI API(구성요소 플랫폼 인터페이스 API)를 사용하여 응답 파일을 만들고 고칠 수 있다.
  • 카탈로그 파일 (Catalog file) :
    윈도 이미지의 모든 설정과 패키지의 상태를 저장한 이진 파일로서 확장자는 .CLG 이다. 카탈로그를 만들 때 윈도 이미지(.wim)의 모든 설정 목록을 응답 처리합니다. 다시 말해 설치 과정에서 일어날 수 있는 요청에 대한 응답을 처리한다는 뜻입니다. 윈도 이미지가 바뀌면 카탈로그도 바뀌어야 합니다.
  • 구성 요소 (Component) :
    특정 Windows 기능이나 그 기능의 일부에 대한 설정, 리소스 및 파일을 지정하는 윈도 운영 체제의 일부를 구성요소라고 부른다.
  • 구성 단계 (Configuration pass) :
    윈도 설치의 한 단계이다. 윈도 운영체제의 각 부분(구성요소)은 서로 다른 구성 단계를 거쳐 설치합니다. 그러한 하나 이상의 구성 단계에 적용할 무인 설치를 설정할 수 있습니다.
  • 구성 집합 (Configuration set) :
    사전 설치 과정(preinstallation process)을 제어하고 제조업체의 사용자 지정 정보를 정의하는 필수 파일이 들어 있는 파일 및 폴더 구조입니다.
  • 배포 공유 (Distribution share) :
    설치하는 윈도 제품의 원본 파일이 들어 있는 폴더입니다. 이 폴더에 추가 장치 드라이버와 응용 프로그램 파일도 들어 있을 수 있습니다. 이 폴더는 수동으로 또는 Windows SIM(시스템 이미지 관리자)을 사용하여 만들 수 있습니다.
  • 드라이버 경로 (Driver path) : 하드웨어 장치가 제대로 작동할 수 있도록 하는 소프트웨어의 검색 위치를 나타내는 경로이다.
  • 이미지 값 (Image value) : 윈도 이미지에서 구성 설정의 값.
  • 목록 항목 (List item) :
    여러 항목을 포함할 수 있는 구성 설정입니다. 예컨대 인터넷 익스플로러 즐겨찾기 목록은 0개 이상의 즐겨찾기 항목을 포함할 수 있습니다.
  • 패키지 (Package) :
    윈도 기능을 변경할 수 있게 마이크로소프트에서 OEM 고객에게 제공하는 파일 모음입니다. 패키지 종류에는 서비스 팩, 보안 업데이트, 언어 팩, 핫픽스 등이 있습니다. 패키지의 예로는 프로덕트(Product), 윈도 파운데이션(Windows Foundation) 및 기능팩(FeaturePack) 패키지가 있습니다.
  • 설정 (Setting) : 프로그램 또는 운영체제 구성의 매개 변수.
  • 동기 명령 (Synchronous command) :
    윈도를 설치하는 동안 응용 프로그램 또는 그밖에 다른 실행 파일을 실행할 수 있도록 합니다. 명령이 실행되는 단계를 지정할 수 있습니다.
  • 응답 파일 유효성 검사 (Validate answer file) :
    응답 파일을 윈도 SIM에서 저장하기 전에 먼저 그 설정을 검사해야 합니다. 응답 파일의 유효성 검사에 성공하면 응답 파일의 모든 설정값을 윈도 이미지에 적용할 수 있습니다.
  • 윈도 기능 (Windows feature) : 사용하거나 사용할 수 없게 설정할 수 있는 윈도의 선택적 기능.
  • 윈도 이미지 파일 (Windows image file) :
    디스크 볼륨에서 윈도 설치본을 복제하는 폴더 및 파일 모음이 들어 있는 한 개의 압축 파일.

Windows SIM 아키텍처 

Windows 시스템 이미지 관리자 아키텍처

윈도 SIM이 동작하는 방식을 보여주는 그림 (저작권은 마이크로소프트에 있습니다.)

윈도 SIM이 동작하는 방식을 보여주는 그림 (저작권은 마이크로소프트에 있습니다.)

Windows 시스템 이미지 관리자의 구성

윈도 SIM 창

다음 섹션에서는 Windows SIM 창을 설명합니다.

창은 위 그림처럼 구성되어 있습니다.

  • 배포 공유 (Distribution Share)
  • 응답 파일 (Answer file)
  • 속성 (Properties)
  • 윈도 이미지 (Windows Image)
  • 메시지 (Messages)

각각 자신의 이름이 맞는 내용이 나타납니다. 배포 공유 창에는 배포에 포함할 내용(설치하는 윈도 제품의 원본 파일의 내용)이 들어 있고, 응답 파일 창에는 읽어온 응답 파일을 구성하는 설정 내용이 들어 있습니다. 윈도 이미지 창에는 읽어온 윈도 이미지에 포함된 설정 내용을 포함하고 있습니다. 속성 창에는 응답 파일 창과 윈도 이미지 창에서 선택한 요소에 대한 속성을 나타내 주며, 메시지는 각각의 상황이나 명령 등에 대한 알림말을 나타내 줍니다.

윈도 이미지 창과 응답 파일 창

윈도 이미지 창에는 구성요소와 패키지가 보이며, 응답 파일 창에도 구성요소와 패키지가 보입니다. 이것은 둘 다 같은 이름을 가지게 됩니다. 다시 말해 응답 파일 창에 x86_Microsoft-Windows-Setup_neutral 구성요소가 있다면 윈도 이미지 창에서 그것을 찾을 수 있어야 합니다. 그것을 찾지 못한다면 나중에 응답 파일 유효성 검사에서 오류가 나타나게 됩니다.

반대로 윈도 이미지 창에서 구성요소 하나를 선택하여 응답 파일 창으로 보낼 수 있습니다.

위의 그림에서는 응답 파일을 새로 만들기하여 아무런 응답도 없는 상태이다.

이때 구성요소는 x86_Microsoft-Windows-Shell-Setup_neutral로 하였고, 하위 항목으로 FirstLogonCommands(첫 실행 때 실행할 프로그램)를 선택했다. 이 항목은 WinNT.sif 파일에서 [GuiRunOnce] 항목과 비슷하다.

이때 이 항목에서 마우스 오른쪽 클릭하면 여러 메뉴 가운데 Add Setting to Pass 7 oobeSystem만 활성화된다. 이것은 곧 구성 단계 7에만 포함될 수 있고 다른 곳에는 포함될 수 없다는 뜻이다. 만약 이것은 구성 단계 6, 곧 Pass 6 auditUser에 포함시키면 나중에 응답 파일 유효성 검사에서 오류가 있다고 알려주게 된다.

위 그림에서는 앞의 그림과 같은 구성요소인데, 하위 항목이 ClientApplications로 하였더니, 메뉴가 3개 활성화된다. 이처럼 각각의 구성요소 또는 그 하위항목에 따라서 활성화되는 응답 파일의 구성요소가 다르다. 이것을 잘 끼워맞춰서 우리가 원하는 답을 구해야 한다.

아울러 이때 알아둘 점은 윈도 이미지 창에서는 아무리 해도 속성을 고칠 수 없다. 다시 말해 윈도 이미지 창에서 구성요소를 선택했을 때 속성 창에 나타나는 내용은 기본값이며, 또한 읽기전용 속성이다. 이것을 고치고 싶으면 응답 파일 항목으로 보낸 다음 그 응답파일 항목에서 고쳐야 한다.

다음 할 일

이제 이것을 이용하여 설치 응답 파일을 만들어 보기로 하자.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 스크립팅은 스크립트를 이용한 작업(스크립트 작업) 또는 스크립트 작업처럼 일괄적으로 처리되는 작업을 가리키며, 그러한 작업 환경(스크립팅 환경)을 가리킬 때도 있다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)는 흔히 AIK로 불리며, 윈도 설치에 필요한 여러 가지를 설정할 수 있게 해 주는 프로그램입니다. 물론 윈도2000이나 윈도XP에도 자동 설치 도구가 있었으나, 그것은 윈도 설치 디스크(흔히 윈도CD)에 있는 DEPLOY.CAB 파일에 포함되어 있었다. 그것은 윈도CD의 <윈도CD>\SUPPORT\TOOLS 폴더에 들어 있다. 정확한 윈도 배포 도구의 파일명은 setupmgr.exe 입니다.

그런데 이러한 자동 설치 도구에서 만들어내는 결과물은 무엇일까? 그것은 바로 응답 파일(answer file)입니다. 그렇게 만들어진 응답 파일에는 설치 과정에서 설치 프로그램이 사용자에게 묻는 바를 미리 지정할 수 있습니다.

지금까지 윈도7의 설치 폴더를 바꾸어 보고자 노력했지만 별 다른 성과가 없었습니다. 기대를 걸었던 vLite에서도 그러한 설정이 존재하지 않았지요. 응답 파일이나 자동 설치, 무인 설치 등을 검색해도 설치한 다음에 사용자 폴더를 바꾸는 방법만 검색될 뿐이었다. 예컨대 ArchVista 님의 사용자 폴더 요소들(문서, 사진, 동영상...)을 옮기기 등이 그것입니다.

그러다가 우연히 환경변수를 검색하게 되었습니다. 그때 나온 검색 결과 가운데 하나가 테크넷의 UserData 문서FolderLocations 문서인데, 응답 파일을 직접 만들면 해결될 수도 있다는 실마리를 얻게 되었습니다.[각주:1]

UserData 문서에 있는 XML 예제

UserData 문서에 있는 XML 예제

FolderLocations 문서에 있는 XML 예제

FolderLocations 문서에 있는 XML 예제

특히 FolderLocations 문서는 나에게 중요한 힌트를 주었다.

  • 참고 : 이 문서에서는 실제 응답 파일을 작성하지는 않습니다. 이 문서는 어디까지나 안내문실험 소개입니다.

AIK7과 응답 파일 실험에 쓰인 하드웨어 환경 및 프로그램

기본적으로 윈도7의 최소 요구사항 가운데 다음 두 가지를 만족한다고 가정하고 실험하였다.

  • RAM 1G(32비트), RAM 2G(64비트)
  • HDD 16G(32비트), HDD 20G(64비트)

자동 설치 도구는 Windows Automated Installation Kit for Windows 7를 사용하였다. 정확하게는 Windows System Image Manager(흔히 Windows SIM)을 사용하였다. AIK7을 위해 추가 공간이 필요하며, 또한 작업을 위해 5GB 정도가 더 필요하다.

마지막으로 설치 환경으로 쓰인 버추얼박스 버전은 2009년 5월 10일 현재 최신 버전인 2.2.2판을 사용하였다.

말뜻

  • 자동 설치 도구 : 응용 프로그램이나 운영체제를 설치하기에 앞서 설치 환경이나 사용자 설정 등을 미리 지정할 수 있게 해주는 프로그램이다. 대표적인 것이 Windows Automated Installation Kit for Windows 7이다.
  • 응답 파일 : 설치 프로그램(Install program)이나 설정 프로그램(Setup program)에서 사용하는 환경설정 파일로서, 설치 프로그램 등에서 사용자에게 묻는 질문에 대한 답을 미리 지정하여 놓아 설치 작업 등의 편의를 도모하는 역할을 한다. 윈도 계열의 WINNT.SIF 파일 또는 Unattend.txt이나 인스톨 쉴드(Install Shield) 계열의 Setup.iss 파일 등이 이에 해당한다.
  • 자동 설치(Automatic Installation) : 일반적으로 사용자는 프로그램이나 운영체제를 설치할 때 컴퓨터 앞에서 작업해야 한다. 이는 설치 프로그램이 사용자에게 응답을 요구하는 대화형이기 때문이다. 그런데 그러한 설치 프로그램에서 사용자에게 요구하는 응답은 일정한 틀을 갖추고 있기 때문에 그에 맞추어 미리 응답 파일을 만들어 두고 그 응답 파일에서 응답을 읽어 들여 처리하도록 만들 수 있다. 이 원리를 이용하여 설치 작업을 하는 것을 자동 설치 또는 무인 설치(Unattend Installation ; 직역하면 지켜보지 않는 설치이다.)라고 부른다.

윈도 SIM

Windows System Image Manager(흔히 Windows SIM)은 이름 그대로 윈도의 시스템 이미지를 관리하는 프로그램입니다. 그럼 윈도의 시스템 이미지는? 바로 WiM 파일을 일컫습니다. 윈도 비스타(또는 Windows Fundamentals for Legacy PCs)에서 채용된 디스크 이미지를 말합니다.

아무튼 이 윈도 SIM은 구이(GUI) 환경이라서 텍스트 위주의 dism, oscdimg, imagex와는 달리 좀 더 사용하기 편합니다. 아무튼 모든 작업을 그래픽 환경에서 할 수 있도록 만들어졌기 때문에 좀 더 편할 수밖에요.

Windows System Image Manager 첫 실행 화면

Windows System Image Manager 첫 실행 화면

위 그림의 중간 부분에 보면 Answer File이라는 부분에 응답 파일의 정보가 나타난다.

응답 파일 불러오기 대화상자

응답 파일 불러오기 대화상자

응답 파일을 불러온 뒤의 Windows SIM 화면

응답 파일을 불러온 뒤의 Windows SIM 화면

오른쪽 아래에 Messages 부분에 오류가 하나 있다. 이것은 이 응답 파일에 윈도 이미지에 대한 정보가 없다는 뜻이다. 이 오류를 보고 싶지 않다면 윈도 이미지 파일을 먼저 불러온 뒤에 응답 파일을 불러오면 된다.

다음 할 일

이제 이것을 이용하여 설치 응답 파일을 만들어 보기로 하자.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 환경변수 가운데 UserData로 검색한 다음 다시 Folder로 검색했다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

글 보관함