本章提供建立 Solaris Flash 歸檔檔案的程序,包括安裝主系統和從該主系統建立 Solaris Flash 歸檔檔案。如果先前已在複製系統上安裝歸檔檔案,則您也可以建立差動歸檔檔案。在建立差動歸檔檔案後,將比較兩個影像:未變更的主影像和已更新的影像。差動歸檔檔案僅安裝兩影像之間的差異部份。另外,本章亦提供建立程序檔的程序,以重新配置或自訂歸檔檔案。
表 18–2 工作表:建立 Solaris Flash 歸檔檔案以更新複製系統
工作 |
說明 |
操作指示 |
---|---|---|
準備主影像 |
更改未變更的主影像,例如加入或刪除套裝軟體或安裝修補程式 | |
(可選擇的)建立自訂的程序檔 |
決定您是否需要建立程序檔以執行以下動作:
| |
建立 Solaris Flash 差動歸檔檔案 |
|
您可以使用您要其他系統具有的軟體配置來安裝主系統。您可以藉由會覆寫系統上所有檔案的初始安裝,或者藉由僅包含兩個影像間差異部份的更新,來安裝複製系統。如要進行初始安裝,可使用任何一種 Solaris 安裝方式在主系統上安裝 Solaris 作業環境。
如果先前已在複製系統上安裝歸檔檔案,您可以使用差動歸檔檔案,利用變更來更新系統。變更針對原始影像進行,例如安裝修補程式或加入和移除套裝軟體。差動歸檔檔案僅會覆寫歸檔檔案中指定的檔案。如需更新原始主影像和建立差動歸檔檔案的程序,請參閱更新主影像並建立差動歸檔檔案。
識別您希望安裝的系統配置。
使用 Solaris 安裝方式,在主系統上安裝 Solaris 作業系統。如需不同安裝方式的討論內容,請參閱第 3章, 選擇 Solaris 安裝方法(概述)。
依照下列任何一種方法來自訂您的 Solaris 安裝:
刪除軟體。
加入軟體。
修改配置檔。
為複製系統的週邊裝置加入支援。
您可以建立自訂程序檔或使用 flar create 指令來建立歸檔檔案。
如要建立自訂程序檔,請參閱建立自訂程序檔。
如要建立歸檔檔案,請參閱建立 Solaris Flash 歸檔檔案。
預先建立程序檔可用於在建立時驗證歸檔檔案,並準備歸檔檔案以便日後進行自訂,尤其是準備差動歸檔檔案。此程序檔也可以在歸檔檔案中建立使用者定義的區段。
預先部署程序檔可用於在安裝時驗證歸檔檔案,並準備歸檔檔案以便日後進行自訂。
部署後程序檔用於在複製系統上重新配置新的系統影像。
重新啟動程序檔用於在系統重新啟動後處理最終的重新配置。
如需建立程序檔的準則,請參閱建立自訂程序檔的準則。
驗證軟體的內容和完整性。如果完整性被破壞,程序檔將無法建立歸檔檔案。
準備產品以便日後在複製系統上進行自訂。
在建立歸檔檔案時,動態註冊其他安裝程序檔。
加入訊息至建立 Flash 摘要檔。此訊息必須簡短,並且僅記錄程序檔的啟動、結束及結果。您可以檢視摘要區段內的結果。
建立預先建立程序檔。依建立自訂程序檔的準則中所述的準則動作。
將程序檔儲存在 /etc/flash/precreation 目錄中。
下列範例摘錄自預先建立程序檔。
如要將開始時間記錄在摘要區段中,請使用下列範例:
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
如要註冊部署程序檔和資料,可使用以下範例:
cp predeployment script $FLASHDIR/preinstall/proc.d ln -s $FLASHDIR/preinstall/order.dS55.MyApp cp postdeployment script $FLASHDIR/postinstall/proc.d ln -s $FLASHDIR/postinstall/order.dS55.MyApp
如要檢視使用者定義區段中的應用程式特定資料,可使用以下範例:
cp custom section $FLASHDIR/custom_sections/MyApp
如要將安裝成功記錄在摘要區段中,可使用以下範例:
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 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 歸檔檔案不會處理使用者定義區段。例如,區段中可包含歸檔檔案的說明,也可包含檢查應用程式完整性的程序檔。
使用者定義區段應使用下列格式。
必須為行導向
必須以換行 (ASCII 0x0a) 字元結尾
每一行的長度無限制
使用 base64 或類似演算法進行二進位資料編碼。
此程序檔在安裝歸檔檔案之前執行。如果此程序檔是用來驗證歸檔檔案,則會將它保留在該歸檔檔案中。如果此程序檔是用來在複製系統上保存本機配置,則會將它保留在複製系統中。此程序檔還可以分析和收集必要的本機資料,以便日後進行自訂。例如,在由即將要擷取的檔案覆寫前,會先儲存特定用戶端資訊。此資訊可在擷取後於最終階段使用。
建立預先部署程序檔。依建立自訂程序檔的準則中所述的準則動作。
將程序檔儲存在下列其中一個目錄中。
如要進行歸檔檔案驗證,請將其儲存在 /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
此程序檔保留在歸檔檔案中或儲存在複製系統上的本機目錄中,並且會在安裝後執行。此程序檔用於在複製系統上重新配置新的系統影像。如果該程序檔儲存在歸檔檔案中,則變更會影響所有複製系統。如果該程序檔儲存在複製系統上的本機目錄中,則變更僅會影響該複製系統。例如,可以將預先部署程序檔所儲存的特定用戶端資訊套用至複製環境中,以完成安裝。
部署後程序檔也可用於在安裝歸檔檔案後清除檔案,例如,清除 /var/adm 中的日誌檔。
並非所有日誌檔都需要使用程序檔來清除。/var/tmp 中的記錄檔可在建立歸檔檔案時排除。
建立部署後程序檔。依建立自訂程序檔的準則中所述的準則動作。
將程序檔儲存在下列其中一個目錄中。
如要影響所有複製系統,請將程序檔儲存在 /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 等。您可以使用重新啟動程序檔進行任何最終重新配置。
#!/bin/sh $FLASH_DIR/TestApplication/finalize_license
您可以建立藉由初始安裝覆寫複製系統上所有檔案的歸檔檔案,也可以建立僅覆寫指定變更的差動歸檔檔案。如需差動歸檔檔案的概述,請參閱規劃建立 Solaris Flash 差動歸檔檔案。
完成主系統的安裝之後,可建立一個 Solaris Flash 歸檔檔案來安裝其他系統。
啟動主系統並盡量以停用狀態來執行。
如果可能,請以單一使用者模式來執行該系統;否則,請關閉您要歸檔的所有應用程式和需要耗用大量作業系統資源的所有應用程式。
當主系統在多使用者模式或單一使用者模式下執行,或以下列其中一種方式啟動時,您可以建立 Solaris Flash 歸檔檔案:
Solaris 9 DVD。
Solaris 9 Software 1 of 2 CD。
Solaris 9 Software 影像。如果您使用 CD 媒體,這個影像可以在必要時包含 Solaris 9 Languages CD。
如要建立歸檔檔案,請使用 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 的退出碼。
建立並儲存歸檔檔案的副本。您可在日後使用此副本,藉由差動歸檔檔案來更新複製系統。
檔案系統可以完整複製,也可以透過排除某些目錄或檔案來自訂。使用者可使用其他選項來達到相同的效果。請使用最適合目前作業環境的選項。
為了方便說明,下列範例中的檔案系統已經過大幅簡化。這些範例的主系統檔案結構並不使用 /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 |
在此範例中,歸檔檔案的名稱為 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 選項會復原 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 |
在此範例中,歸檔檔案的名稱為 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 |
在此範例中,歸檔檔案的名稱為 archive4。此歸檔檔案是自主系統精確複製的檔案,並經過壓縮。此歸檔檔案自主系統精確複製後,儲存在 archive4.flar 中。-R 選項用於從其他目錄樹建立歸檔檔案。
# flar create -n archive4 -c -R /x/yy/zz archive4.flar |
在此範例中,歸檔檔案的名稱為 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 |
在建立差動歸檔檔案之前,您需要比較兩個影像:未變更的主影像和已更新的主影像。其中一個為未變更的主影像,它一直保持不變,已儲存且需要存取;第二個影像為未變更的主影像,僅以次要變更更新過。根 (/) 檔案系統為新影像的預設位置,但是如果此檔案已儲存在其他位置,您可以存取此影像。在擁有這兩個影像後,您就可以建立差動歸檔檔案,其中僅包含兩個影像間的差異。然後,您可以將差動歸檔檔案安裝在先前透過未變更的主影像安裝的複製系統上。
準備要對主系統進行的變更。 在進行變更之前,應先在主系統上複製原始歸檔檔案。
應妥善保管未變更的主影像的副本,使其免受改變,以備日後裝載時使用。
刪除套裝軟體。
加入套裝軟體或修補程式。
修改配置檔。
為複製系統的週邊裝置加入支援。
(選擇性的)建立自訂程序檔。請參閱建立自訂程序檔。
在裝載點發送未變更的主影像。
如果未變更的主影像儲存在非作用中的啟動環境中,可使用 lumount 指令來擷取。
# lumount BE_name mountpoint |
BE_name |
指定儲存未變更的主影像的啟動環境名稱 |
mountpoint |
指定儲存影像的根 (/) 檔案系統 |
在下列範例中,非作用中的啟動環境的名稱為 unchanged_master1,裝載點是主系統的 /a 目錄。
# lumount unchanged_master1 /a |
如果影像儲存在複製系統上,可使用 NFS 來裝載複製系統。
在主系統上,共用複製系統的根 (/) 檔案系統,並許可在複製系統上存取主根檔案系統。
# share -F nfs -o rw,root=master_system "/" |
master_system 為主系統名稱。
在主系統上,裝載複製系統。
# mount -F nfs clone_system:/ master_dir |
clone_system |
指定要裝載的系統名稱 |
master_dir |
指定儲存未變更的主影像的目錄。 |
如果影像是透過 ufsdump 指令儲存的,可使用 ufsrestore 指令來擷取副本。如需如何使用這些指令的資訊,請參閱 "System Administration Guide: Basic Administration" 中的 “UFS Backup and Restore Commands (Reference)”。
建立差動歸檔檔案。
# 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 指令會傳回非零的退出碼。
在此範例中,未變更的主影像的目錄名稱為 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 |