摘要
KIWI 是一個用於建立作業系統影像的系統。影像就是含有某個檔案的目錄,該檔案中包含作業系統、系統應用程式與組態、作業系統的檔案系統結構、其他可能的中繼資料以及磁碟規格與分割區表資料 (視影像類型而定)。利用 KIWI,您可以建立 LiveCD、LiveDVD、USB 晶片組及可在 VMware 等完全虛擬的系統中播放的虛擬磁碟、用於在監管程式中準虛擬化的 XEN 影像,以及可從網路開機的 PXE 環境。
若要使用 KIWI 建立影像,需要下列先決條件︰
為此操作騰出足夠的空間。
KIWI 分割成幾個套件,可用於產生不同的影像類型。在任何情況下,您都需要基本套件 kiwi。根據目標影像的不同,您需要下列套件︰
|
影像類型 |
套件名稱 |
|---|---|
|
安裝媒體 |
|
|
虛擬化 |
|
|
USB 晶片組 |
|
|
網路用戶端 |
|
安裝 kiwi-doc 套件。您可以尋找一些組態範例,以瞭解其結構與內容。
瞭解 KIWI 組態檔案及其結構。它以 RELAX NG 綱要為基礎,kiwi 套件的 /usr/share/doc/packages/kiwi/kiwi.html 做了說明。當您要從頭建立組態檔案或要插入元素或屬性時,就需要此文件。
KIWI 的建立程序分為三個步驟︰
實體擴充 (準備). 此階段用於準備新檔案系統的內容。在此步驟中會建立根目錄,您需要決定影像上應安裝的套件及應包含的使用者組態檔案。
邏輯擴充 (建立). 此階段要求準備步驟成功完成。邏輯擴充步驟會在上一步驟的基礎上建立作業系統影像。
部署. 您可以使用不同的方法部署產生的影像類型,如將其安裝在硬碟上或透過虛擬化系統 (VMware、Qemu、VirtualBox) 進行播放。
KIWI 需要使用影像描述來建立影像類型。影像描述為至少包含一個 config.xml 檔案或包含副檔名為 *.kiwi 之檔案的目錄。
下表包含了其他選擇性資訊。但是,若要在更高版本的作業系統中運作,您必須提供其中的大部分資訊︰
表格 17.1. 影像描述的其他檔案與目錄¶
|
檔案/目錄 |
描述 |
|---|---|
|
|
選擇性子目錄。包含所有影像套件安裝後所執行的 Bash 程序檔。 |
|
|
建立實體擴充時的選擇性組態程序檔 |
|
|
每個影像描述的組態檔案,節 17.3.2 中做了說明 |
|
|
僅用於 ISO 影像的歸檔 |
|
|
操作 |
|
|
AutoYaST 建立的組態檔案 |
|
|
用於控制 YaST 首次開機服務的組態檔案 |
|
|
建立準備步驟時的選擇性組態程序檔 |
|
|
包含所有影像套件安裝後有變更的其他目錄、特殊檔案及程序檔。 |
config.xml 檔案¶
有關影像描述的所有資訊都儲存於中央組態 XML 檔案 config.xml 中。KIWI 每次執行時都會根據 RELAX NG 綱要來驗證 config.xml (有關此綱要語言的詳細資訊,請參閱 http://www.relaxng.org)。因此,建議使用支援 RELAX NG 功能的適用 XML 編輯器或使用 HTML 檔案 /usr/share/doc/packages/kiwi/schema/kiwi.xsd.html 中有關綱要的文件。
組態檔案由以下幾部分組成︰
一些關於原著者的描述、聯絡人資訊及簡要說明。
邏輯擴充階段所需的優先設定選項。
有關使用者及其名稱、主目錄和密碼的資訊。
指向儲存庫的連結。
用於所定義影像類型的套件清單。
以及其他不太重要的資訊,您可在上文中 HTML 格式的 RELAX NG 綱要文件中檢視。
以下範例顯示了檔案的基本架構︰
範例 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 建立裝置裝置是為執行特定任務而特別設計的作業系統。例如,您可以建立一個側重於辦公室程式的裝置。
kiwi-doc 套件中的所有範例都需要有效的安裝來源才能建立影像。通常,這些範例會連接至網路資源。網路的頻寬越高,建立影像的速度就越快。如果您未配備高速網路或者不想使用這種網路,請建立本地安裝資源。請執行下列步驟:
收集安裝 DVD。
開啟外圍程序,切換為 root 身分。
建立做為本地安裝目錄的目錄。範例通常會使用路徑 /image/CDs/full-。使用相應的值取代佔位符 VERSION-ARCHVERSION 與 ARCH 。
掛接媒體。使用相應的裝置 (通常為 dvd、cdrom 等) 取代 DRIVE 佔位符︰
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://en.opensuse.org/Portal:KIWI) 上的下列文件中尋找更多資訊。