章 17. KIWI

目錄

17.1. KIWI 的先決條件
17.2. 瞭解 KIWI 建立程序
17.3. 影像描述
17.4. 使用 KIWI 建立裝置
17.5. 更多資訊

摘要

KIWI 是一個用於建立作業系統影像的系統。影像就是含有某個檔案的目錄,該檔案中包含作業系統、系統應用程式與組態、作業系統的檔案系統結構、其他可能的中繼資料以及磁碟規格與分割區表資料 (視影像類型而定)。利用 KIWI,您可以建立 LiveCD、LiveDVD、USB 晶片組及可在 VMware 等完全虛擬的系統中播放的虛擬磁碟、用於在監管程式中準虛擬化的 XEN 影像,以及可從網路開機的 PXE 環境。

17.1. KIWI 的先決條件

若要使用 KIWI 建立影像,需要下列先決條件︰

  1. 為此操作騰出足夠的空間。

  2. KIWI 分割成幾個套件,可用於產生不同的影像類型。在任何情況下,您都需要基本套件 kiwi。根據目標影像的不同,您需要下列套件︰

    影像類型

    套件名稱

    安裝媒體

    kiwi-desc-oemboot

    虛擬化

    kiwi-desc-xenboot

    USB 晶片組

    kiwi-desc-usbboot

    網路用戶端

    kiwi-desc-netboot

  3. 安裝 kiwi-doc 套件。您可以尋找一些組態範例,以瞭解其結構與內容。

  4. 瞭解 KIWI 組態檔案及其結構。它以 RELAX NG 綱要為基礎,kiwi 套件的 /usr/share/doc/packages/kiwi/kiwi.html 做了說明。當您要從頭建立組態檔案或要插入元素或屬性時,就需要此文件。

17.2. 瞭解 KIWI 建立程序

KIWI 的建立程序分為三個步驟︰

  1. 實體擴充 (準備).  此階段用於準備新檔案系統的內容。在此步驟中會建立根目錄,您需要決定影像上應安裝的套件及應包含的使用者組態檔案。

  2. 邏輯擴充 (建立).  此階段要求準備步驟成功完成。邏輯擴充步驟會在上一步驟的基礎上建立作業系統影像。

  3. 部署.  您可以使用不同的方法部署產生的影像類型,如將其安裝在硬碟上或透過虛擬化系統 (VMware、Qemu、VirtualBox) 進行播放。

17.3. 影像描述

KIWI 需要使用影像描述來建立影像類型。影像描述為至少包含一個 config.xml 檔案或包含副檔名為 *.kiwi 之檔案的目錄。

17.3.1. 影像描述的內容

下表包含了其他選擇性資訊。但是,若要在更高版本的作業系統中運作,您必須提供其中的大部分資訊︰

表格 17.1. 影像描述的其他檔案與目錄

檔案/目錄

描述

config/

選擇性子目錄。包含所有影像套件安裝後所執行的 Bash 程序檔。

config.sh

建立實體擴充時的選擇性組態程序檔

config.xml

每個影像描述的組態檔案,節 17.3.2 中做了說明

config-cdroot.tgz

僅用於 ISO 影像的歸檔

config-cdroot.sh

操作 config-cdroot.tgz 的解壓縮資料

config-yast-autoyast.xml

AutoYaST 建立的組態檔案

config-yast-firstboot.xml

用於控制 YaST 首次開機服務的組態檔案

images.sh

建立準備步驟時的選擇性組態程序檔

root/

包含所有影像套件安裝有變更的其他目錄、特殊檔案及程序檔。


17.3.2. 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="..."> 1
  <description type="system"> 2
    <author>...</author>
    <contact>...</contact>
    <specification>...</specification>
  </description>
  <preferences> 3
    <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"> 4
    <user name="root" pwd="" home="/root"/>
  </users>
  <repository type="rpm-md"> 5
    <source path="/home/rpmdir"/>
  </repository>
  <packages type="image" patternPackageType="onlyRequired"> 6
    <package name="yast2-live-installer"/>
    <package name="pam"/>
    <!-- List of packages reduced -->
  </packages>

1

每個 KIWI 組態檔案的根元素。每個檔案都需要版本號碼。選擇性的 kiwirevision 屬性可用於指定 KIWI 的 SVN 修正版。

2

包含必要的描述,其中包括有關此影像描述的建立者、聯絡人地址及簡要說明。

3

包含必要的優先設定,其中包括有關此影像的版本、使用的套件管理員、支援的影像類型及其他設定。

4

選擇性的 users 元素包含新增至影像的所有使用者清單。user 元素包含名稱、主目錄路徑、密碼及外圍程序。

5

包含套件管理員所使用的必要儲存庫清單。

6

包含影像中所包含的必要套件清單。

上文的 HTML 頁面中顯示了組態檔案的更多詳細資料。

17.4. 使用 KIWI 建立裝置

本節說明如何使用 KIWI 建立裝置裝置是為執行特定任務而特別設計的作業系統。例如,您可以建立一個側重於辦公室程式的裝置。

17.4.1. 建立本地安裝來源

kiwi-doc 套件中的所有範例都需要有效的安裝來源才能建立影像。通常,這些範例會連接至網路資源。網路的頻寬越高,建立影像的速度就越快。如果您未配備高速網路或者不想使用這種網路,請建立本地安裝資源。請執行下列步驟:

  1. 收集安裝 DVD。

  2. 開啟外圍程序,切換為 root 身分。

  3. 建立做為本地安裝目錄的目錄。範例通常會使用路徑 /image/CDs/full-VERSION-ARCH。使用相應的值取代佔位符 VERSIONARCH

  4. 掛接媒體。使用相應的裝置 (通常為 dvdcdrom 等) 取代 DRIVE 佔位符︰

    mount -o loop /dev/DRIVE /mnt
  5. 將媒體的所有內容複製到安裝目錄中︰

    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>

17.4.2. 建立影像

影像是虛擬的磁碟影像,它包含所有分割區、開機載入程式資訊以及套件,就像位於實際的磁碟上一樣。要建立 ISO 影像,請執行下列步驟︰

  1. 安裝套件 kiwikiwi-doc,並解決所有相依性。

  2. 開啟外圍程序,切換為 root 身分。

  3. 將目錄 /usr/share/doc/packages/kiwi/examples/suse-11.0/suse-oem-preload 複製到目前的目錄。

  4. 開啟檔案 config.xml 並找到元素 repository。若要使用本地安裝來源,請參閱節 17.4.1 以獲取詳細資訊。

  5. 使用以下指令執行 KIWI,為第一階段 (實體延伸) 做好準備︰

    kiwi --prepare suse-oem-preload --root oem
  6. 建立 ISO 影像︰

    kiwi --create oem --type iso --destdir /tmp/myoem

17.4.3. 使用 NFS 建立預先載入影像

要建立具有 NFS 功能的 影像,請執行下列步驟:

  1. 開啟外圍程序,切換為 root 身分。

  2. 將目錄 /usr/share/doc/packages/kiwi/examples/suse-11.1/suse-oem-preload 複製到目前的目錄。

  3. 開啟檔案 suse-oem-preload/config.xml,並找到具有 type="image" 屬性的 packages 元素。

  4. <packages type="image"></packages> 之間插入下行,並儲存檔案:

    <package name="nfs-client"/>
  5. 步驟 5 中所述重建影像。

17.5. 更多資訊

在 KIWI 入口網站 (http://en.opensuse.org/Portal:KIWI) 上的下列文件中尋找更多資訊。


SUSE Linux Enterprise Server 部署指南 11 SP4