本章介紹了建立 Solaris Flash 歸檔的程序。這些程序包含安裝主系統,然後從該主系統建立 Solaris Flash 歸檔。如果先前已在複製系統上安裝了歸檔,您還可以建立差動歸檔。建立差動歸檔時,系統會對比以下兩個影像:未變更的主影像和已更新的影像。差動歸檔僅安裝兩個影像之間的差異部分。另外,本章還介紹了建立程序檔的程序,以重新配置或自訂歸檔。
表 3–2 作業說明:建立 Solaris Flash 歸檔以更新複製系統
作業 |
描述 |
相關說明 |
---|---|---|
準備主影像 |
對未變更的主影像進行變更,例如增加或刪除套裝軟體,或安裝修補程式。 | |
(可選擇) 建立自訂程序檔 |
確定是否需要建立程序檔來執行以下動作:
| |
建立 Solaris Flash 差動歸檔 |
|
使用您想要其他系統能擁有的軟體配置來安裝主系統。您可以藉由初始安裝 (將覆寫系統上所有檔案) 或更新 (僅包含兩個影像之間差異部分) 來安裝複製系統。對於初始安裝,可以使用任何一種 Solaris 安裝方法在主系統上安裝 Solaris 作業系統。
如果先前已在複製系統上安裝了歸檔,您可以使用差動歸檔藉由變更來更新系統。這些變更是針對原始影像進行的,例如安裝修補程式,或增加及移除套裝軟體。差動歸檔僅覆寫歸檔中指定的檔案。如需有關更新原始主影像及建立差動歸檔的程序,請參閱藉由已更新的主影像建立 Solaris Flash 差動歸檔。
識別要安裝的系統配置。
使用 Solaris 安裝程式,在主系統上安裝 Solaris 作業系統。如需不同安裝程式的說明,請參閱「Solaris 10 安裝指南:自訂 JumpStart 及進階安裝」中的「選擇 Solaris 安裝方法」。
使用以下任何一種方法自訂 Solaris 安裝:
刪除軟體。
增加軟體。
修改配置檔案。
為複製系統上的週邊裝置增加支援。
您可以建立自訂程序檔,或使用 flar create 指令來建立歸檔。
若要建立自訂程序檔,請參閱建立自訂程序檔。
若要建立歸檔,請參閱建立 Solaris Flash 歸檔。
預先建立程序檔可以在建立時驗證歸檔,並準備歸檔 (尤其是差動歸檔) 以用於日後自訂。此程序檔還可以在歸檔中建立 User-defined 區段。
Predeployment 程序檔可以在安裝期間驗證歸檔,並準備歸檔以用於日後自訂。
Postdeployment 程序檔可以在複製系統上重新配置新系統影像。
Reboot 程序檔可以在重新啟動系統後處理最終的重新配置。
如需有關建立程序檔的準則,請參閱建立自訂程序檔的準則。
此程序檔在歸檔建立期間執行。此程序檔具有多種用途。
驗證該軟體的內容和完整性。如果完整性被破壞,程序檔將無法建立歸檔。
準備產品,以用於日後在複製系統上自訂。
歸檔建立期間,動態註冊其他安裝程序檔。
將訊息增加至 Flash 建立摘要檔中。此訊息必須簡短,並且僅記錄程序檔的啟動、結束及結果。您可以在 Summary 區段中檢視結果。
建立預先建立程序檔。請遵循建立自訂程序檔的準則中描述的準則。
將程序檔儲存在 /etc/flash/precreation 目錄中。
以下範例摘錄自預先建立程序檔。
若要將開始時間記錄在 Summary 區段中,請使用以下範例:
echo "MyApp precreation script started">> $FLASHDIR/summary
若要檢查軟體的完整性,請使用 flcheck 指令。此指令不能在指令列中使用。該指令語法如下:
flcheck software component files and directories ...| - |
例如,若要驗證檔案和目錄,請使用以下範例:
flcheck software component files and directories If Not in selection - refuse creation echo "Myapp Integrity Damage">>$FLASHDIR/summary
或者,若要保留意外的新檔案和目錄,且不使歸檔建立失敗,請使用以下範例:
flcheck software component files and directories If Not in selection include by force flinclude software component
若要註冊部署程序檔和資料,請使用以下範例:
若要查看 User-defined 區段中應用程式特定的資料,請使用以下範例:
cp custom section $FLASHDIR/custom_sections/MyApp
若要將安裝成功記錄在 Summary 區段中,請使用以下範例:
echo "product one flash preparation started." >>$FLASH_DIR/summary ... echo "product one flash preparation finished successfully">>$FLASH_DIR/summary
#!/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 if 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
預先建立程序檔可以在歸檔中建立 User-defined 區段,以提供特定的應用程式資訊。此區段用於維護歸檔。必須將此程序檔置於 $FLASH_DIR/sections 目錄中。Solaris Flash 歸檔不處理 User-defined 區段。例如,區段可以含有歸檔的描述或含有用來檢查應用程式完整性的程序檔。
User-defined 區段要求具有以下格式:
必須是行導向
必須以換行 (ASCII 0x0a) 字元結束
各行的長度沒有限制
必須使用 base64 或類似演算法編碼二進位資料
此程序檔在安裝歸檔之前執行。如果此程序檔是用來驗證歸檔的,則會保留在歸檔中。如果此程序檔是用來在複製系統上保留本機配置的,則會保留在複製系統中。此程序檔還可以分析和收集必要的本機資料,以用於日後自訂。例如,可以在即將被擷取的檔案覆寫用戶端特定的資訊之前,儲存該資訊。然後,便可以在擷取後於最終階段使用此資訊。
建立 Predeployment 程序檔。請遵循建立自訂程序檔的準則中描述的準則。
將該程序檔儲存在以下其中一個目錄中:
如要進行歸檔檔案驗證,請將其儲存在 /etc/flash/predeployment 目錄中。
如果要參照預先建立程序檔,請將其儲存在 $FLASH_DIR/preinstall 目錄中。
如果要將配置保留在複製系統上,請藉由 JumpStart 設定檔中的 local_customization 關鍵字,提供儲存在複製系統上的程序檔的路徑。
#!/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
此程序檔將被保留在歸檔中,或儲存在複製系統上的本機目錄中,並在安裝後執行。此程序檔可以在複製系統上重新配置新系統影像。如果該程序檔儲存在歸檔中,則變更會影響所有複製系統。如果該程序檔儲存在複製系統上的本機目錄中,則變更僅影響該複製系統。例如,可以將由 Predeployment 程序檔儲存的用戶端特定的資訊套用至複製環境,以完成安裝。
Postdeployment 程序檔也可以用來在安裝歸檔後清除檔案。例如,可以清除 /var/adm 中的記錄檔。
並非所有記錄檔都需要使用程序檔來清除。建立歸檔後,可以排除 /var/tmp 中的記錄檔。
建立 Postdeployment 程序檔。請遵循建立自訂程序檔的準則中描述的準則。
將該程序檔儲存在以下其中一個目錄中:
若要影響所有複製系統,請將該程序檔儲存在 /etc/flash/postdeployment 目錄中。
若要僅影響本機複製系統,請藉由 JumpStart 設定檔中的 local_customization 關鍵字來提供儲存在複製系統上的程序檔的路徑 。
#!/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。您可以使用 Reboot 程序檔進行所有最終重新配置。
#!/bin/sh $FLASH_DIR/TestApplication/finalize_license
可以建立用於初始安裝的歸檔 (將覆寫複製系統上所有檔案),或建立僅覆寫指定變更的差動歸檔。如需差動歸檔的概述,請參閱規劃建立用於更新的 Solaris Flash 差動歸檔。
安裝有非全域區域時,無法正確建立 Solaris Flash 歸檔。Solaris Flash 功能與 Solaris Zones 分割技術不相容。如果建立了 Solaris Flash 歸檔,則當在下列條件下部署歸檔時,將無法正確安裝所產生的歸檔:
歸檔是在非全域區域中建立的
歸檔是在安裝有非全域區域的全域區域中建立的
安裝主系統之後,建立一個 Solaris Flash 歸檔,以用於安裝其他系統。
啟動主系統,並儘量在非使用中狀態下來執行它。
如果可能,請在單用戶模式下執行該系統。如果不可能,請關閉要歸檔的所有應用程式以及需要耗用大量作業系統資源的所有應用程式。
當主系統在多重使用者模式或單用戶模式下執行時,或以以下其中一種方式啟動時,您可以建立 Solaris Flash 歸檔:
Solaris Operating System DVD。
Solaris Software - 1 CD。
Solaris Software 的影像。如果使用的是 CD 媒體,如果需要,該影像可以包含 Solaris Languages CD。
若要建立歸檔,請使用 flar create 指令。
# flar create -n name options path/filename |
您為該歸檔指定的名稱。您指定的 name 是關鍵字 content_name 的值。
如需選項的描述,請參閱flar create。
要儲存歸檔檔案的目錄之路徑。如果不指定路徑,flar create 會將歸檔檔案儲存在目前的目錄中。
歸檔檔案的名稱。
如果歸檔建立成功,flar create 指令將傳回退出碼 0。
如果歸檔建立失敗,flar create 指令將傳回一個非零的退出碼。
建立歸檔的副本並儲存它。日後可以使用此副本,藉由差動歸檔來更新複製系統。
可以精確複製檔案系統,也可以透過排除某些目錄或檔案來自訂檔案系統。您可以使用其他選項來取得相同的結果。請使用最適合您環境的選項。
為清楚起見,以下範例中的檔案系統已經大大簡化。以下範例並未使用諸如 /var、/usr 或 /opt 等檔案系統名稱,這些範例的主系統檔案結構如下:
/aaa/bbb/ccc/ddd /aaa/bbb/fff /aaa/eee /ggg |
使用 flar create 檔案排除選項時要特別注意。排除了某些目錄後,可能會有未注意到的其他內容 (如系統配置檔案) 仍留在歸檔中。由此,可能會使系統不一致,而且無法執行安裝。排除目錄與檔案最好用於那些易於排除且不會中斷系統的資料,例如大型資料檔。
在此範例中,歸檔名為 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 |
在此範例中,歸檔名為 archive4。此歸檔是從主系統精確複製而來的,並且已經過壓縮。此歸檔是主系統的精確複製件,並儲存在 archive4.flar 中。-R 選項用來從其他目錄樹建立歸檔。
# flar create -n archive4 -c -R /x/yy/zz archive4.flar |
在此範例中,歸檔名為 archive3。此歸檔是從主系統精確複製而來的,並且已經過壓縮。選項可以將描述增加至 Archive Identification 區段,以協助您日後識別該歸檔。如需有關關鍵字、關鍵字的值與格式的資訊,請參閱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 |
建立歸檔後,您可以存取含有詳細描述的 Identification 區段。以下為 Identification 區段的範例。
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 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 |
在此範例中,歸檔名為 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 |
在此範例中,歸檔名為 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 |
您可以將選項 -x、-y、-X 和 -f 組合在一起使用。在此範例中,組合使用了選項 -X 和 -y。此歸檔名為 archive5。此歸檔是從主系統複製而來的,但不是精確副本。
exclude 檔案含有以下清單:
/aaa |
-y 選項可以復原 /aaa/bbb/ccc 目錄。以下指令可以產生此歸檔。
# flar create -n archive5 -X exclude -y /aaa/bbb/ccc archive5.flar |
若要檢查此歸檔的檔案結構,請鍵入以下內容。螢幕上將顯示包含複製檔案的排除目錄,但是僅復原的檔案含有資料。
# flar info -l archive5.flar aaa aaa/bbb aaa/bbb/ccc aaa/bbb/ccc/ddd ggg |
在此範例中,歸檔名為 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 |
在建立差動歸檔之前,需要兩個影像以進行比對:未變更的主影像和已更新的主影像。第一個影像為未變更的主影像,它一直保持不變。該影像已儲存且需要存取。第二個影像為藉由少量變更更新過的未變更的主影像。根 (/) 檔案系統是新影像的預設位置,但是,如果此影像儲存在其他位置,您也可以存取此影像。擁有這兩個影像後,您可以建立僅含有這兩個影像之間差異部分的差動歸檔。然後,可以將差動歸檔安裝在先前藉由未變更的主影像安裝的複製系統上。
準備對主系統進行變更。進行變更之前,主系統應執行原始歸檔的複製件。
必須保護未變更的主影像之副本不被變更,以在日後掛載時使用。
藉由以下任何變更來更新未變更的主影像。
刪除套裝軟體。
增加套裝軟體或修補程式。
修改配置檔案。
為複製系統上的週邊裝置增加支援。
(可選擇) 建立自訂程序檔。請參閱建立自訂程序檔。
在掛載點傳送未變更的主影像。
如果未變更的主影像儲存在非使用中的啟動環境內,可以使用 lumount 指令來擷取它。
# lumount BE_name mountpoint |
指定儲存未變更的主影像的啟動環境名稱。
指定儲存影像的根 (/) 檔案系統
在以下範例中,非使用中的啟動環境名為 unchanged_master1。掛載點是主系統上的 /a 目錄。
# lumount unchanged_master1 /a |
如果影像儲存在複製系統上,可以使用 NFS 來掛載複製系統。
如果該影像是藉由 ufsdump 指令儲存的,可以使用 ufsrestore 指令來擷取副本。如需有關如何使用這些指令的資訊,請參閱「System Administration Guide: Devices and File Systems」中的第 28 章「UFS Backup and Restore Commands (Reference)」。
建立差動歸檔。
# flar create -n archive_name -A unchanged_master_image_dir \ options path/filename |
指定歸檔的名稱。您指定的 archive_name 是關鍵字 content_name 的值,該名稱列在 Archive identification 區段中。
透過對比新系統影像和 unchanged_master_image_dir 引數所指定的影像,來建立差動歸檔。依預設,新系統影像為根 (/)。您可以藉由 -R 選項來變更預設值。unchanged_master_image_dir 是透過 UFS、NFS 或 lumount 指令儲存或掛載未變更的系統影像的目錄。
您可以使用用於內容選取的選項來包含或排除某些檔案。如需選項的清單,請參閱flar create。
如需選項的描述,請參閱flar create。
指定要儲存該歸檔檔案的目錄之路徑。如果不指定路徑,flar create 會將歸檔檔案儲存在目前的目錄中。
指定歸檔檔案的名稱。
如果差動歸檔檔案建立成功,flar create 指令會傳回退出碼 0。
如果差動歸檔建立失敗,flar create 指令將傳回一個非零的退出碼。
如需有關安裝歸檔的程序,請參閱「Solaris 10 安裝指南:自訂 JumpStart 及進階安裝」中的「準備使用自訂 JumpStart 安裝來安裝 Solaris Flash 歸檔」。
在此範例中,未變更的主影像的目錄名稱為 unchanged_master1,含有變更的新主影像是根 (/) 目錄。新主影像會與未變更的主影像進行對比,產生差動歸檔,然後進行壓縮。差動歸檔儲存在 diffarchive1.flar 檔案中。此歸檔含有安裝時要刪除、變更或增加的檔案。
# flar create -n diffarchive1 -A /a/unchanged_master1 -c diffarchive1.flar |
在此範例中,未變更的主影像 unchanged_master1 被儲存在非使用中的啟動環境內,並可以透過掛載啟動環境來存取。新的主影像是根 (/) 目錄。新的主影像會與未變更的主影像進行對比,所產生的差動歸檔會經過壓縮。歸檔儲存在 diffarchive4.flar 中。此歸檔含有安裝時要刪除、變更或增加的檔案。
# lumount unchanged_master1 /a # flar create -n diffarchive4 -A /a -c diffarchive4.flar |
若要管理系統更新,可以使用 Solaris Live Upgrade 複製作業系統,這將建立新的啟動環境。此副本可以與藉由少量變更更新過的主系統進行對比。然後,便可以在複製系統上安裝所產生的 Solaris Flash 差動歸檔。
如需有關 Solaris Live Upgrade 的更多資訊,請參閱「Solaris 10 安裝指南:Solaris Live Upgrade 與升級規劃」中的第 6 章「Solaris Live Upgrade (簡介)」。
從未變更的主系統中,使用 lucreate 指令建立新啟動環境。
該新啟動環境是主系統的精確副本,可以用來建立差動歸檔。
檢查兩個啟動環境的狀態。
# lustatus copy_BE boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ master_BE yes yes yes no - copy_BE yes no no yes - |
藉由以下任何變更來更新主影像。
刪除套裝軟體。
增加套裝軟體或修補程式。
修改配置檔案。
為複製系統上的週邊裝置增加支援。
(可選擇) 建立自訂程序檔。請參閱建立自訂程序檔。
建立差動歸檔。
掛載新建立的啟動環境。
# lumount BE_name /a |
透過對比主系統與啟動環境來建立差動歸檔。
# flar create -n archive_name -A new_BE_dir\ options path/filename |
指定歸檔的名稱。
透過對比新系統影像與 new BE_dir 引數所指定的影像,來建立差動歸檔。
如需選項的清單,請參閱flar create。
指定要儲存該歸檔檔案的目錄之路徑。如果不指定路徑,flar create 會將歸檔檔案儲存在目前的目錄中。
指定歸檔檔案的名稱。
卸載新啟動環境。
# luumount copy_BE |
flar create 指令將傳回一個退出碼。
如果建立成功,將傳回退出碼 0。
如果發生故障,將傳回一個非零的退出碼。
使用 JumpStart 設定檔安裝 Solaris Flash 差動歸檔。
要安裝的複製系統必須是原始主系統的複製件,否則安裝將失敗。
以下範例設定檔將在裝置 c1t1d0s0 上安裝差動歸檔 test.diff。
JumpStart profile ----------------------- install_type flash_update archive_location http server /rw/test.diff root_device c1t1d0s0 |
master_BE 是目前啟動環境的名稱。copy_BE 是新啟動環境的名稱。檔案系統根 (/) 與 /usr 置放於 s0 與 s3 上。lustatus 指令將報告是否已完成新啟動環境的複製。SUNWman 套裝模組將被增加至主系統。藉由增加 SUNWman 套裝模組更新主系統之後,flar create 指令將比對已變更的主啟動環境與未變更的新啟動環境,以建立差動歸檔。
# lucreate -c master_BE -m /:/dev/dsk/c0t1d0s0:ufs \ -m /usr:/dev/dsk/c0t1d0s3:ufs -n copy_BE # lustatus # pkgadd SUNWman # lumount copy_BE /a # flar create -n test.diff -c -A /a /net/server/export/test.diff # luumount copy_BE |
在複製系統上安裝差動歸檔。如需有關安裝歸檔的程序,請參閱「Solaris 10 安裝指南:自訂 JumpStart 及進階安裝」中的「準備使用自訂 JumpStart 安裝來安裝 Solaris Flash 歸檔」。
下圖所示為如何使用 lucreate 指令來建立新啟動環境。