Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)로 응답 파일을 열려면 우선 이미지를 불러온 뒤에 하는 편이 좋다. 그런데 막상 불러오고 나서 보니 이 응답 파일을 어떻게 만들고 고쳐야 하는지를 알 수 없었다. 결국 사용자 설명서 기능을 겸하고 있는 테크넷에 의존하기로 했다.
- 참고 1 : 이 글은 AIK7을 설치했다고 가정하고 설명합니다. 그러므로 미리 AIK를 설치해 두는 것이 좋습니다.
- 참고 2 : 이 문서는 그림이 많으므로 로딩이 늦더라도 참고 기다려 주십시오.
- 주의 : 이 글은 버추얼박스 등의 가상머신에서 윈도7을 새로 설치한다는 가정 아래 쓰인 글입니다. 윈도7을 하드디스크에 직접 설치할 때에는 아무런 보증을 하지 않습니다.
기본 환경
기본적으로 윈도7의 최소 요구사항 가운데 다음 두 가지를 만족한다고 가정하고 실험하였다.
- RAM 1G(32비트), RAM 2G(64비트)
- HDD 40G(32/64비트)
자동 설치 도구는 Windows Automated Installation Kit for Windows 7를 사용하였다. 정확하게는 Windows System Image Manager(흔히 Windows SIM; 시스템 이미지 관리자)을 사용하였다. AIK7을 위해 추가 공간이 필요하며, 또한 작업을 위해 9GB 정도가 더 필요하다.
- 실험에 쓰일 응답 파일은 %ProgramFiles%\Windows AIK\Samples 폴더에 있는 autounattend_sample.xml의 이름을 바꾸어 사용하였다.
- 실험에 쓰일 설치본은 앞서 구한 윈도7 RC 7100 디스크 이미지 파일 및 거기에 한글을 덧입힌 것을 이용하였다. 하나는 기본적인 상황을 알기 위해서이고, 다른 하나는 내가 최종적으로 설치할 것이다.
- 윈도 시스템 이미지 관리자에 대한 설명 등은 테크넷과 AIK7에 포함된 도움말 파일을 참조하였다.
실험 목표
일단 이것도 실험이니 목표가 있어야겠다.
- 제품 번호를 자동 입력
- 사용자 이름과 컴퓨터 이름을 자동 입력
- 프로그램 폴더와 사용자 폴더를 D 드라이브로 옮겨보자.
윈도 시스템 이미지 관리자와 구성 단계 및 구성 요소
파일 읽어오기
윈도 시스템 이미지 관리자를 실행하여 윈도 이미지 파일과 응답 파일을 불러온다. 이미지를 먼저 불러오고, 나중에 응답 파일을 불러온다.
반드시 작업할 에디션을 선택한다.
윈도 이미지 파일을 읽어올 때는 작업할 에디션을 선택해야 한다.
응답 파일과 윈도 이미지를 연결하겠느냐고 묻는 알림말
Autounattend.xml 파일을 읽어들이면 위와 같은 안내말이 나타난다. 알림말의 내용은 읽어온 응답 파일을 방금 선택했던 에디션(여기서는 Windows 7 UNTILMATE Windows image)에 연결하겠느냐고 묻고 있다. 연결하지 않으려면 아니오를 클릭하라고 하고 있다.
여기에서 아니오를 눌렀다.
윈도 이미지 파일과 응답 파일을 불러온 화면
- 주의 : 모든 작업이 끝난 뒤에는 반드시 이미지 파일을 닫은 뒤에 윈도 시스템 이미지 관리자를 종료해야 한다. 그렇지 않으면 임시 폴더에 윈도 이미지 파일을 마운트 한 상태로 남겨두게 된다. 그 용량이 무려 8기가바이트를 넘어가므로 주의하기 바랍니다.
- 참고 : 윈도 이미지(Windows Image) 파일에 대한 정보가 없어도 응답 파일은 정상 작동한다. 다만 여기에서는 구성 요소를 추가할 때 윈도 이미지에 나타나는 구성 요소(Components)를 참조하여 추가하면 쉽기 때문에 윈도 이미지를 먼저 읽어들였다.
구성 단계 및 구성 요소
구성 단게는 다음과 같으며, 그에 대한 자세한 설명은 테크넷(한국어)을 참조하기 바랍니다.
- windowsPE
Windows PE 옵션과 기본 Windows 설치 옵션을 구성합니다.
- offlineServicing
Windows 이미지에 업데이트를 적용합니다. 또한 소프트웨어 픽스, 언어 팩, 기타 보안 업데이트 등의 패키지를 적용합니다.
- specialize
시스템별 정보를 만들고 적용합니다. 예를 들어 네트워크 설정, 국가별 설정 및 도메인 정보를 구성할 수 있습니다.
- generalize
참조 이미지에서 유지해야 하는 다른 Windows 설정을 구성할 수 있을 뿐만 아니라 sysprep /generalize 명령을 최소로 구성할 수 있도록 합니다.
generalize 단계는 sysprep /generalize 명령을 실행하는 경우에만 실행됩니다.
- auditSystem
사용자가 감사 모드로 컴퓨터에 로그온하기 전에 Windows가 시스템 컨텍스트에서 실행되는 동안 무인 설치 설정을 처리합니다. auditSystem 단계는 감사 모드로 부팅하는 경우에만 실행됩니다.
- auditUser
사용자가 감사 모드로 컴퓨터에 로그온한 후에 무인 설치 설정을 처리합니다. auditUser 단계는 감사 모드로 부팅하는 경우에만 실행됩니다.
- oobeSystem
Windows 시작(흔히 "설치 완료된 뒤 첫 번째 실행"이라고 부른다)이 실행되기 전에 Windows에 설정을 적용합니다.
윈도 시스템 이미지 관리자에서는 위에서 설명하는 구성 단계마다 구성 요소를 설정할 수 있게 되어 있다.
응답 파일을 불러와서 모두 펼친 화면
위의 그림을 보면 구성 요소 항목(Components)에서 구성 단계가 1부터 7단계까지 있는데, 앞서 설명한 바와 같다. 각각의 구성 단계는 윈도7을 설치할 때 generalize 구성 단계를 제외한 나머지 여섯 단계가 순서대로 이루어지게 되며, 각각 미리 구성한 바를 따르게 된다.
실험 작업
제품 번호 입력 1
제품 번호(Product Key)는 windowsPE 구성 단계에서 작업하게 된다. 마침 응답 파일을 불러와서 모두 펼친 화면은 제품 번호를 입력하려고 선택한 화면이다. windowsPE 구성 단계에서 x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey 항목이다. 이때 x86_Microsoft-Windows-Setup_neutral에서 실제 구성 요소 이름은 자주색으로 표시한 부분이고, 앞의 x86과 뒤의 뉴트럴(neutral)은 일종의 꼬리표(tag)이다. 앞으로는 태그 떼고 표기하겠다.
속성 창 내용
그때 속성 창을 보면 위 그림처럼 보인다. 참고로 아랫부분은 하얀 공백이라서 삭제했다.
<-- REPLACE WITH PRODUC라는 부분은 <-- REPLACE WITH PRODUCT KEY -->라는 메시지가 잘린 것이다. 이것은 메시지 창에서 오류가 있음을 나타내고 있다.
ProductKey 항목에서 유효성 오류가 있다고 알리고 있다.
위와 같이 ProductKey 항목의 Key 요소에서 오류가 있음을 알려주고 있다. 위 속성 창에 윈도7 RC 버전을 받을 때 얻은 등록 번호를 입력해 준다.
제품 번호 입력 2
그런데 ProductKey라는 이름은 다른 곳에 또 있다. 제품 번호 입력 1에서 넣은 값은 설치 과정에서 필요한 값이고, 여기 제품 번호 입력 2에서 쓰는 값은 액티베이션(Activate Windows)에서 쓰는 값이다. 설치만 하겠다면 이 값을 꼭 넣을 필요는 없다. 어차피 설치 과정에서 필요한 값은 이미 넣었고 액티베이션은 설치한 뒤에야 하게 되니 말이다. 또한 올바른 제품번호을 가지고 있지 않다면 이 항목은 반드시 비워 두기 바란다.
이 ProductKey 값은 specialize 구성 단계에서 Microsoft-Windows-Shell-Setup\ProductKey 키에 넣게 된다. 다만 윈도 이미지 창에서는 찾을 수 없었고, 테크넷 Microsoft-Windows-Shell-Setup▶ProductKey에서 찾을 수 있었다. 윈도 이미지 창에서 찾을 수 없었던 이유는 이것이 항목이 아닌 키이기 때문이다. 윈도 이미지 창에는 항목만 나타나고 키는 나타나지 않는다.
응답 파일의 specialize 구성단계와 Microsoft-Windows-Shell-Setup 항목의 속성
Microsoft-Windows-Shell-Setup 항목의 속성을 보면 ProductKey가 존재한다. 여기에 알맞은 값을 넣어 주면 된다. 넣지 않아도 되며, Microsoft-Windows-Setup\UserData\ProductKey 항목의 값과 달라도 된다.
이름과 소속
참고로 이름(FullName)과 소속(Organization)은 UserData 항목에서 따로 하위 항목이 없다. 그렇다면 당연히 그 항목에서 하위 항목이 아닌 키 값으로 존재함을 뜻한다. 이것을 확인하려면 이미지 파일 창을 살펴보아야 한다.
Windows Image 창의 내용
위의 Windows Image 창의 내용에서 확인했듯이 windowsPE 구성 단계에서 Microsoft-Windows-Setup\UserData 항목에는 하위 항목이 ProductKey 항목뿐이다.
속성에는 이름(FullName)과 소속(Organization)을 각자 넣어 주자. 참고로 배포용으로 만들 생각이면 넣지 않는 것이 좋다.
사용자 이름과 컴퓨터 이름을 자동 입력
사용자 이름과 컴퓨터 이름은 설치 과정에서 넣게 되는 사용자 이름과 컴퓨터 이름을 가리킨다.
설치 과정에서 사용자 이름과 컴퓨터 이름을 입력하는 화면
컴퓨터 이름은 쉽게 찾을 수 있었다. 응답 파일의 specialize 구성단계와 Microsoft-Windows-Shell-Setup 항목의 속성 그림에서 속성 창에 보면 ComputerName 키가 있다. 여기에 컴퓨터 이름을 넣으면 된다. 자신이 원하는 컴퓨터 이름을 넣으면 된다. 배포용으로 만들 생각이면 평범하게 User-PC라고 하는 것이 좋다.
그런데 UserName이라는 이름은 잘 보이지 않았다. 아니 UserName이라는 이름은 많이 보였으나, 모두 ComputerName 키와 함께 쓰이는 이름이 아니었다. 그러다가 위의 설치 과정에서 사용자 이름과 컴퓨터 이름을 입력하는 화면을 문득 바라보다가 가능성이 있는 이름을 알게 되었다. 그것은 account였다. 위 그림에서 파란 글씨로 나타나 있다.
Microsoft-Windows-Shell-Setup\UserAccounts\LocalAccounts 항목을 응답 파일에 추가해야 한다. 이때 실제로 설치하려면 auditSystem 구성 단계가 아닌 oobeSystem 구성 단계로 해야 한다.
윈도 이미지 창에서 응답 파일 창으로 항목을 추가하는 작업
윈도 이미지 창에서 응답 파일 창으로 항목을 추가하는 작업 일부
위의 그림처럼 윈도 이미지 창에서 응답 파일 창에 추가할 항목을 선택하여 오른쪽 클릭한다. 그 뒤 활성화된 항목을 선택(Add Setting to Pass 7 oobeSystem)하면 자동으로 추가해 준다. 그게 아니라면 맨 아래에 있는 Copy를 선택하여 클립보드에 복사하였다가 응답 파일 창에 붙여넣기를 하면 된다.
윈도 이미지 창에서 붙여넣기한 항목과 그 속성
이때 붙여넣기를 하면 그 색깔이 위와 같이 옅은색을 띈다. 테크넷 LocalAccount 문서의 설명에 따르면, 윈도 설치 과정에서 만드는 계정이라고 한다. UserAccounts 항목에는 그밖에도 DomainAccounts 항목과 AdministratorPassword 항목이 있으나 둘 다 윈도 설치 과정의 ComputerName 키와는 관련이 없었다. 그 부분에 대해서는 테크넷 Settings to Use for Automating Windows Welcome 문서를 참고하기 바랍니다.
아무튼 LocalAccount 항목의 속성과 키에 대해 살펴보자. 아래의 키는 모두 255자까지 기록할 수 있다.
- Name (이름) : LocalAccount 항목에서 지정할 사용자 이름.
- Group (그룹) : LocalAccount 항목에서 새로운 사용자가 지정될 때 추가될 그룹의 이름으로, 이미 존재하는 그룹의 이름을 지정해야 한다.
- DisplayName (보여줄 이름) : LocalAccount 항목에서 지정한 사용자 이름을 감추고 밖으로 보여줄 이름
- Description (설명) : LocalAccount 항목에서 지정한 계정의 설명을 적는다.
- Password (암호) 항목 : LocalAccount 항목과 짝이 되는 암호를 지정한다. 암호를 지정하면 설치 과정에서는 암호 입력을 감추게 된다.
값을 지정하지 않으면 위 윈도 이미지 창에서 붙여넣기한 항목과 그 속성 그림과 같이 옅은색으로 있게 된다.
이때 Name은 반드시 지정해야 한다. Group은 다음과 같은 값이 있으므로, 그 가운데 골라서 넣으면 된다.
- AccountOperators
- Administrators
- BackupOperators
- CryptoOperators
- DCOMUsers
- Guests
- IUsers
- NetworkConfigurationOperators
- PerfLoggingUsers
- PerfMonitoringUsers
- PowerUsers
- PrintOperators
- RemoteDesktopUsers
- Replicator
- SystemOperators
- Users
한편 LocalAccount 항목은 목록 항목이므로 여러 개를 한꺼번에 생성할 수도 있다. 만약 배포용으로 1개 계정만 생성한다면 User와 같은 평범한 이름을 넣는 것이 좋다.
그 다음에 암호도 함께 지정해 두는 것이 보안상 유리하다. 하위키인 PassWord에 암호를 입력하면 된다. 지금 넣지 않으면 어차피 설치 과정에서 물어보므로 미리 지정하는 것이 낫다고 생각한다.
암호 지정 화면
암호 지정 화면에서 속성 창을 살펴보면 윗부분에 PlainText 요소가 true로 지정되어 있다. 이 요소는 아래 Value 값이 평문(암호문이 아닌 문장)으로 지정된다는 뜻이다. 이것이 나중에 저장될 때는 PlainText 요소는 false로 바뀌면 Value 요소의 값은 암호화된 값(암호문)으로 바뀌게 된다. AutoUnattend.xml 파일을 직접 고칠 때에는 PlainText 요소의 값을 반드시 true로 하여 암호를 입력해야 한다.
프로그램 폴더와 사용자 폴더를 위치 바꾸기
프로그램 폴더와 사용자 폴더의 위치는 Microsoft-Windows-Shell-Setup\FolderLocations 항목에서 지정한다. FolderLocations 항목에는 ProfilesDirectory 키와 ProgramData 키가 존재한다. 이 항목을 응답 파일에 추가하여 두 키에 값을 지정하면 된다.
ProfilesDirectory 키가 지정되지 않으면 %systemdrive%\Users 폴더를 가리키며, ProgramData 키가 지정되지 않으면 %systemdrive%\ProgramData 폴더를 가리키게 된다.
ProfilesDirectory 키와 ProgramData 키를 지정한 화면
다만 이 FolderLocations 항목에 대해서는 약간의 문제가 있는 듯이 보인다. 테크넷의 FolderLocations 문서에서 이 값을 바꾸면 업데이트나 핫픽스의 적용에 실패할 수도 있다고 밝히고 있다.
유효성 검사
지금까지 작성한 응답 파일의 유효성을 검사한 뒤 저장합니다. 유효성 검사는 Tools 메뉴에서 Validate Answer File을 선택하면 됩니다.
유효성 검사
지금까지 제대로 했다면 아래 그림처럼 Messages 창에 No warnings or errors.라는 메시지가 나타나야 합니다.
만약에 오류가 있다고 한다면 위에서부터 차근차근 읽으면서 검토해 보기 바랍니다.
추가 사항
테크넷의 Windows Vista 배포 단계별 가이드를 참조할 때 응답 파일에 넣을 추가 항목은 다음과 같다고 여겨진다. 참고로 윈도7용은 아직 없었다.
-
Windows PE 구성 단계
-
oobeSystem 구성 단계
-
auditSystem 구성 단계
- Microsoft-Windows-Shell-Setup\Autologon : 자동로그인. 참고로 이것은 oobeSystem 구성 단계에 설정할 수도 있다. 이때 앞서 만든 계정 가운데 하나를 골라야 한다.
그밖에도 oobeSystem 구성 단계에서 TimeZone을 설정할 필요가 있습니다.
- Microsoft-Windows-Shell-Setup\TimeZone : 넣을 값은 Korea Standard Time 이다. 이 값이 공백이면 설치 과정에서 물어 본다.
타임존 설정에 필요한 값은 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 레지스트리를 참조하면 됩니다.
설치 및 확인
이미지 만들기 및 가상머신 시동
먼저 이미지 파일을 만들어서 버추얼박스에 그 이미지를 등록합니다. 이미지를 만들 때에는 윈도7 CD나 ISO 이미지에서 윈도 7의 파일을 복사한 뒤 CD의 루트 디렉터리가 될 곳에 응답 파일(AutoUnattend.xml 파일)을 복사한 뒤에 작업합니다.
응답 파일(AutoUnattend.xml 파일)을 윈도7 작업 폴더에 복사한 화면
그 뒤에 그 이미지를 CD 이미지로서 가상머신에서 불러들여 부팅하면 됩니다.
설치 과정
가상머신에서 CD 부팅을 시작한 뒤 대략 1~2분이 지나자 설치할 곳을 묻는 화면, 곧 곧 설치 파티션을 설정하는 화면이 나타난다.
하드디스크 파티션 설정 및 설치 드라이브 선택 화면
위의 그림처럼 40기가 하드 디스크를 20958 MB와 20000 MB로 나누었다. 그러자 시스템/C 드라이브는 각각 100 MB와 20858 MB로 나뉘었다.
그리고 위의 그림처럼 반드시 Patition 2를 선택하여 설치해야 한다. 현재 하늘색으로 선택된 곳이 설치할 드라이브이다.
설치한 직후 OOBE를 거치고 바탕화면이 나타난 뒤의 화면 (1024×768 화면)
설치가 끝나고 OOBE 작업까지 마치면 바탕화면이 나타난다. 그런데 역시나 업데이트 설치가 가장 먼저 나타난다. ^^a
평가 및 실험 결과
4시 53분쯤에 시작하여 5시 20분쯤에 끝난 이번 설치는 설치 시간이 약 27분으로 종전 40~50분쯤에서 확연히 줄어서 좋았다. 하지만 키보드 설정 등을 제대로 하지 않아 처음에 한글 입력에 애를 먹었다. 결국 한국어 사용자 또는 한국 사용자를 위해서는 키보드, 언어 설정 등이 필요함을 절실하게 느꼈다.
앞서 세운 목표를 다시 새겨보자.
- 제품 번호를 자동 입력
- 사용자 이름과 컴퓨터 이름을 자동 입력
- 프로그램 폴더와 사용자 폴더를 D 드라이브로 옮기기
설치 과정
설치 과정에서 제품 번호가 자동으로 입력되어 사용자에게 보이지 않았다(목표 1 달성).
또한 사용자 이름과 컴퓨터 이름도 자동으로 입력된 듯이 보인다(목표 2 달성).
그러나 프로그램 폴더와 사용자 폴더를 D 드라이브로 옮기는 작업에 대해서는 알 수 없었다(목표 3 미확인).
시동 과정
일단 윈도7을 종료했다가 다시 시동했다. 시동 과정에서 자동로그인을 설정해 두었기 때문에 암호를 묻는 화면이 나타나지 않았다. 오랫동안 보던 해바라기를 보지 않자 왠지 싱숭생숭했다. ^^a
이번에는 위와 같은 해바라기 그림을 보지 않았다.
문제는 위와 같은 로그인 화면이 보이지 않자 내가 사용자 이름을 제대로 입력했는지 알기가 힘들었다. ^^;
사용자 계정명(사용자 이름)을 보여주는 화면
그러다가 시작 단추를 클릭하자 사용자 이름을 보게 되었다. 지금까지 줄기차게 봐 왔음에도 그게 사용자 이름이라고 인식하지 못했던 것이다. 위 그림에서 노랑색 네모 표시된 곳이다(목표 2 달성 확인).
그 뒤 숨김 파일 시스템 폴더 등을 보이게 폴더 설정을 바꾼 다음 탐색기를 열었다.
탐색기에서 보이는 Users 폴더와 ProgramData 폴더
탐색기에서 숨김 파일 및 시스템 파일을 볼 수 있게 하면 위처럼 Users 폴더와 ProgramData 폴더가 D드라이브에 존재함을 알 수 있다(목표 3 달성 확인).
명령 프롬프트에서 보이는 Users 디렉터리와 ProgramData 디렉터리
명령 프롬프트에서 위와 같이 확인할 수 있다(목표 3 달성 확인).
물론 C 드라이브에 존재하는 Program Files 폴더가 거슬리기는 하지만 어디까지나 그 폴더는 하위 호환성을 위해 존재하는 폴더이다.
오늘까지 딱 1주일 걸려 성공한 자동 설치 응답 파일 설정인데, 막상 끝내고 나서 보니 별거 아니었다. 언제나 그렇듯이 끝내고 보면 콜럼버스의 달걀이다.
관련 문서
내부 문서
외부 문서
이 글은 스프링노트에서 작성되었습니다.