초록
KIWI는 운영 체제 이미지를 생성하는 시스템입니다. 이미지는 파일이 있는 디렉토리로, 운영 체제, 응용 프로그램 및 구성, OS의 파일 시스템 구조, 가능한 추가 메타 데이터 및 이미지 유형에 따라 디스크 기호와 파티션 테이블 데이터도 포함됩니다. KIWI를 사용하여 LiveCD 및 LiveDVD, USB 스틱, VMware처럼 전체 가상 시스템에서 재생할 가상 디스크, Hypervisor에서 반가상화할 XEN 이미지 및 네트워크에서 부팅할 PXE 환경을 생성할 수 있습니다.
KIWI를 사용하여 이미지를 작성하려면 다음과 같은 사전 조건이 필요합니다.
이 작업에 필요한 충분한 디스크 공간을 확보합니다.
KIWI는 다양한 이미지 유형을 대상으로 하여 여러 개의 패키지로 분할됩니다. 어떤 경우든 기본 패키지 kiwi
가 필요합니다. 대상 이미지에 따라 다음과 같은 패키지가 필요합니다.
이미지 유형 |
패키지 이름 |
---|---|
설치 미디어 |
|
가상화 |
|
USB 스틱 |
|
네트워크 클라이언트 |
|
kiwi-doc
패키지를 설치합니다. 일부 구성 예에서 구조 및 컨텐트에 대한 아이디어를 얻을 수 있습니다.
KIWI 구성 파일과 해당 구조를 파악합니다. 이는 RELAX NG 스키마를 기반으로 하며 /usr/share/doc/packages/kiwi/kiwi.html
아래에 있는 kiwi
패키지에서 문서로 작성됩니다. 이 문서는 처음부터 구성 파일을 생성할 경우 또는 요소나 특성을 삽입할 경우 필요합니다.
KIWI의 작성 프로세스는 3단계로 구분됩니다.
물리적 확장(준비). 이 단계에서는 새 파일 시스템의 컨텐트를 준비합니다. 이 단계 중에 루트 디렉토리가 생성되고, 이미지에서 설치된 패키지와 포함된 사용자 구성 파일을 결정합니다.
논리적 확장(생성). 이 단계에서는 성공적인 준비 단계가 필요합니다. 논리적 확장 단계는 첫 번째 단계를 기반으로 운영 체제 이미지를 생성합니다.
배포. 결과 이미지 유형은 하드 디스크에 설치되거나 가상화 시스템(VMware, Qemu, VirtualBox)에서 재생된 것처럼 다양한 방법으로 배포할 수 있습니다.
KIWI에서 이미지 유형을 작성하려면 이미지 설명이 필요합니다. 이미지 설명은 config.xml
파일이 있거나, 아니면 확장자 *.kiwi
가 포함된 파일이 있는 디렉토리입니다.
다음 테이블에는 옵션 정보가 추가로 포함되어 있습니다. 그러나 대부분의 정보는 이후 운영 체제의 기능에서 반드시 필요합니다.
표 17.1. 이미지 설명에 대한 추가 파일 및 디렉토리
파일/디렉토리 |
설명 |
---|---|
|
옵션 하위 디렉토리. 모든 이미지 패키지가 설치된 후에 실행된 Bash 스크립트가 포함됩니다. |
|
물리적 확장을 생성하는 동안 옵션 구성 스크립트 |
|
17.3.2項에서 설명된 각 이미지 설명에 대한 구성 파일 |
|
아카이브, ISO 이미지에만 사용됨 |
|
|
|
AutoYaST에서 생성된 구성 파일 |
|
YaST 처음 부팅 서비스를 제어하는 구성 파일 |
|
준비 단계를 생성하는 동안 옵션 구성 스크립트 |
|
모든 이미지 패키지를 설치한 후에 변경된 기타 디렉토리, 특수 파일 및 스크립트가 포함됩니다. |
이미지 설명에 대한 모든 정보는 중앙 구성 XML 파일 config.xml
에 저장됩니다. KIWI가 실행될 때마다 config.xml
은 RELAX NG 스키마에 대해 검증됩니다(이 스키마 언어에 대한 자세한 내용은 http://www.relaxng.org 참조). 따라서 RELAX NG가 지원되는 XML 편집기를 사용하거나 HTML 파일 /usr/share/doc/packages/kiwi/schema/kiwi.xsd.html
에서 스키마에 대한 설명서를 사용하는 것이 좋습니다.
구성 파일은 여러 부분으로 구성됩니다.
작성자, 연락처 정보 및 간단한 설명에 대한 일부 설명
논리적 확장 단계에 필요한 기본 설정 옵션
사용자, 이름, 홈 디렉토리 및 비밀번호에 대한 정보
리포지토리에 대한 링크
정의된 이미지 유형에 사용된 패키지 목록
RELAX NG 스키마 설명서의 위의 HTML 파일에서 볼 수 있는 중요도가 낮은 기타 정보
파일의 기본사항은 다음 예와 같습니다.
예 17.1. KIWI 구성 파일
<image schemeversion="2.0" name="..."><description type="system">
<author>...</author> <contact>...</contact> <specification>...</specification> </description> <preferences>
<type primary="true" boot="..." flags="...">iso</type> <type boot="..." filesystem="ext3" format="vmdk">vmx</type> <type boot="..." filesystem="ext3">xen</type> <type boot="..." filesystem="squashfs" flags="unified">oem</type> <version>2.7.0</version> <size unit="M">780</size> <packagemanager>zypper</packagemanager> <rpm-check-signatures>False</rpm-check-signatures> <rpm-force>False</rpm-force> <locale>en_US.UTF-8</locale> <oem-swap>no</oem-swap> <oem-boot-title>USB</oem-boot-title> </preferences> <users group="users">
<user name="root" pwd="" home="/root"/> </users> <repository type="rpm-md">
<source path="/home/rpmdir"/> </repository> <packages type="image" patternPackageType="onlyRequired">
<package name="yast2-live-installer"/> <package name="pam"/> <!-- List of packages reduced --> </packages>
모든 KIWI 구성 파일의 루트 요소. 각 파일에는 버전 번호가 필요합니다. 선택적 | |
이 이미지 설명의 작성자에 대한 정보가 들어 있는 필수 설명과, 연락처 주소 및 일부 간단한 설명이 포함됩니다. | |
이 이미지의 버전에 대한 정보가 들어 있는 필수 기본 설정과, 사용된 패키지 관리자, 지원되는 이미지 유형 및 기타 설정이 포함됩니다. | |
선택적 | |
패키지 관리자가 사용한 리포지토리의 필수 목록이 포함됩니다. | |
이미지에 포함된 패키지의 필수 목록이 포함됩니다. |
구성 파일에 대한 자세한 내용은 위의 HTML 페이지에 표시됩니다.
이 절에서는 KIWI를 사용하여 기기를 생성하는 방법에 대해 설명합니다. 어플라이언스는 특정 작업에 대해 특수 설계된 운영 체제입니다. 예를 들어, Office 프로그램에 중점을 두고 기기를 생성할 수 있습니다.
kiwi-doc
패키지의 모든 예에서 이미지를 생성하려면 유효한 설치 원본이 필요합니다. 일반적으로 이러한 예는 네트워크 리소스에 연결됩니다. 네트워크 대역폭이 높을수록 이미지 생성 속도는 빨라집니다. 빠른 네트워크가 없거나 이러한 네트워크를 사용하지 않으려면 로컬 설치 리소스를 생성합니다. 다음을 수행하십시오.
설치 DVD를 수집합니다.
셸을 열고 root
가 됩니다.
로컬 설치 디렉토리에 디렉토리를 생성합니다. 예에서는 일반적으로 /image/CDs/full-
경로를 사용합니다. VERSION
-ARCH
VERSION
및 ARCH
자리 표시자를 각각의 값으로 바꿉니다.
매체를 탑재합니다. DRIVE
자리 표시자를 각 장치(일반적으로 dvd
, cdrom
등)로 바꿉니다.
mount -o loop /dev/DRIVE
/mnt
매체의 모든 컨텐트를 설치 디렉토리로 복사합니다.
cp -a /mnt/* /images/CDs/full-VERSION
-ARCH
로컬 설치 원본을 사용하려면 repository
요소에서 이 설치 원본을 활성화하기만 하면 됩니다.
<repository type="..."> <!-- Remove the comment markers in the next line --> <!-- <source path="/image/CDs/full-VERSION
-ARCH
" --> <source path="opensuse://openSUSE:11.0/standard"/> </repository>
이미지는 실제 디스크에 상주하면서 모든 파티션, 부팅 로더 정보 및 패키지가 포함된 가상 디스크 이미지입니다. ISO 이미지를 생성하려면 다음을 수행하십시오.
kiwi
및 kiwi-doc
패키지를 설치하고 종속성을 모두 해결합니다.
셸을 열고 root
가 됩니다.
/usr/share/doc/packages/kiwi/examples/suse-11.0/suse-oem-preload
디렉토리를 현재 디렉토리에 복사합니다.
config.xml
파일을 열고 repository
요소를 찾습니다. 로컬 설치 원본을 사용할 경우 자세한 내용은 17.4.1項을 참조하십시오.
첫 번째 단계(“물리적 확장”)를 준비하려면 다음 명령을 사용하여 KIWI를 실행합니다.
kiwi --prepare suse-oem-preload --root oem
ISO 이미지를 작성합니다.
kiwi --create oem --type iso --destdir /tmp/myoem
NFS 기능을 사용하여 이미지를 생성하려면 다음을 수행하십시오.
셸을 열고 root
가 됩니다.
/usr/share/doc/packages/kiwi/examples/suse-11.1/suse-oem-preload
디렉토리를 현재 디렉토리로 복사합니다.
suse-oem-preload/config.xml
파일을 열고 type="image"
특성이 있는 packages
요소를 찾습니다.
<packages type="image">
와 </packages>
사이에 다음 줄을 삽입하고 파일을 저장합니다.
<package name="nfs-client"/>
단계 5에서 설명한 대로 이미지를 재작성합니다.
KIWI에 대한 자세한 내용은 다음 문서를 참조하십시오.
http://developer.berlios.de/projects/kiwi—KIWI 홈 페이지
file:///usr/share/doc/packages/kiwi/kiwi.pdf—KIWI 이미지 시스템에 대한 자세한 설명