Solaris 9 安裝指南

第 18章 建立 Solaris Flash 歸檔檔案(工作)

本章提供建立 Solaris Flash 歸檔檔案的程序,包括安裝主系統和從該主系統建立 Solaris Flash 歸檔檔案。如果先前已在複製系統上安裝歸檔檔案,則您也可以建立差動歸檔檔案。在建立差動歸檔檔案後,將比較兩個影像:未變更的主影像和已更新的影像。差動歸檔檔案僅安裝兩影像之間的差異部份。另外,本章亦提供建立程序檔的程序,以重新配置或自訂歸檔檔案。

工作表:建立 Solaris Flash 歸檔檔案

表 18–1 工作表:建立 Solaris Flash 歸檔檔案以進行初始安裝

工作 

說明  

操作指示 

在主系統安裝您選擇的軟體配置。 

決定符合需求的配置,並使用任何一種 Solaris 安裝方法來安裝主系統 

以初始安裝方式來安裝主系統

(選擇性的)建立自訂程序檔 

決定您是否需要建立程序檔以執行以下動作: 

  • 自訂或重新配置歸檔檔案

  • 保護複製系統上的本機變更

建立自訂程序檔

建立 Solaris Flash 歸檔檔案。 

使用 flar create 指令來建立歸檔檔案

建立 Solaris Flash 歸檔檔案以進行初始安裝

(選擇性的)儲存歸檔檔案的副本 

保存歸檔檔案的副本以便日後進行比較,以使用差動歸檔檔案來更新複製系統 

建立 Solaris Flash 歸檔檔案以進行初始安裝

表 18–2 工作表:建立 Solaris Flash 歸檔檔案以更新複製系統

工作 

說明  

操作指示 

準備主影像 

更改未變更的主影像,例如加入或刪除套裝軟體或安裝修補程式 

安裝主系統

(可選擇的)建立自訂的程序檔 

決定您是否需要建立程序檔以執行以下動作: 

  • 自訂或重新配置歸檔檔案

  • 保護複製系統上的本機變更

建立自訂程序檔

建立 Solaris Flash 差動歸檔檔案 

  1. 裝載未變更的主影像

  2. 使用 flar create 指令來比較兩個影像並建立差動歸檔檔案

更新主影像並建立差動歸檔檔案

安裝主系統

您可以使用您要其他系統具有的軟體配置來安裝主系統。您可以藉由會覆寫系統上所有檔案的初始安裝,或者藉由僅包含兩個影像間差異部份的更新,來安裝複製系統。如要進行初始安裝,可使用任何一種 Solaris 安裝方式在主系統上安裝 Solaris 作業環境。

如果先前已在複製系統上安裝歸檔檔案,您可以使用差動歸檔檔案,利用變更來更新系統。變更針對原始影像進行,例如安裝修補程式或加入和移除套裝軟體。差動歸檔檔案僅會覆寫歸檔檔案中指定的檔案。如需更新原始主影像和建立差動歸檔檔案的程序,請參閱更新主影像並建立差動歸檔檔案

以初始安裝方式來安裝主系統

  1. 識別您希望安裝的系統配置。

  2. 使用 Solaris 安裝方式,在主系統上安裝 Solaris 作業系統。如需不同安裝方式的討論內容,請參閱第 3章, 選擇 Solaris 安裝方法(概述)

  3. 依照下列任何一種方法來自訂您的 Solaris 安裝:

    • 刪除軟體。

    • 加入軟體。

    • 修改配置檔。

    • 為複製系統的週邊裝置加入支援。

    您可以建立自訂程序檔或使用 flar create 指令來建立歸檔檔案。

建立自訂程序檔

程序檔可自訂歸檔檔案。這些程序檔可用於以下目的:

如需建立程序檔的準則,請參閱建立自訂程序檔的準則

建立預先建立程序檔

此程序檔在建立歸檔檔案時執行,它具有多種用途。

  1. 建立預先建立程序檔。依建立自訂程序檔的準則中所述的準則動作。

  2. 將程序檔儲存在 /etc/flash/precreation 目錄中。


範例 18–1 預先建立程序檔摘錄

下列範例摘錄自預先建立程序檔。



範例 18–2 預先建立程序檔

#!/bin/sh
echo "Test precreation script started">> $FLASH_DIR/summary
cat /opt/TestApp/critical_file_list | flcheck -
if [ $? != 0 ]; then
	echo "Test precreation script failure">> $FLASH_DIR/summary
	exit 1
fi
echo "Test precreation script started">> $FLASH_DIR/summary
/opt/TestApplication/license_cloning
	$FLASH_DIR/predeployment/.TestApplicationLicenceTransfer \
	$FLASH_DIR/custom_sections/TestApplicationLicenceCounter
echo "Test precreation script finished">> $FLASH_DIR/summary
exit 0

使用預先建立程序檔來建立使用者定義歸檔檔案區段

預先建立程序檔可在歸檔檔案中建立使用者定義區段,以提供特定應用程式資訊。此區段用於歸檔檔案維護。此程序檔必須置於 $FLASH_DIR/sections 目錄。Solaris Flash 歸檔檔案不會處理使用者定義區段。例如,區段中可包含歸檔檔案的說明,也可包含檢查應用程式完整性的程序檔。

使用者定義區段應使用下列格式。

建立預先部署程序檔

此程序檔在安裝歸檔檔案之前執行。如果此程序檔是用來驗證歸檔檔案,則會將它保留在該歸檔檔案中。如果此程序檔是用來在複製系統上保存本機配置,則會將它保留在複製系統中。此程序檔還可以分析和收集必要的本機資料,以便日後進行自訂。例如,在由即將要擷取的檔案覆寫前,會先儲存特定用戶端資訊。此資訊可在擷取後於最終階段使用。

  1. 建立預先部署程序檔。依建立自訂程序檔的準則中所述的準則動作。

  2. 將程序檔儲存在下列其中一個目錄中。

    • 如要進行歸檔檔案驗證,請將其儲存在 /etc/flash/predeployment 目錄中。

    • 如果您要在預先建立程序檔中參考,請將其儲存在 $FLASH_DIR/preinstall 目錄中。

    • 如果您要在複製系統上保存配置,則應在儲存於複製系統上的程序檔中指定路徑以及 JumpStart 設定檔中的 local_customization 關鍵字 。


範例 18–3 預先部署程序檔

#!/bin/sh
$FLASH_DIR/TestApplication/check_hardware
if [ $? != 0 ]; then
	echo Unsupported hardware
	exit 1
fi
$FLASH_DIR/TestApplication/check_licence_key
if [ $? != 0 ]; then
	echo No license for this host
	exit 1
fi
$FLASH_DIR/TestApplication/deploy_license_key \
	$FLASH_DIR/TestApplication/.TestApplicationLicenceTransfer
$FLASH_DIR/TestApplication/save_data_files $FLASH_DIR/flash

exit 0

建立部署後程序檔

此程序檔保留在歸檔檔案中或儲存在複製系統上的本機目錄中,並且會在安裝後執行。此程序檔用於在複製系統上重新配置新的系統影像。如果該程序檔儲存在歸檔檔案中,則變更會影響所有複製系統。如果該程序檔儲存在複製系統上的本機目錄中,則變更僅會影響該複製系統。例如,可以將預先部署程序檔所儲存的特定用戶端資訊套用至複製環境中,以完成安裝。

部署後程序檔也可用於在安裝歸檔檔案後清除檔案,例如,清除 /var/adm 中的日誌檔。


註解 –

並非所有日誌檔都需要使用程序檔來清除。/var/tmp 中的記錄檔可在建立歸檔檔案時排除。


  1. 建立部署後程序檔。依建立自訂程序檔的準則中所述的準則動作。

  2. 將程序檔儲存在下列其中一個目錄中。

    • 如要影響所有複製系統,請將程序檔儲存在 /etc/flash/postdeployment 目錄中。

    • 如果僅希望影響本機的複製系統,則應在儲存於複製系統上的程序檔中指定路徑以及 JumpStart 設定檔中的 local_customization 關鍵字 。


範例 18–4 部署後程序檔

#!/bin/sh
$FLASH_DIR/TestApplication/clone_reconfiguration
$FLASH_DIR/TestApplication/restore_data $FLASH_DIR/flash

建立重新啟動程序檔

此程序檔儲存在歸檔檔案中,並在系統重新啟動後執行。此程序檔會在系統重新配置後,進行所有最終配置。

在複製系統上安裝 Solaris Flash 歸檔檔案後,某些主機特定檔案會被刪除,並針對複製系統重新建立。安裝程式會使用 sys-unconfig(1M) 指令以及 sysidtool(1M) 程式來刪除並重新建立主機特定的網路配置檔。重新建立的檔案包括 /etc/hosts/etc/defaultrouter 以及 /etc/defaultdomain 等。您可以使用重新啟動程序檔進行任何最終重新配置。

  1. 建立重新啟動程序檔。

  2. 將程序檔儲存在 /etc/flash/reboot 目錄中。


範例 18–5 建立重新啟動程序檔

#!/bin/sh 
$FLASH_DIR/TestApplication/finalize_license

建立 Solaris Flash 歸檔檔案

您可以建立藉由初始安裝覆寫複製系統上所有檔案的歸檔檔案,也可以建立僅覆寫指定變更的差動歸檔檔案。如需差動歸檔檔案的概述,請參閱規劃建立 Solaris Flash 差動歸檔檔案

建立 Solaris Flash 歸檔檔案以進行初始安裝

完成主系統的安裝之後,可建立一個 Solaris Flash 歸檔檔案來安裝其他系統。

  1. 啟動主系統並盡量以停用狀態來執行。

    如果可能,請以單一使用者模式來執行該系統;否則,請關閉您要歸檔的所有應用程式和需要耗用大量作業系統資源的所有應用程式。

    當主系統在多使用者模式或單一使用者模式下執行,或以下列其中一種方式啟動時,您可以建立 Solaris Flash 歸檔檔案:

    • Solaris 9 DVD。

    • Solaris 9 Software 1 of 2 CD。

    • Solaris 9 Software 影像。如果您使用 CD 媒體,這個影像可以在必要時包含 Solaris 9 Languages CD。

  2. 如要建立歸檔檔案,請使用 flar create 指令。


    # flar create -n name options path/filename
    

    name

    您賦予該歸檔檔案的名稱。您所指定的 name 就是 content_name 關鍵字的值。

    options

    如需有關選項的說明,請參閱flar create

    path

    您要儲存歸檔檔案的目錄路徑。若是您不指定路徑,flar create 會將歸檔檔案儲存在目前的目錄中。

    filename

    歸檔檔案的名稱。 

    • 如果建立歸檔檔案成功,flar create 指令會傳回退出碼 0。

    • 如果建立歸檔檔案失敗,flar create 指令會傳回一個非 0 的退出碼。

  3. 建立並儲存歸檔檔案的副本。您可在日後使用此副本,藉由差動歸檔檔案來更新複製系統。

範例 — 建立歸檔檔案以進行初始安裝

檔案系統可以完整複製,也可以透過排除某些目錄或檔案來自訂。使用者可使用其他選項來達到相同的效果。請使用最適合目前作業環境的選項。

為了方便說明,下列範例中的檔案系統已經過大幅簡化。這些範例的主系統檔案結構並不使用 /var/usr/opt 等檔案系統名稱,而採用


/aaa/bbb/ccc/ddd
/aaa/bbb/fff
/aaa/eee
/ggg

小心 – 小心 –

使用 flar create 檔案排除選項時應特別注意,因為在排除某些目錄時,可能會有未察覺的目錄留在歸檔檔案內,例如系統配置檔。發生此情況時,系統會不一致,而且無法執行安裝。目錄或檔案含有容易移除的資料,而且在移除時不會對系統造成影響(例如大型資料檔)時,最適合使用排除功能。



範例 18–6 建立精確複製的歸檔檔案

在此範例中,歸檔檔案的名稱為 archive1。此歸檔檔案是自主系統精確複製的檔案,並經過壓縮。此歸檔檔案自主系統精確複製後,會儲存到 archive1.flar


# flar create -n archive1 -c archive1.flar

如要檢查歸檔檔案的檔案結構,請鍵入下列指令。


# flar info -l archive1.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb/fff
aaa/eee
aaa/eee
ggg


範例 18–7 透過排除和含括檔案與目錄來建立歸檔檔案

在此範例中,歸檔檔案的名稱為 archive2。此歸檔檔案是自主系統複製的檔案,但並非精確副本。 /aaa 目錄下的內容將被排除在外,但 /aaa/bbb/ccc 中的內容會保留下來。


# flar create -n archive2 -x /aaa -y /aaa/bbb/ccc  archive2.flar

如要檢查歸檔檔案的檔案結構,請鍵入下列指令。排除的包含複製檔案的目錄會顯示出來,但是僅復原的檔案包含資料。


# flar info -l aaa
aaa
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb
ggg


範例 18–8 透過使用清單排除和含括檔案與目錄來建立歸檔檔案

在此範例中,歸檔檔案的名稱為 archive5。此歸檔檔案是自主系統複製的檔案,但並非精確副本。

exclude 檔案包含下列清單:


/aaa

include 檔案包含下列清單:


/aaa/bbb/ccc

/aaa 目錄下的內容將被排除在外,但 /aaa/bbb/ccc 中的內容會保留下來。


# flar create -n archive5 -X exclude -f include  archive5.flar

如要檢查歸檔檔案的檔案結構,請鍵入下列指令。排除的包含複製檔案的目錄會顯示出來,但是僅復原的檔案包含資料。


# flar info -l archive5.flar
aaa
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb
ggg


範例 18–9 透過使用清單並復原目錄以排除檔案與目錄來建立歸檔檔案

您可以結合選項 -x-y-X-f。此範例結合使用選項 -X-y。歸檔檔案的名稱為 archive5。此歸檔檔案是自主系統複製的檔案,但並非精確副本。

exclude 檔案包含下列清單:


/aaa

-y 選項會復原 ccc 目錄。下列指令可產生此歸檔檔案。


# flar create -n archive5 -X exclude -y /ccc  archive5.flar

如要檢查歸檔檔案的檔案結構,請鍵入下列指令。排除的包含複製檔案的目錄會顯示出來,但是僅復原的檔案包含資料。


# flar info -l archive5.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
ggg


範例 18–10 透過使用清單和 -z 選項排除和含括檔案與目錄來建立歸檔檔案

在此範例中,歸檔檔案的名稱為 archive3。此歸檔檔案是自主系統複製的檔案,但並非精確副本。要選取的檔案與目錄包含在 filter1 檔案中。在此檔案中,目錄均標示有減號 (-) 或加號 (+),以指示要排除及要復原的檔案。在此範例中,目錄 /aaa 標示有減號,將被排除;子目錄 /aaa/bbb/ccc 標示有加號,將被復原。filter1 檔案包含下列清單。


- /aaa
+ /aaa/bbb/ccc

下列指令可產生此歸檔檔案。


# flar create -n archive3 -z filter1 archive3.flar 

如要檢查歸檔檔案的檔案結構,請鍵入下列指令。排除的包含複製檔案的目錄會顯示出來,但是僅復原的檔案包含資料。


# flar info -l archive3.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
ggg


範例 18–11 自替代啟動環境建立歸檔檔案

在此範例中,歸檔檔案的名稱為 archive4。此歸檔檔案是自主系統精確複製的檔案,並經過壓縮。此歸檔檔案自主系統精確複製後,儲存在 archive4.flar 中。-R 選項用於從其他目錄樹建立歸檔檔案。


# flar create -n archive4 -c -R /x/yy/zz archive4.flar


範例 18–12 建立歸檔檔案並加入關鍵字以說明歸檔檔案

在此範例中,歸檔檔案的名稱為 archive3。此歸檔檔案是自主系統精確複製的檔案,並經過壓縮。選項可將說明加入歸檔檔案識別區段中,以協助您日後識別歸檔檔案。如需有關關鍵字、關鍵字的值以及格式的資訊,請參閱Solaris Flash 關鍵字


# flar create -n archive3 -i 20000131221409 -m pumbaa \
-e "Solaris 8 Print Server" -a "Mighty Matt" -U "Internal Finance" \
-T server archive3.flar 

在建立歸檔檔案後,您可以存取包含詳細說明的識別區段。以下為識別區段的範例。


section_begin=identification
     files_archived_method=cpio
     files_compressed_method=compress
     files_archived_size=259323342
     files_unarchived_size=591238111
     creation_date=20000131221409
     creation_master=pumbaa
     content_name=Finance Print Server
     content_type=server
     content_description=Solaris 8 Print Server
     content_author=Mighty Matt
     content_architectures=sun4u,sun4m
     creation_node=pumbaa
     creation_hardware_class=sun4u
     creation_platform=SUNW,Sun-Fire
     creation_processor=sparc
     creation_release=5.9
     creation_os_name=SunOS
     creation_os_version=s81_49
     x-department=Internal Finance

更新主影像並建立差動歸檔檔案

在建立差動歸檔檔案之前,您需要比較兩個影像:未變更的主影像和已更新的主影像。其中一個為未變更的主影像,它一直保持不變,已儲存且需要存取;第二個影像為未變更的主影像,僅以次要變更更新過。根 (/) 檔案系統為新影像的預設位置,但是如果此檔案已儲存在其他位置,您可以存取此影像。在擁有這兩個影像後,您就可以建立差動歸檔檔案,其中僅包含兩個影像間的差異。然後,您可以將差動歸檔檔案安裝在先前透過未變更的主影像安裝的複製系統上。

  1. 準備要對主系統進行的變更。 在進行變更之前,應先在主系統上複製原始歸檔檔案。


    註解 –

    應妥善保管未變更的主影像的副本,使其免受改變,以備日後裝載時使用。


  2. 進行下列變更來更新未變更的主影像。

    • 刪除套裝軟體。

    • 加入套裝軟體或修補程式。

    • 修改配置檔。

    • 為複製系統的週邊裝置加入支援。

  3. (選擇性的)建立自訂程序檔。請參閱建立自訂程序檔

  4. 在裝載點發送未變更的主影像。

    • 如果未變更的主影像儲存在非作用中的啟動環境中,可使用 lumount 指令來擷取。


      # lumount BE_name mountpoint
      

      BE_name 

      指定儲存未變更的主影像的啟動環境名稱 

      mountpoint

      指定儲存影像的根 (/) 檔案系統

      在下列範例中,非作用中的啟動環境的名稱為 unchanged_master1,裝載點是主系統的 /a 目錄。


      # lumount  unchanged_master1 /a
      
    • 如果影像儲存在複製系統上,可使用 NFS 來裝載複製系統。

      1. 在主系統上,共用複製系統的根 (/) 檔案系統,並許可在複製系統上存取主根檔案系統。


        # share -F nfs -o rw,root=master_system "/"
        

        master_system 為主系統名稱。

      2. 在主系統上,裝載複製系統。


        # mount -F nfs clone_system:/ master_dir
        

      clone_system

      指定要裝載的系統名稱 

      master_dir

      指定儲存未變更的主影像的目錄。 

    • 如果影像是透過 ufsdump 指令儲存的,可使用 ufsrestore 指令來擷取副本。如需如何使用這些指令的資訊,請參閱 "System Administration Guide: Basic Administration" 中的 “UFS Backup and Restore Commands (Reference)”

  5. 建立差動歸檔檔案。


    # flar create -n archive_name -A unchanged_master_image_dir\
     options path/filename
    

    archive_name

    指定歸檔檔案的名稱。您指定的 archive_name 是關鍵字 content_name 的值,該名稱會列出到歸檔檔案識別區段中。

    -A unchanged_master_image_dir

    透過比較新的系統影像和 unchanged_master_image_dir 引數中指定的影像,來建立差動歸檔檔案。依預設,新的系統影像為根 (/)。您可以使用 -R 選項來變更預設值。unchanged_master_image_dir 是儲存未變更的系統影像的目錄,或透過 UFS、NFS 或 lumount 裝載未變更的系統影像的目錄。

    您可以使用選項進行內容選取以含括和排除一些檔案。如需選項清單,請參閱flar create

    options

    如需選項的說明,請參閱flar create

    path

    指定您要儲存歸檔檔案的目錄路徑。如果不指定路徑,flar create 會將歸檔檔案儲存在目前的目錄中。

    filename

    指定歸檔檔案的名稱。 

    • 如果差動歸檔檔案建立成功,flar create 指令會傳回退出碼 0。

    • 如果差動歸檔檔案建立失敗,flar create 指令會傳回非零的退出碼。

範例 — 建立差動歸檔檔案


範例 18–13 使用主系統上的新主影像來建立差動歸檔檔案

在此範例中,未變更的主影像的目錄名稱為 unchanged_master1,包含變更的新主影像為根 (/) 目錄。新的主影像會與未變更主影像進行比較,並且所產生的差動歸檔檔案會經過壓縮。差動歸檔檔案儲存在 diffarchive1.flar 檔案中。此歸檔檔案中包含安裝時將要刪除、變更或加入的檔案。


# flar create -n diffarchive1 -A /a/unchanged_master1 -c diffarchive1.flar


範例 18–14 使用儲存在非作用中啟動環境的影像來建立差動歸檔檔案

在此範例中,未變更的主影像 unchanged_master1 儲存在非作用中的啟動環境,並可透過裝載啟動環境來存取。新的主影像為 (/) 目錄。新的主影像會與未變更的主影像進行比較,並且所產生的差動歸檔檔案會經過壓縮。歸檔檔案儲存在 diffarchive4.flar 中。此歸檔檔案中包含安裝時將要刪除、變更或加入的檔案。


# lumount unchanged_master1 /a
# flar create -n diffarchive4 -A /a -c  diffarchive4.flar