Show Table of Contents
24.2. 自動磁碟映像檔安裝
建立磁碟映像檔與安裝進映像檔可以使用 livemedia-creator 來進行自動化。要進行自動化安裝,您需要已安裝的 Red Hat Enterprise Linux 系統與 Kickstart 檔案。磁碟映像檔本身並不需要手動建立。欲知建立、使用 Kickstart 檔案的資訊,請參閱〈章 23, Kickstart 安裝〉。
24.2.1. livemedia-creator 的概觀
通常,使用 livemedia-creator 建立自訂映像檔是個兩階段的過程。在第一階段中會建立暫時的磁碟映像檔,而 Anaconda,亦即 Red Hat Enterprise Linux 的安裝城市,會根據 Kickstart 檔案的參數在這映像檔上安裝系統。然後,在第二階段裡,livemedia-creator 會使用此暫時性的系統建立最終、可開機的映像檔。
這行為可以透過指定額外參數來改變。例如,您可以只執行第一階段,得到磁碟映像檔;或跳過第一階段,直接使用現有的磁碟或檔案系統映像檔,來建立最終的可開機 ISO 檔案。
重要
目前使用 livemedia-creator 來建立自訂的映像檔,只支援 AMD64 與 Intel 64(x86_64)系統。
除此之外,此建立過程只支援 Red Hat Enterprise Linux 7。建立更早期版本的自訂映像檔是有可能的,但並不受到 Red Hat 的支援。
使用 livemedia-creator 的範例可以在〈節 24.2.4, “建立自訂的映像檔”〉裡面找到。在安裝了 lorax 套件的系統上,使用者可以透過
livemedia-creator --help 指令看到所有可用選項的清單。其它文件也透過 lorax 套件安裝: livemedia-creator(1) man page 以及位於 /usr/share/doc/lorax-version/ 目錄的 README.livemedia-creator 檔案,其中 version 是 lorax 套件的版本。
24.2.2. 安裝 livemedia-creator
livemedia-creator 工具是 lorax 套件的一部份。要安裝套件,請以
root 身份執行以下指令:
#yum install lorax
除了 lorax 以外,您也必須安裝其它幾個套件。這些套件並非 lorax 的相依套件,因此不會被自動安裝;但根據您使用 livemedia-creator 的目的而定,會需要這些套件。這些套件有:
- virt-install:提供建立新虛擬機器所需工具的套件,用於第一階段建立即時媒介;若指定了
--no-virt選項,則不需要此套件。 - libvirt、qemu-kvm、virsh 及其它虛擬化工具:使用 virt-install 時,您的系統必須準備好建立、執行與管理虛擬機器。請參閱《Red Hat Enterprise Linux 7 虛擬建置與管理指南》,以瞭解 Red Hat Enterprise Linux 的虛擬化資訊,以及關於安裝、使用虛擬化工具的資訊。
- anaconda:Red Hat Enterprise Linux 的安裝程式,用於第一階段而非 virt-install(如果使用了
--no-virt選項的話)。
您可能也需要其它應用程式,但這些應用程式的資訊已超越本章的範圍。如果您執行 livemedia-creator 搭配某些選項、卻少了某個套件時,程式會停止運作,並顯示錯誤訊息,提示您安裝這套件之後才可以繼續進行下去。
24.2.3. Kickstart 檔案的範例
要成功建立自訂的即時媒介,您需要合於規範的 Kickstart 配置檔。安裝 lorax 套件時會一併安裝兩個範例檔。您可以使用這些範例作為建立自訂映像檔的範例,或者也可以將其複製、修改以符合用途。這兩個範例檔案都位於
/usr/share/doc/lorax-version/ 目錄中,其中 version 是安裝於系統上的 lorax 套件之版本號碼。
可用的範例檔案為:
rhel7-minimal.ks:提供基本安裝(@core群組)及其它基本套件(如 kernel 與 GRUB2 開機載入程式)。除了root以外不會建立任何使用者,沒有圖形化介面,也不會安裝其它套件。rhel7-livemedia.ks:更進階的配置檔案,建立含有圖形化介面的即時系統。除了root使用者以外,還會建立liveuser。
這兩個範例檔案都需要修改安裝來源。方法是在基本文書處理器(如 vim)開啟範例檔,找到
url 指令,將其位址改為正確的安裝來源即可。其它地方不需修改,即可使用這些範例檔。
重要
請不要在範例檔的原有目錄進行修改。請先將這些檔案複製到其它目錄,再修改複製本。
注意
請記得,在 Kickstart 檔案中指定安裝來源與額外軟體庫時,此處只支援 Red Hat 提供的官方軟體庫。自訂的軟體庫可能可以運作,但並不受到支援。
24.2.4. 建立自訂的映像檔
本節描述了幾個常見的 livemedia-creator 使用模式,但不會列出完整的選項清單。要檢視每個可用的選項,請執行
livemedia-creator --help 或參閱 livemedia-creator(1) 的 man page。
24.2.4.1. 使用 virt-install 建立即時映像檔
livemedia-creator 最常見的用法也許牽涉到使用 virt-install 來建立暫時性的虛擬機器,用於即時映像檔的建立過程。要使用 virt-install 建立即時 ISO 檔案,您需要合於規範的 Kickstart 檔案與可開機的 ISO 映像檔,後者包括 Anaconda 安裝程式。這種映像檔是由 Red Hat 所提供的「基礎開機媒介」,詳情請見〈節 2.2, “建立 USB 安裝媒介”〉。
以下指令是使用 virt-install 建立基本即時映像檔時,所使用的指令:
#livemedia-creator --make-iso --iso=/path/to/boot.iso --ks=/path/to/valid/kickstart.ks
用基礎安裝開機映像檔的路徑取代 /path/to/boot.iso,用正確、將用於建立映像檔過程的 Kickstart 檔案之路徑取代 /path/to/valid/kickstart.ks。
在這種情況下會用到的幾個額外選項為:
--vnc vnc:這選項能讓您使用諸如 TigerVNC 的 VNC 用戶端來監控安裝過程。這選項會轉送到 virt-install 的--graphics選項。詳情請參閱〈章 22, 透過 VNC 安裝〉。--ram x:允許您指定暫時性虛擬機器所使用的記憶體大小,單位為 MB。--vcpus x:虛擬機器的處理器數量。
24.2.4.2. 使用 Anaconda 的映像檔安裝來建立即時映像檔
另一個建立即時映像檔的方法是使用 Anaconda 的安裝映像檔功能。在這種情況下,不需要包含安裝程式的映像檔,但 anaconda 套件必須安裝在系統上。同樣地,這過程有兩個階段:首先,系統會建立暫時性的磁碟映像檔,然後在其上安裝系統;接著這映像檔會用來建立最後的可開機 ISO。
警告
使用 Anaconda 來建立即時映像檔會有潛在性的危險,因為這使用了系統本身的安裝程式,而非虛擬機器中的安裝程式。雖然目前沒有任何已知的 bug 會造成問題,但這過程有可能會造成整台系統不穩定。因此,只建議在特別用於此目的的虛擬機器(客座端)上執行 livemedia-creator 與
--no-virt 選項。
重要
在使用 Anaconda 建立自訂映像檔前,請將
SELinux 設定為「寬容」(或「停用」)模式。欲知如何設定 SELinux 的模式,請參閱《Red Hat Enterprise Linux 7 SELinux 使用者與管理員指南》。
要透過 Anaconda 建立即時映像檔,請使用
--no-virt 選項。例如:
#livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --no-virt
24.2.4.3. 建立磁碟或檔案系統映像檔
您也可以使用 livemedia-creator 建立磁碟或檔案系統映像檔。這表示僅執行建立映像檔的第一階段。這不會建立最後的 ISO 成品,程式會在完成安裝暫時性的磁碟或檔案系統映像檔時終止。接下來您可以掛載、檢查這映像檔有沒有錯誤,這在對修改過的 Kikcstart 檔案進行障礙排除時,很有幫助;您也可以將其保留下來,日後建立映像檔時可以節省時間。
第一階段結束後,有幾個方式可以停止建立過程。您可以使用
--image-only 選項,如以下範例所示:
#livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso --image-only
或者,您可以使用
--make-disk 選項,而不是 --make-iso:
#livemedia-creator --make-disk --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
您可以使用
--make-fsimage 選項,建立檔案系統映像檔,而不是分割區映像檔:
#livemedia-creator --make-fsimage --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
注意
或是在本節所述的所有範例中,使用
--no-virt 選項。
不管是什麼情況,結果是分割區的磁碟映像檔,或檔案系統映像檔,根據預設值會位於
/var/tmp/ 目錄中。要變更這目錄,請使用 --tmp /path/to/temporary/directory/ 選項,其中 /path/to/temporary/directory/ 是目標目錄的路徑。
24.2.4.4. 使用之前所建立的磁碟或檔案系統映像檔
如果您已經有磁碟或檔案系統映像檔(參見〈節 24.2.4.3, “建立磁碟或檔案系統映像檔”〉),您可以將映像檔送至 livemedia-creator,建立最後可開機的 ISO 映像檔。在這種情況下,不需要 Kickstart 檔案或 Anaconda 安裝映像檔;以上二者只用於建立映像檔的第一階段,在此情況下可以略過。
要從現有分割區的磁碟映像檔建立最後的映像檔,請使用
--disk-image 選項。例如:
#livemedia-creator --make-iso --disk-image=/path/to/disk/image.img
如果您想要使用檔案系統映像檔,而不是磁碟映像檔,請改用
--fs-images 選項:
#livemedia-creator --make-iso --fs-image=/path/to/filesystem/image.img
24.2.4.5. 建立應用裝置
livemedia-creator 的另一個作用就是建立應用裝置映像檔(分割的磁碟映像檔),包括一個包含了描述的 XML 檔案,並透過使用一個範本來產生。此情況下支援虛擬機器安裝以及映像檔安裝。若要建立一個應用裝置映像檔和描述,請使用
--make-appliance 選項來代替 --make-iso。例如:
#livemedia-creator --make-appliance --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
映像檔和描述 XML 檔案皆會被存放在
/var/tmp/ 目錄中,除非透過使用 --resultdir 選項來指定不同的目錄。
建立應用裝置的額外選項有:
--app-name name:指定應用裝置的名稱,這將會出現在標記了<name>標籤的 XML 描述檔案中。預設值為None。--app-template /path/to/template.tmpl:指定欲使用的範本。預設值為/usr/share/lorax/appliance/libvirt.tmpl。--app-file /path/to/app/file.xml:指定已產生之描述 XML 檔案的名稱。預設值為appliance.xml。
24.2.4.6. 建立一個 Amazon Machine Image(AMI)
若要建立一個 Amazon Machine Image(AMI)以使用於 Amazon Elastic Compute Cloud(EC2)中,請使用
--make-ami 選項。虛擬化和映像檔安裝兩者皆受到支援。
#livemedia-creator --make-ami --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso
形成的檔案會是一個名為
ami-root.img 的映像檔,位於 /var/tmp/ 目錄中,除非您使用了 --resultdir 選項來指定一個不同的目錄。
24.2.4.7. 額外引數
下列選項適用于以上列出的所有使用範例(虛擬安裝、Anaconda 映像檔安裝和其它)。
--keep-image:當您指定了這項選項時,在安裝程序第一階段中使用的暫時性磁碟映像檔將不會被刪除。它將會位於/var/tmp/目錄中,並且會有個隨機產生的名稱,例如diskgU42Cq.img。--image-only:使用此選項代表僅有映像檔建立程序的第一個階段會被執行。與其產生最後的開機 ISO 映像檔,livemedia-creator 僅會建立暫時性的磁碟映像檔,並藉由它來進行安裝程序。此選項能在您測試 Kickstart 檔案修改時為您節省時間,因為您能跳過非常耗時的第二階段和檢查暫時性的磁碟映像檔。--image-name 名稱:允許您為暫時性的磁碟映像檔指定自訂名稱。預設名稱會隨機產生(例如disk1Fac8G.img)。--tmp /path/to/temporary/directory/:指定頂層的暫時性目錄。預設值為/var/tmp/。當使用此選項時,您必須指定一個已存在的目錄。--resultdir /path/to/results/directory/:指定目錄,結果(開機 ISO 映像檔)會在 livemedia-creator 結束時出現。您不可指定一個目前已存在的目錄。預設值為/var/tmp/。此選項僅適用於最後的 ISO 映像檔;若您要建立一個磁碟或是檔案系統映像檔,並且希望將它儲存在特定位置上,請使用--tmp選項。--logfile /path/to/log/file/:指定程式日誌檔案的位置。
24.2.5. 為 livemedia-creator 的問題進行疑難排解
此部分提供了使用 livemedia-creator 時,經常遇到的各種問題的建議解決方式。若您遇上了未在此描述的問題,您可查看程式的日誌檔案,這一般會在每次執行時產生,並儲存在您執行此工具的目錄中,除非您透過使用
--logfile 選項指定了不同的目錄。日誌檔案會根據您所使用的選項有所不同 — 比方說,virt-install.log 在您使用了 --no-virt 選項時將不會被產生(反之,您將會得到來自於 Anaconda 的日誌檔案,位於 anaconda/ 目錄中)。其它檔案(即 livemedia.log 和 program.log)每次都會被產生。
另一個尋找和解決問題的方法,就是在執行此工具程式使用
--image-only 選項。此選項會在第一階段後將程式停用,因此僅有磁碟映像檔會產生,而最終的開機 ISO 將不會產生。之後您便能在無需等待第二階段結束的情況下,掛載磁碟映像檔並查看其內容。此外,您亦可使用 --keep-image 選項,這將會執行這兩個階段,但會保留暫時性磁碟映像檔,以供之後分析用。
測試 Kickstart 檔案變更時,建議使用
--vnc 選項。此選項允許您使用 VNC 客戶端來連至虛擬機器,並檢視安裝進度。詳情請參閱〈章 22, 透過 VNC 安裝〉。
24.2.5.1. 虛擬機器安裝卡住
若在虛擬安裝的第一階段,安裝程式基於某些原因卡住的話,livemedia-creator 也會卡住,並等待安裝程序完成。您可直接干擾程式,或是藉由停用暫時性的虛擬機器來解決這項問題。Livemedia-creator 會偵測到客座端作業系統已中止,刪除所有暫時性的檔案並退出。
若要停止暫時性虛擬機器,請依照下列程序進行:
過程 24.1. 停下暫時性虛擬機器
- 使用 virsh 來列出系統上目前所有的虛擬機器(客座端)。輸出會與看似:
#virsh list --allId Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off辨識暫時性虛擬機器。其名稱總是會以LiveOS為起始,接著則是隨機產生的數字與字元字串。 - 當您辨識了暫時性的虛擬機器後,請使用
virsh destroy name指令來停用它,name 代表虛擬機器的名稱:#virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed
24.2.5.2. 退出的虛擬機器安裝
若您執行一項虛擬安裝而在第一階段時,程序基於某原因受到干擾(例如硬體錯誤、電源中斷或鍵盤干擾),virt-install 將無法再次開始,直到您移除先前建立的暫時性磁碟映像和虛擬機器。下列程序解釋了如何進行此動作。
並非所有步驟每次皆需要進行。比方說,若您由系統當機後復原,您將無須停用暫時性虛擬機器,只要將其取消定義即可。 若您只希望清除由 livemedia-creator 所建立的暫時性檔案,而不再進行其它動作,您亦可使用步驟 4 和 5。
過程 24.2. 移除暫時性客座和磁碟映像檔
- 使用 virsh 來列出系統上目前所有的虛擬機器(客座端)。輸出會與看似:
#virsh list --allId Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off辨識暫時性虛擬機器。其名稱總是會以LiveOS為起始,接著則是隨機產生的數字與字元字串。 - 當您辨識了暫時性的虛擬機器後,請使用
virsh destroy name指令來停用它,name 代表虛擬機器的名稱:#virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed - 使用
virsh undefine name來刪除暫時性虛擬機器,使用與先前步驟中相同的 name。#virsh undefine LiveOS-2a198971-ba97-454e-a056-799f453e1bd7Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 has been undefined - 尋找暫時性檔案系統的掛載點。它的目標將會是
/var/tmp/目錄並且其名稱將會是lorax.imgutils,接著六個隨機產生的數字或字元。#findmnt -T /var/tmp/lorax.imgutils*TARGET SOURCE FSTYPE OPTIONS /var/tmp/lorax.imgutils.bg6iPJ /dev/loop1 iso9660 ro,relatime之後,請使用umount指令來將它卸載:#umount /var/tmp/lorax.imgutils.bg6iPJ - 在
/var/tmp目錄中尋找 virt-install 所建立的暫時性磁碟映像。此檔案的名稱會在安裝程序一開始時出現在指令列上,並且將會是隨機產生的一組名稱,除非您使用了--image-name選項指定一組名稱。例如:2013-10-30 09:53:03,161: disk_size = 5GB 2013-10-30 09:53:03,161: disk_img = /var/tmp/diskQBkzRz.img 2013-10-30 09:53:03,161: install_log = /home/pbokoc/lorax/virt-install.log mount: /dev/loop1 is write-protected, mounting read-only
在以上範例中,暫時性磁碟映像為/var/tmp/diskQBkzRz.img。若您找不到初始訊息,您可手動式辨識暫時性檔案。您可使用ls指令並篩選檔案名稱中包含了disk的輸出,以列出/var/tmp目錄的所有內容:#ls /var/tmp/ | grep diskdiskQBkzRz.img接著,刪除暫時性磁碟映像:#rm -f /var/tmp/diskQBkzRz.img
若您依照此程序中所有步驟進行,您現在便能以 virt-install 開始進行新的安裝程序。
24.2.5.3. 使用 --no-virt 安裝失敗
若要使用 Anaconda 映像安裝功能(
--no-virt 選項)復原一項被干擾的安裝程序,您可執行 anaconda-cleanup script,此 script 會與 anaconda 套件一起被安裝,並且位於 /usr/bin/ 目錄中。
使用下列指令來執行清除 script。您將需要透過 root 身份來進行此動作。
#anaconda-cleanup

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.