23.09.2015 Views

自 動 安 裝 與 升 級

精采試讀

精采試讀

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

第 4 章<br />

<strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

在 介 紹 完 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong> Red Hat Enterprise Linux 後 , 接 著 , 讓 我 們 來 研 究 如 何 進 行<br />

<strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux 吧 !!<br />

4.1 Kickstart 的 介 紹<br />

如 果 您 跟 我 一 樣 , 需 要 常 常 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux, 一 次 又 一 次 重 複 著 同 樣 的<br />

步 驟 。 我 敢 保 證 , 您 一 定 會 很 快 就 失 去 對 Red Hat Enterprise Linux 的 熱 情 。 所 以 ,Red<br />

Hat 提 供 了 一 個 <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong> 的 方 法 , 可 以 讓 您 只 需 一 兩 個 步 驟 , 甚 至 完 全 不 需 額 外 輸<br />

入 任 何 資 訊 , 就 可 以 <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong> Red Hat Enterprise Linux。 這 個 方 法 , 就 是 Kickstart。<br />

4.1.1 Kickstart 運 作 原 理<br />

Kickstart 運 作 的 原 理 很 簡 單 。Anaconda 允 許 您 事 先 把 執 行 <strong>安</strong> <strong>裝</strong> 程 式 的 選 項 , 儲 存 於 一<br />

個 文 字 檔 中 。 這 個 檔 案 , 我 們 稱 為 Kickstart 設 定 檔 (Kickstart Configure File), 或 者 稱<br />

為 <strong>自</strong> <strong>動</strong> 答 應 檔 (Answer File)。<br />

97


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

此 後 , 您 可 以 在 執 行 Red Hat Enterprise Linux <strong>安</strong> <strong>裝</strong> 程 式 ( 也 就 是 Anaconda) 時 , 指 定 這<br />

個 設 定 檔 的 位 置 。Anaconda 便 會 以 指 定 的 設 定 檔 之 內 容 , 作 為 <strong>安</strong> <strong>裝</strong> 程 式 組 態 參 數 的 依<br />

據 , 如 此 一 來 ,Anaconda 便 可 以 全 程 靜 悄 悄 <strong>自</strong> <strong>動</strong> 的 <strong>安</strong> <strong>裝</strong> 或 <strong>升</strong> <strong>級</strong> Red Hat Enterprise Linux<br />

了 。<br />

4.1.2 Kickstart 應 用 範 圍<br />

至 於 Kickstart 可 以 運 用 在 哪 些 地 方 ?? 這 個 問 題 需 依 賴 著 您 的 創 造 力 <strong>與</strong> 想 像 力 。 我 隨 手<br />

捻 來 幾 個 , 提 供 您 參 考 :<br />

• 大 量 <strong>安</strong> <strong>裝</strong> : 如 果 您 有 數 十 台 甚 至 更 多 的 電 腦 都 需 要 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux,<br />

不 管 每 一 台 電 腦 需 要 的 內 容 是 否 一 樣 , 此 時 , 您 就 可 以 建 立 Kickstart 設 定 檔 , 利 用<br />

Kickstart <strong>安</strong> <strong>裝</strong> 的 技 術 , 大 量 的 <strong>安</strong> <strong>裝</strong> 這 些 電 腦 。<br />

• <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> : 如 果 您 的 客 戶 要 求 您 在 他 們 的 電 腦 上 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux, 您<br />

可 以 蒞 臨 客 戶 電 腦 前 , 親 <strong>自</strong> 進 行 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> ; 或 者 請 客 戶 把 電 腦 送 到 您 那 兒 , 待 <strong>安</strong> <strong>裝</strong><br />

好 後 再 送 回 去 。 這 兩 種 方 法 都 有 點 曠 日 費 時 , 效 率 <strong>與</strong> 效 益 都 不 是 最 佳 的 方 案 。<br />

如 果 您 懂 得 運 用 Kickstart 的 技 術 , 您 只 需 在 公 司 裡 建 立 Kickstart 設 定 檔 <strong>與</strong> 開 機 媒<br />

體 , 然 後 透 過 電 子 郵 件 寄 給 您 的 客 戶 , 指 導 他 <strong>自</strong> 行 製 作 一 份 開 機 媒 體 。 利 用 Kickstart<br />

<strong>安</strong> <strong>裝</strong> 的 技 術 , 便 可 以 依 照 您 定 義 的 內 容 <strong>自</strong> <strong>動</strong> 的 進 行 <strong>安</strong> <strong>裝</strong> , 此 時 , 您 可 以 省 去 舟 車 勞<br />

頓 的 時 間 , 加 快 客 戶 服 務 的 速 度 。<br />

• 災 後 復 原 : 萬 一 您 的 電 腦 陣 亡 於 慘 烈 的 故 障 狀 況 下 , 您 必 須 在 急 短 的 時 間 內 , 完 成<br />

災 後 復 原 的 工 作 。 此 時 , 您 可 以 利 用 Kickstart <strong>安</strong> <strong>裝</strong> 的 技 術 , 為 這 個 故 障 的 電 腦 , <strong>自</strong><br />

<strong>動</strong> 的 進 行 <strong>安</strong> <strong>裝</strong> 作 業 。 甚 至 可 以 利 用 Kickstart 設 定 檔 , 在 <strong>安</strong> <strong>裝</strong> 的 後 期 <strong>自</strong> <strong>動</strong> 進 行 系 統 的<br />

組 態 <strong>與</strong> 還 原 。<br />

98


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

這 項 運 用 發 揮 到 極 限 時 , 您 可 以 為 每 一 台 Red Hat Enterprise Linux 的 伺 服 器 , 建 立<br />

專 屬 的 Kickstart 設 定 檔 , 在 伺 服 器 故 障 時 , 只 需 要 重 新 開 機 , 便 可 以 <strong>自</strong> <strong>動</strong> 的 進 行 <strong>安</strong><br />

<strong>裝</strong> , 省 去 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> 設 定 的 時 間 。<br />

4.2 產 生 Kickstart 設 定 檔<br />

要 使 用 Kickstart 技 術 進 行 <strong>安</strong> <strong>裝</strong> , 您 必 須 先 準 備 好 Kickstart 的 設 定 檔 。 您 可 以 透 過 下 列<br />

幾 種 方 法 , 來 產 生 Kickstart 設 定 檔 :<br />

上 述 幾 種 方 法 , 詳 述 如 下 。<br />

4.2.1 手 <strong>動</strong> 產 生 Kickstart 設 定 檔<br />

由 於 Kickstart 設 定 檔 本 質 上 只 是 一 個 文 字 檔 , 因 此 , 您 可 以 使 用 任 何 的 文 書 編 輯 軟 體<br />

( 像 是 vi、emacs、...), 手 <strong>動</strong> 的 產 生 Kickstart 設 定 檔 的 內 容 。<br />

Kickstart 設 定 檔 中 每 一 行 代 表 一 個 設 定 值 , 並 以 # 作 為 註 解 符 號 。 換 言 之 , <strong>自</strong> # 到 行<br />

尾 的 文 字 則 是 給 人 類 看 的 ,Kickstart 不 會 解 譯 之 。<br />

除 了 註 解 外 , 在 Kickstart 設 定 檔 中 , 還 提 供 了 一 種 名 為 區 段 (Section) 的 特 殊 設 定 值 ,<br />

用 來 區 隔 不 同 性 質 的 設 定 值 。 目 前 的 Kickstart 設 定 檔 定 義 了 下 列 幾 個 區 段 (Section):<br />

指 令 區 段<br />

用 來 定 義 進 行 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 、 <strong>升</strong> <strong>級</strong> 時 , 每 一 個 步 驟 要 設 定 的 項 目 。 <strong>與</strong> 其 他 區 段 不 同 的<br />

是 , 指 令 區 段 並 沒 有 特 別 的 識 別 符 號 , 而 且 一 定 要 提 供 的 內 容 。<br />

%packages 區 段<br />

用 來 定 義 要 <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong> 的 套 件 (Package) 或 套 件 群 組 (Package Group) 之 名 稱 。<br />

99


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

%pre <strong>與</strong> %post 區 段<br />

用 來 定 義 <strong>安</strong> <strong>裝</strong> 前 <strong>與</strong> <strong>安</strong> <strong>裝</strong> 後 要 執 行 的 Shell 指 令 , 這 兩 個 區 段 可 以 省 略 。<br />

值 得 注 意 的 是 , 上 述 區 段 , 必 須 依 照 下 列 的 順 序 撰 寫 於 Kickstart 設 定 檔 中 :<br />

1. 指 令 區 段 。<br />

2. %packages 區 段 。<br />

3. %pre 或 %post 區 段 , 如 果 有 定 義 這 兩 個 區 段 的 話 。<br />

如 果 沒 有 依 照 順 序 , 恐 怕 會 造 成 進 行 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 失 敗 。<br />

指 令 區 段<br />

指 令 區 段 用 來 儲 存 每 一 個 <strong>安</strong> <strong>裝</strong> 步 驟 中 , 需 要 組 態 的 設 定 值 。 每 一 個 於 指 令 區 段 定 義 的<br />

設 定 值 , 稱 為 Kickstart 指 令 (Kickstart Command)。 目 前 Kickstart 共 定 義 了 數 十 個 指<br />

令 , 礙 於 篇 幅 限 制 , 本 書 僅 介 紹 幾 個 常 見 的 Kickstart 指 令 。<br />

Red Hat 為 Red Hat Enterprise Linux 提 供 許 多 極 具 參 考 價 直 的 電 子 書 , 您<br />

可 以 透 過 下 列 網 址 取 得 這 些 電 子 書 :<br />

http://www.redhat.com/docs/manuals/enterprise/<br />

其 中 有 一 本 名 為 Installation Guide 文 件 , 就 有 提 供 所 有 Kickstart 指 令 完 整<br />

且 詳 細 的 說 明 。<br />

<strong>與</strong> Shell 中 的 指 令 一 樣 , 每 一 個 Kickstart 指 令 也 許 可 以 搭 配 額 外 的 參 數 <strong>與</strong> 引 數 , 藉 以<br />

來 改 變 或 指 派 相 關 的 設 定 。 以 下 列 這 個 Kickstart 指 令 為 例 :<br />

rootpw [--iscrypted] PASSWORD<br />

100


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

其 中 的 rootpw 便 是 Kickstart 指 令 , 用 來 指 定 root 的 密 碼 ;--iscrypted 則 是 該 指<br />

令 的 參 數 , 而 最 後 的 PASSWORD 則 是 rootpw 指 令 的 引 數 。<br />

除 此 之 外 , 部 分 的 Kickstart 指 令 是 必 備 (Required) 的 , 也 就 是 說 , 您 一 定 要 在 Kickstart<br />

設 定 檔 中 提 供 這 些 指 令 。 如 果 您 遺 漏 了 必 備 的 指 令 , 在 進 行 <strong>安</strong> <strong>裝</strong> 或 <strong>升</strong> <strong>級</strong> 時 ,Anaconda<br />

將 會 停 下 來 要 求 您 提 供 該 項 資 訊 。 完 成 這 些 資 訊 後 ,Anaconda 才 會 繼 續 的 進 行 <strong>安</strong> <strong>裝</strong> ,<br />

除 非 又 發 現 少 了 哪 個 必 備 的 指 令 ; 但 大 部 分 的 Kickstart 指 令 則 是 可 選 用 的 (Optional),<br />

也 就 是 可 使 用 , 也 可 以 省 略 , 如 果 省 略 可 選 用 的 指 令 ,Anaconda 將 會 依 照 其 內 建 的 預<br />

設 值 , 作 為 <strong>安</strong> <strong>裝</strong> 或 <strong>升</strong> <strong>級</strong> 時 的 依 據 。<br />

使 用 Kickstart 進 行 <strong>安</strong> <strong>裝</strong> 或 <strong>升</strong> <strong>級</strong> 時 , 所 必 備 的 指 令 也 不 太 相 同 。 以 下 僅 整 理 <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

時 , 必 備 的 指 令 一 覽 表 :<br />

表 4.1. <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong> 時 必 備 的 Kickstart 指 令<br />

<strong>安</strong> <strong>裝</strong><br />

<strong>升</strong> <strong>級</strong><br />

• install<br />

• lang<br />

•<br />

• upgrade<br />

lang<br />

• auth<br />

• keyboard<br />

• bootloader<br />

•<br />

• keyboard<br />

• part<br />

• rootpw<br />

• timezone<br />

bootloader<br />

101


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

%packages 區 段<br />

誠 如 先 前 提 到 的 ,%packages 區 段 用 來 定 義 要 <strong>安</strong> <strong>裝</strong> 的 套 件 或 套 件 群 組 。 您 可 以 把 要<br />

<strong>安</strong> <strong>裝</strong> 的 套 件 或 套 件 群 組 名 稱 , 撰 寫 於 %packages 中 , 當 Anaconda 進 行 <strong>安</strong> <strong>裝</strong> 時 , 便<br />

會 <strong>安</strong> <strong>裝</strong> %packages 區 段 中 指 定 的 套 件 <strong>與</strong> 套 件 群 組 。<br />

什 麼 是 " 套 件 群 組 "??<br />

套 件 群 組 係 代 表 一 組 具 備 相 同 性 質 的 套 件 。 每 一 個 套 件 群 組 定 義 了 一 個 識<br />

別 碼 、 一 組 名 稱 、 完 整 說 明 , 以 及 包 含 若 干 個 標 註 為 強 制 的 (Mandatory)<br />

套 件 , <strong>與</strong> 若 干 個 選 用 的 (Optional) 的 套 件 。 選 擇 <strong>安</strong> <strong>裝</strong> 某 一 個 套 件 群 組 時 ,<br />

Anaconda 一 定 會 <strong>安</strong> <strong>裝</strong> 該 群 組 中 強 制 的 套 件 ; 如 果 沒 有 選 擇 選 用 性 的 套 件 ,<br />

則 不 會 <strong>安</strong> <strong>裝</strong> 該 套 件 。<br />

在 Red Hat Enterprise Linux 5 中 , 您 可 以 透 過 下 列 任 何 一 種 方 法 , 取 得 套<br />

件 群 組 的 詳 細 資 訊 :<br />

• <strong>安</strong> <strong>裝</strong> 來 源 (Installation Source) 的 DIR/repodata/comp-*.xml 檔 案<br />

中 的 定 義 , 其 中 的 DIR/ 為 <strong>安</strong> <strong>裝</strong> 來 源 的 某 一 個 子 目 錄 。<br />

• 利 用 yum grouplist <strong>與</strong> yum groupinfo 指 令 來 查 詢 。<br />

此 外 ,Red Hat Enterprise Linux 5 預 設 會 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 名 為 Core <strong>與</strong> Base 的 兩<br />

個 套 件 群 組 。<br />

%packages 區 段 裡 , 一 行 代 表 一 個 要 <strong>安</strong> <strong>裝</strong> 的 套 件 或 者 套 件 群 組 的 名 稱 。 如 果 是 套 件<br />

群 組 , 請 在 套 件 群 組 名 稱 前 加 上 @ 符 號 ; 在 指 定 套 件 或 套 件 群 組 名 稱 時 , 您 也 可 以 搭<br />

配 * 萬 用 字 元 ; 若 名 稱 的 最 前 方 加 上 - 符 號 , 則 代 表 不 要 <strong>安</strong> <strong>裝</strong> 該 套 件 。 例 如 :<br />

102


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

%packages<br />

@FTP Server<br />

system-config-*<br />

-zsh<br />

這 個 範 例 代 表 需 要 <strong>安</strong> <strong>裝</strong> FTP<br />

system-config- 為 首 的 套 件 , 但 不 要 <strong>安</strong> <strong>裝</strong> zsh 套 件 。<br />

Server 套 件 群 組 中 所 有 必 備 的 套 件 , 並 且 需 <strong>安</strong> <strong>裝</strong> 以<br />

除 此 之 外 , 在 %packages 的 後 方 , 您 還 可 以 使 用 下 列 的 參 數 13 :<br />

表 4.2. %packages 參 數 一 覽 表<br />

參 數<br />

--nobase<br />

--ignoremissing<br />

說 明<br />

不 要 <strong>安</strong> <strong>裝</strong> Base 套 件 群 組 , 若 要 <strong>安</strong> <strong>裝</strong> 一 個 最 小 的 Red Hat<br />

Enterprise Linux 時 , 請 加 上 這 個 參 數 。<br />

當 指 定 的 套 件 或 套 件 群 組 不 存 在 時 , <strong>安</strong> <strong>裝</strong> 程 式 預 設 會 詢 問<br />

要 繼 續 或 者 終 止 <strong>安</strong> <strong>裝</strong> 。 加 上 這 個 參 數 時 ,Anaconda 會 忽 略<br />

這 些 套 件 , 繼 續 <strong>安</strong> <strong>裝</strong> 其 他 套 件 。<br />

%pre <strong>與</strong> %post 區 段<br />

若 您 打 算 在 開 始 <strong>安</strong> <strong>裝</strong> 前 , 或 者 <strong>安</strong> <strong>裝</strong> 完 畢 後 , 要 做 一 些 <strong>動</strong> 作 時 , 您 可 以 利 用 %pre <strong>與</strong><br />

%post 兩 個 區 段 來 指 定 要 執 行 的 指 令 :<br />

%pre<br />

用 來 指 定 在 開 始 <strong>安</strong> <strong>裝</strong> 前 要 執 行 的 <strong>動</strong> 作 內 容 。 加 諸 於 %pre 後 的 內 容 , 便 是 要 執 行<br />

的 指 令 。 預 設 為 Shell 指 令 , 若 要 執 行 其 他 語 言 的 指 令 , 請 配 合 --interpreter<br />

參 數 來 指 定 該 語 言 之 直 譯 器 (Interpreter)。<br />

13<br />

其 實 還 有 --resolvedeps <strong>與</strong> --ignoredeps 兩 個 參 數 , 但 這 兩 個 參 數 已 經 被 標 示 為 "deprecated",<br />

因 此 不 便 再 加 以 介 紹 。<br />

103


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

此 外 , 您 可 以 在 %pre 中 存 取 網 路 , 但 由 於 此 時 尚 未 組 態 名 稱 伺 服 器 的 位 置 , 因<br />

此 僅 能 使 用 IP 位 址 來 存 取 網 路 中 的 資 源 。<br />

%post<br />

用 來 指 定 <strong>安</strong> <strong>裝</strong> 後 要 執 行 的 指 令 內 容 。 <strong>與</strong> %pre 一 樣 的 是 , 您 也 可 在 %post 後 使 用<br />

--interpreter 參 數 , 來 改 變 語 言 的 直 譯 器 。<br />

<strong>與</strong> %pre 不 同 的 是 , 若 是 採 用 靜 態 IP 位 址 (Static IP Address) 方 式 組 態 網 路 的 話 ,<br />

在 %post 可 以 使 用 主 機 名 稱 的 方 式 來 存 取 網 路 中 的 電 腦 ; 但 若 使 用 <strong>動</strong> 態 方 式 時 ,<br />

由 於 /etc/resolv.conf 尚 未 完 成 , 請 勿 使 用 主 機 名 稱 來 存 取 其 他 的 電 腦 。<br />

另 外 一 個 組 態 %pre <strong>與</strong> %post 時 , 還 必 須 要 特 別 留 意 的 , 就 是 這 些 指 令 執 行 的 環 境<br />

為 何 。Anaconda 執 行 時 , 會 有 兩 個 執 行 的 環 境 :<br />

<strong>安</strong> <strong>裝</strong> 程 式 的 環 境<br />

這 是 由 <strong>安</strong> <strong>裝</strong> 媒 體 的 影 像 檔 提 供 的 根 目 錄 環 境 。 這 個 環 境 僅 提 供 <strong>安</strong> <strong>裝</strong> 程 式 所 需 的 各<br />

項 元 件 , 以 便 順 利 的 進 行 <strong>安</strong> <strong>裝</strong> 或 <strong>升</strong> <strong>級</strong> 的 作 業 。 因 此 , <strong>安</strong> <strong>裝</strong> 程 式 的 環 境 儲 存 於 記 憶<br />

體 中 , 只 要 結 束 <strong>安</strong> <strong>裝</strong> 作 業 , 這 個 環 境 就 會 消 失 。<br />

目 的 系 統 的 環 境<br />

這 個 環 境 則 儲 存 於 磁 碟 設 備 上 , 因 此 可 以 用 久 保 存 。 這 也 是 <strong>安</strong> <strong>裝</strong> 完 畢 後 , 您 使 用<br />

的 Red Hat Enterprise Linux 5 的 環 境 。<br />

<strong>安</strong> <strong>裝</strong> 程 式 的 環 境 中 , 會 把 目 的 系 統 的 環 境 掛 載 於 /mnt/sysimages/ 中 。 因 此 , 若<br />

您 需 要 在 <strong>安</strong> <strong>裝</strong> 程 式 的 環 境 裡 , 存 取 目 的 系 統 環 境 中 的 資 源 , 您 可 以 切 換 至<br />

/mnt/sysimages/ 目 錄 , 再 存 取 相 對 應 的 路 徑 即 可 。<br />

值 得 注 意 的 是 ,%pre 中 的 指 令 , 只 會 在 <strong>安</strong> <strong>裝</strong> 程 式 的 環 境 中 執 行 ; 而 %post 則 可 以 於<br />

<strong>安</strong> <strong>裝</strong> 程 式 的 環 境 , 以 及 目 的 系 統 的 環 境 中 執 行 。 但 是 ,%post 預 設 是 在 目 的 系 統 的 環<br />

104


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

境 中 執 行 , 如 果 您 希 望 切 換 回 <strong>安</strong> <strong>裝</strong> 程 式 的 環 境 中 執 行 , 請 親 <strong>自</strong> 加 上 --nochroot 參<br />

數 即 可 。<br />

以 下 是 一 個 簡 單 的 %pre <strong>與</strong> %post 範 例 :<br />

%pre<br />

dd if=/dev/zero of=/dev/hda bs=512 count=1<br />

%post --nochroot<br />

echo "$(date)" > /mnt/sysimages/root/install-datetime<br />

4.2.2 使 用 Kickstart 設 定 程 式<br />

如 果 您 嫌 <strong>自</strong> 己 產 生 Kickstart 設 定 檔 過 於 麻 煩 , 這 裡 要 介 紹 您 一 個 名 為 Kickstart 設 定 程<br />

式 的 圖 形 化 工 具 , 它 可 協 助 您 輕 鬆 的 產 生 正 確 的 Kickstart 設 定 檔 !!<br />

由 於 Kickstart 設 定 程 式 係 由 system-config-kickstart 套 件 所 提 供 , 因 此 , 若<br />

要 使 用 Kickstart 設 定 程 式 , 您 必 須 先 確 認 是 否 已 順 利 的 <strong>安</strong> <strong>裝</strong> 過 這 個 套 件 。 如 果 沒 有 ,<br />

將 無 法 使 用 Kickstart 設 定 程 式 來 編 輯 Kickstart 設 定 檔 。<br />

確 認 <strong>安</strong> <strong>裝</strong> 好 Kickstart 設 定 程 式 後 , 您 可 以 依 照 下 列 的 方 法 , 啟 <strong>動</strong> Kickstart 設 定 程 式 :<br />

• 指 令 : 請 於 圖 形 模 式 下 的 終 端 機 模 擬 程 式 中 , 執 行 system-config-kickstart<br />

指 令 。<br />

• 圖 形 : 點 擊 【 應 用 軟 體 】-【 系 統 工 具 】-【Kickstart】, 即 可 啟 <strong>動</strong> Kickstart 設 定 程<br />

式 工 具 。<br />

《 圖 4.1 "Kickstart 設 定 程 式 主 畫 面 "》 是 Kickstart 設 定 程 式 的 主 畫 面 。 在 此 畫 面 中 ,<br />

左 方 會 列 出 數 個 可 供 點 擊 的 項 目 , 右 方 則 是 所 選 擇 項 目 的 詳 細 內 容 。 您 可 以 切 換 左 邊<br />

的 組 態 項 目 , 並 且 在 右 方 填 入 詳 細 的 設 定 內 容 。<br />

105


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

您 會 發 現 ,Kickstart 設 定 程 式 中 的 每 一 個 項 目 , 都 是 <strong>安</strong> <strong>裝</strong> 過 程 中 需 要 您 組 態 的 資 訊 。<br />

在 Kickstart 設 定 程 式 中 組 態 的 內 容 , 便 是 未 來 使 用 這 個 Kickstart 設 定 檔 進 行 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong><br />

時 , 會 <strong>自</strong> <strong>動</strong> 餵 送 給 Anaconda <strong>安</strong> <strong>裝</strong> 程 式 使 用 。<br />

圖 4.1. Kickstart 設 定 程 式 主 畫 面<br />

待 所 有 的 設 定 都 完 成 後 , 您 可 以 點 擊 【 檔 案 】-【 儲 存 檔 案 】, 以 便 將 修 改 後 的 Kickstart<br />

設 定 檔 儲 存 下 來 。 若 需 要 檢 視 Kickstart 設 定 程 式 產 生 的 Kickstart 設 定 檔 內 容 , 您 也 可<br />

以 點 擊 【 檔 案 】-【 預 覽 】, 便 會 開 啟 如 《 圖 4.2 "Kickstart 設 定 程 式 預 視 選 項 對 話<br />

框 "》 的 畫 面 , 在 此 畫 面 中 便 是 新 的 Kickstart 設 定 檔 內 容 。<br />

106


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

圖 4.2. Kickstart 設 定 程 式 預 視 選 項 對 話 框<br />

4.2.3 /root/anaconda-ks.cfg<br />

在 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux 的 最 後 一 刻 ,Anaconda 這 個 <strong>安</strong> <strong>裝</strong> 程 式 , 會 把 <strong>安</strong> <strong>裝</strong> 過 程<br />

中 輸 入 的 選 項 , 以 Kickstart 設 定 檔 的 格 式 , 儲 存 成 為 /root/anaconda-ks.cfg。<br />

這 個 檔 案 除 了 可 以 讓 您 在 <strong>安</strong> <strong>裝</strong> 後 , 能 夠 獲 取 <strong>安</strong> <strong>裝</strong> 這 台 電 腦 時 , 輸 入 的 每 一 個 選 項 之 組<br />

態 外 , 因 其 本 身 就 是 Kickstart 設 定 檔 , 您 還 可 以 直 接 利 用 這 個 檔 案 , 作 為 Kickstart 設<br />

定 檔 的 範 本 (Template), 進 行 修 改 <strong>與</strong> 調 整 後 , 再 運 用 於 其 他 機 器 的 <strong>安</strong> <strong>裝</strong> 作 業 上 。<br />

/root/anaconda-ks.cfg 的 運 用 案 例<br />

anaconda-ks.cfg 檔 案 非 常 的 好 用 !! 舉 例 , 如 果 您 有 一 堆 電 腦 需 要 <strong>安</strong><br />

<strong>裝</strong> Red Hat Enterprise Linux, 而 且 每 一 台 電 腦 的 組 態 都 完 全 相 同 。 此 時 ,<br />

您 可 以 先 找 一 台 電 腦 依 照 您 心 中 的 想 法 進 行 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> , 待 <strong>安</strong> <strong>裝</strong> 完 畢 後 , 把<br />

該 電 腦 中 的 /root/anaconda-ks.cfg 略 做 修 改 , 再 複 製 於 他 處 ( 磁 碟<br />

片 、 光 碟 片 、 網 路 中 的 伺 服 器 、...)。<br />

107


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

接 著 使 用 開 機 媒 體 , 啟 <strong>動</strong> 其 他 電 腦 並 執 行 Anaconda <strong>安</strong> <strong>裝</strong> 程 式 。 這 樣 您 就<br />

不 用 費 心 <strong>自</strong> 己 手 <strong>動</strong> 的 建 立 Kickstart 設 定 檔 了 。<br />

不 過 值 得 注 意 的 是 , 為 了 避 免 發 生 誤 用 /root/anaconda-ks.cfg 而 造 成 毀 掉 原 有<br />

系 統 的 遺 憾 ,Anaconda 在 產 生 /root/anaconda-ks.cfg 的 時 候 , 會 把 用 來 組 態<br />

分 割 區 的 參 數 註 解 起 來 。 如 果 您 打 算 直 接 使 用 /root/anaconda-ks.cfg, 並 且 希<br />

望 重 新 產 生 分 割 區 <strong>與</strong> 檔 案 系 統 , 就 得 手 <strong>動</strong> 的 檢 視 並 調 整 該 檔 案 中 關 於 檔 案 系 統 設 定 的<br />

相 關 設 定 。<br />

4.3 開 始 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong><br />

在 產 生 Kickstart 設 定 檔 後 , 您 就 可 以 展 開 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 的 <strong>動</strong> 作 了 。 要 開 始 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> , 您 必<br />

須 完 成 下 列 兩 個 步 驟 :<br />

• 把 Kickstart 設 定 檔 放 置 到 適 當 的 媒 體 上 。<br />

• 在 啟 <strong>動</strong> Anaconda <strong>安</strong> <strong>裝</strong> 程 式 時 , 指 定 執 行 Kickstart 模 式 。<br />

以 上 是 上 述 步 驟 的 詳 細 說 明 。<br />

4.3.1 Kickstart 設 定 檔 存 放 的 媒 體<br />

首 先 , 您 得 先 把 Kickstart 設 定 檔 儲 存 到 正 確 的 位 置 上 。 截 至 目 前 為 止 , 您 可 以 把<br />

Kickstart 設 定 檔 儲 存 於 下 列 幾 項 媒 體 上 :<br />

• 軟 碟 : 您 可 以 把 Kickstart 設 定 檔 儲 存 於 vfat 或 ext2 檔 案 系 統 的 軟 碟 片 中 。<br />

• 光 碟 : 您 也 可 以 把 Kickstart 設 定 檔 儲 存 於 標 準 的 ISO9660 檔 案 系 統 的 光 碟 片 中 。<br />

108


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

• 硬 碟 或 USB 拇 指 碟 : 如 果 您 的 電 腦 沒 有 軟 碟 , 也 沒 有 光 碟 , 那 還 可 以 把 Kickstart<br />

設 定 檔 儲 存 於 硬 碟 或 USB 拇 指 碟 中 。 <strong>與</strong> 軟 碟 一 樣 , 用 來 儲 存 Kickstart 設 定 檔 的 硬<br />

碟 或 USB 拇 指 碟 的 檔 案 系 統 必 須 為 vfat 或 ext2。<br />

• initrd 影 像 檔 : 您 還 可 以 把 Kickstart 設 定 檔 儲 存 於 initrd 影 像 檔 中 。<br />

• 網 路 中 的 伺 服 器 : 除 此 之 外 , 您 也 可 以 將 Kickstart 設 定 檔 儲 存 於 下 列 的 伺 服 器 上 ,<br />

分 享 給 Anaconda 使 用 :<br />

• HTTP 伺 服 器 。<br />

• FTP 伺 服 器 。<br />

• NFS 伺 服 器 。<br />

至 於 儲 存 於 上 述 媒 體 中 的 Kickstart 設 定 檔 之 檔 案 名 稱 為 何 , 這 就 悉 聽 尊 便 ; 但 如 果 沒<br />

有 好 的 主 意 , 我 會 建 議 您 使 用 ks.cfg 作 為 Kickstart 設 定 檔 的 檔 案 名 稱 。<br />

4.3.2 啟 <strong>動</strong> Kickstart <strong>安</strong> <strong>裝</strong> 模 式<br />

將 Kickstart 設 定 檔 儲 存 到 適 當 的 媒 體 後 , 您 就 可 以 正 式 的 啟 <strong>動</strong> Kickstart <strong>安</strong> <strong>裝</strong> 了 !!<br />

<strong>與</strong> 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> 一 樣 , 您 得 先 使 用 開 機 媒 體 來 啟 <strong>動</strong> 您 的 電 腦 , 以 便 執 行 Anaconda 這 個 <strong>安</strong><br />

<strong>裝</strong> 程 式 , 來 進 行 <strong>安</strong> <strong>裝</strong> 的 <strong>動</strong> 作 。 但 <strong>與</strong> 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> 不 同 的 是 , 您 必 須 給 予 Anaconda 正 確 的<br />

啟 <strong>動</strong> 參 數 14 , 方 能 順 利 的 執 行 Kickstart <strong>安</strong> <strong>裝</strong> 模 式 。<br />

至 於 要 給 予 什 麼 樣 的 參 數 , 則 因 Kickstart 設 定 檔 存 放 的 位 置 不 同 , 會 有 不 同 的 值 :<br />

軟 碟<br />

請 使 用 ks=floppy:PATH 格 式 指 定 Kickstart 設 定 檔 位 置 , 其 中 的 PATH 為<br />

Kickstart 設 定 檔 儲 存 的 路 徑 。<br />

14<br />

關 於 Anaconda 啟 <strong>動</strong> 參 數 請 參 閱 《 附 錄 C, Anaconda 常 見 參 數 》。<br />

109


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

光 碟 片<br />

請 使 用 ks=cdrom:PATH 指 定 Kickstart 設 定 檔 儲 存 於 光 碟 片 中 ,PATH 也 是<br />

Kickstart 設 定 檔 儲 存 的 路 徑 。<br />

硬 碟 <strong>與</strong> USB 拇 指 碟<br />

若 Kickstart 設 定 檔 儲 存 於 硬 碟 或 USB 外 接 磁 碟 設 備 中 , 請 使 用 ks=hd:DEV:PATH<br />

格 式 來 指 定 Kickstart 設 定 檔 的 位 置 。 其 中 的 DEV 為 硬 碟 或 USB 拇 指 碟 的 <strong>裝</strong> 置 名<br />

稱 , 而 PATH 則 為 Kickstart 設 定 檔 的 路 徑 。<br />

例 如 :ks=hd:sda1:/ks/myks.cfg。<br />

initrd 影 像 檔<br />

請 使 用 ks=file:PATH 格 式 指 定 Kickstart 設 定 檔 的 位 置 , 其 中 的 PATH 為 Kickstart<br />

設 定 檔 的 路 徑 。 例 如 :ks=file:/myks.cfg。<br />

網 路 伺 服 器<br />

如 果 Kickstart 設 定 檔 儲 存 於 網 路 伺 服 器 上 , 請 使 用 下 列 的 格 式 指 定 其 位 置 :<br />

• NFS 伺 服 器 :ks=nfs:SERVER:PATH, 其 中 的 SERVER 為 NFS 伺 服 器 的 主 機<br />

名 稱 或 IP 位 址 ,PATH 則 是 Kickstart 設 定 檔 的 路 徑 。<br />

例 如 :ks=nfs:linux.wholan.corp:/kickstart/myks.cfg。<br />

• FTP 伺 服 器 或 HTTP 伺 服 器 :ks=URL,URL 則 是 Kickstart 設 定 檔 的 URL。 例<br />

如 :ks=ftp://linux.wholan.corp/kickstart/myks.cfg。<br />

比 較 特 別 的 是 , 如 果 您 的 Kickstart 設 定 檔 儲 存 於 軟 碟 或 光 碟 片 中 , 則 PATH 欄 位 可 以<br />

省 略 。 若 省 略 PATH 時 , 您 的 Kickstart 設 定 檔 檔 案 名 稱 必 須 為 ks.cfg, 否 則 將 可 能<br />

因 找 不 到 Kickstart 設 定 檔 , 而 無 法 執 行 Kickstart <strong>安</strong> <strong>裝</strong> 模 式 。<br />

110


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

4.4 案 例 探 討 ( 一 ): 全 <strong>自</strong> <strong>動</strong> 化 <strong>安</strong> <strong>裝</strong><br />

在 我 多 年 的 實 務 <strong>與</strong> 教 學 經 驗 常 常 遇 到 一 個 問 題 :「Kickstart 既 然 用 來 進 行 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> ,<br />

為 什 麼 還 需 要 特 別 輸 入 ks 之 類 的 參 數 給 Anaconda?? 有 什 麼 方 法 可 以 不 用 輸 入 任 何 參<br />

數 , 只 要 把 <strong>安</strong> <strong>裝</strong> 光 碟 放 入 光 碟 機 , 重 新 開 機 後 使 用 光 碟 機 開 機 , 就 可 全 程 <strong>自</strong> <strong>動</strong> 進 行 <strong>安</strong><br />

<strong>裝</strong> ??」<br />

有 !!<br />

在 此 利 用 下 列 WhoLan Corp 這 個 虛 構 的 案 例 , 詳 細 說 明 如 何 產 生 可 以 全 <strong>自</strong> <strong>動</strong> 化 <strong>安</strong> <strong>裝</strong> 的<br />

<strong>安</strong> <strong>裝</strong> 光 碟 吧 !!<br />

我 得 聲 明 一 下 : 本 章 案 例 探 討 之 人 、 事 、 時 、 地 物 全 為 虛 構 , 如 有 雷 同 ,<br />

純 屬 巧 合 。<br />

4.4.1 情 境 說 明<br />

WhoLan Corp 是 一 家 生 產 電 腦 設 備 的 跨 國 性 企 業 集 團 。WhoLan Corp 打 算 將 每 一 台 電<br />

腦 全 部 更 換 為 Red Hat Enterprise Linux 系 統 , 而 且 每 一 台 電 腦 中 必 須 <strong>安</strong> <strong>裝</strong> WhoLan Corp<br />

開 發 的 管 理 系 統 。 在 一 個 內 部 會 議 中 , 這 個 重 責 大 任 被 分 配 到 系 統 部 經 理 Jacky 的 身<br />

上 。<br />

Jacky 分 析 發 現 ,WhoLan Corp 旗 下 共 有 數 萬 台 電 腦 , 分 佈 於 全 世 界 十 多 個 國 家 , 如<br />

果 要 手 <strong>動</strong> 的 為 每 一 台 電 腦 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux, 恐 怕 得 花 上 數 年 的 時 間 。 更<br />

111


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

麻 煩 的 是 ,WhoLan Corp 還 有 數 千 名 的 業 務 人 員 , 配 備 著 含 DVD 光 碟 的 筆 記 型 電 腦 ,<br />

這 些 業 務 人 員 常 遊 走 四 方 而 非 於 內 部 網 路 中 作 業 , 所 以 無 法 讓 他 們 在 內 部 網 路 中 進 行<br />

<strong>安</strong> <strong>裝</strong> 的 作 業 。<br />

為 了 順 利 完 成 更 換 系 統 的 任 務 ,Jacky 打 算 先 從 業 務 人 員 的 電 腦 著 手 。Jacky 想 到 Red<br />

Hat Enterprise Linux 提 供 了 Kickstart <strong>安</strong> <strong>裝</strong> 的 技 術 , 可 以 <strong>自</strong> <strong>動</strong> 化 的 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise<br />

Linux。 所 以 Jacky 打 算 發 給 每 一 個 業 務 人 員 一 張 Red Hat Enterprise Linux <strong>安</strong> <strong>裝</strong> 光 碟 ,<br />

利 用 Kickstart <strong>安</strong> <strong>裝</strong> 的 技 術 , 只 要 把 光 碟 片 放 入 光 碟 機 中 , 重 新 開 機 後 , 便 可 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong><br />

Red Hat Enterprise Linux。 這 樣 做 還 有 另 外 一 個 好 處 : 萬 一 業 務 人 員 電 腦 中 的 Red Hat<br />

Enterprise Linux 損 毀 時 , 還 可 以 直 接 使 用 <strong>安</strong> <strong>裝</strong> 光 碟 重 新 <strong>安</strong> <strong>裝</strong> 系 統 。<br />

後 來 測 試 時 ,Jacky 發 現 一 個 蠻 嚴 重 的 問 題 : 若 直 接 使 用 原 版 的 Red Hat Enterprise<br />

Linux <strong>安</strong> <strong>裝</strong> 光 碟 , 要 執 行 Kickstart <strong>安</strong> <strong>裝</strong> 模 式 , 那 得 在 執 行 啟 <strong>動</strong> 載 入 器 階 段 時 , 手 <strong>動</strong> 的<br />

指 定 Kickstart 相 關 參 數 給 Anaconda <strong>安</strong> <strong>裝</strong> 程 式 。 業 務 人 員 可 能 不 知 道 如 何 執 行 這 項 <strong>動</strong><br />

作 , 而 切 換 成 手 <strong>動</strong> <strong>安</strong> <strong>裝</strong> 模 式 , 這 會 造 成 許 多 困 擾 。<br />

為 此 ,Jacky 寫 了 一 篇 Email, 請 求 您 的 協 助 。 信 中 並 附 上 Jacky 提 供 的 Kickstart 設 定<br />

檔 (《 範 例 4.1, "WhoLan Corp 全 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 的 Kickstart 設 定 檔 "》)。<br />

範 例 4.1. WhoLan Corp 全 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 的 Kickstart 設 定 檔<br />

# Kickstart file automatically generated by anaconda.<br />

install<br />

cdrom<br />

key --skip<br />

lang zh_TW.UTF-8<br />

keyboard us<br />

xconfig --startxonboot<br />

network --device eth0 --bootproto dhcp<br />

rootpw --iscrypted $1$wcp9o6db$QjbL/teQqjMupLuR5xCWD0<br />

firewall --enabled --port=22:tcp --port=22:tcp<br />

authconfig --enableshadow --enablemd5<br />

selinux --enforcing<br />

timezone --utc Asia/Taipei<br />

bootloader --location=mbr --driveorder=sda --append="rhgb quiet"<br />

# The following is the partition information you requested<br />

112


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

# Note that any partitions you deleted are not expressed<br />

# here so unless you clear all partitions first, this is<br />

# not guaranteed to work<br />

clearpart --all<br />

part /boot --fstype ext3 --size=100<br />

part /usr --fstype ext3 --size=4096<br />

part swap --size=1024<br />

part / --fstype ext3 --size=512<br />

part /home --fstype ext3 --size=512<br />

part /var --fstype ext3 --size=512<br />

%packages<br />

@core<br />

@base<br />

@chinese-support<br />

@GNOME Desktop Environment<br />

device-mapper-multipath<br />

-sysreport<br />

您 , 可 以 幫 助 Jacky 解 決 這 個 問 題 嗎 ??<br />

4.4.2 分 析<br />

為 了 達 成 Jacky 的 理 想 , 我 們 先 複 習 一 下 Red Hat Enterprise Linux <strong>安</strong> <strong>裝</strong> 光 碟 如 何 展 開<br />

<strong>安</strong> <strong>裝</strong> 程 式 的 :<br />

1. 電 腦 的 BIOS 執 行 <strong>安</strong> <strong>裝</strong> 光 碟 中 的 啟 <strong>動</strong> 載 入 器 。<br />

2. <strong>安</strong> <strong>裝</strong> 光 碟 的 啟 <strong>動</strong> 載 入 器 等 候 使 用 者 選 擇 要 啟 <strong>動</strong> 的 項 目 。 在 使 用 者 選 擇 後 , 則 啟 <strong>動</strong> 該<br />

作 業 系 統 的 核 心 ; 若 使 用 者 一 直 沒 有 選 擇 , 則 靜 候 60 秒 鐘 後 , 直 接 啟 <strong>動</strong> 預 設 的 項<br />

目 。<br />

3. 啟 <strong>動</strong> 載 入 器 此 時 會 啟 <strong>動</strong> 儲 存 於 開 機 光 碟 中 的 Red Hat Enterprise Linux 核 心 , 並 且 將<br />

上 個 步 驟 使 用 者 額 外 輸 入 的 Anaconda 參 數 , 傳 給 Red Hat Enterprise Linux 核 心 。<br />

113


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

4. Red Hat Enterprise Linux 核 心 啟 <strong>動</strong> 時 , 會 掛 載 initrd 影 像 檔 成 為 臨 時 的 根 檔 案 系<br />

統 , 並 且 在 啟 <strong>動</strong> 完 Red Hat Enterprise Linux 核 心 後 執 行 /init, 也 就 是 位 於 initrd<br />

影 像 檔 根 目 錄 中 的 init。<br />

5. init 執 行 時 , 會 配 置 Red Hat Enterprise Linux 執 行 的 環 境 , 並 且 執 行 Anaconda <strong>安</strong><br />

<strong>裝</strong> 程 式 。<br />

上 述 的 步 驟 中 , <strong>與</strong> <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 最 重 要 的 關 鍵 有 二 :<br />

把 Kickstart 設 定 檔 儲 存 在 哪 裡<br />

第 一 個 要 決 定 的 就 是 Kickstart 設 定 檔 儲 存 的 位 置 。 為 了 能 讓 Anaconda 取 得 事 先<br />

設 定 好 的 Kickstart 設 定 檔 ,Jacky 必 須 把 Kickstart 設 定 檔 儲 存 於 <strong>安</strong> <strong>裝</strong> 光 碟 中 , 或<br />

者 initrd 影 像 檔 中 。<br />

啟 <strong>動</strong> 載 入 器 的 組 態<br />

其 次 ,Jacky 得 修 改 啟 <strong>動</strong> 載 入 器 的 組 態 , 以 便 在 啟 <strong>動</strong> 載 入 器 執 行 時 , 可 以 把 預 設 的<br />

Kickstart 設 定 檔 位 置 , 傳 送 給 <strong>安</strong> <strong>裝</strong> 光 碟 中 的 Red Hat Enterprise Linux 核 心 。<br />

這 兩 個 關 鍵 重 點 的 詳 細 介 紹 如 下 。<br />

Kickstart 設 定 檔 儲 存 的 位 置<br />

先 前 提 過 , 我 們 可 以 把 Kickstart 設 定 檔 儲 存 於 數 種 媒 體 上 。 若 以 <strong>安</strong> <strong>裝</strong> 光 碟 為 界 線 , 可<br />

分 為 下 列 兩 類 :<br />

• <strong>安</strong> <strong>裝</strong> 光 碟 外 : 包 含 軟 碟 、 其 他 的 光 碟 片 、 硬 碟 、USB 拇 指 碟 、NFS 伺 服 器 、HTTP<br />

伺 服 器 , 以 及 FTP 伺 服 器 。<br />

• <strong>安</strong> <strong>裝</strong> 光 碟 內 : 包 含 <strong>安</strong> <strong>裝</strong> 光 碟 的 光 碟 片 中 。<br />

114


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

可 是 以 WhoLan Corp 這 個 案 例 來 說 , 若 把 Kickstart 設 定 檔 儲 存 於 <strong>安</strong> <strong>裝</strong> 光 碟 外 的 媒 體 ,<br />

一 來 會 造 成 使 用 者 進 行 <strong>安</strong> <strong>裝</strong> 前 , 必 須 先 <strong>安</strong> <strong>裝</strong> 這 些 媒 體 ; 二 來 也 還 需 準 備 這 些 儲 存<br />

Kickstart 設 定 檔 的 媒 體 。 我 想 , 這 並 不 是 Jacky 所 樂 見 的 。 因 此 , 我 們 必 須 排 除 這 個<br />

想 法 。<br />

只 剩 下 把 Kickstart 設 定 檔 儲 存 於 <strong>安</strong> <strong>裝</strong> 光 碟 內 了 !! 若 要 把 Kickstart 設 定 檔 儲 存 於 <strong>安</strong> <strong>裝</strong> 光<br />

碟 中 , 此 時 必 須 符 合 下 列 的 要 求 :<br />

• Kickstart 設 定 檔 必 須 儲 存 於 <strong>安</strong> <strong>裝</strong> 光 碟 的 最 上 層 目 錄 中 。<br />

• Kickstart 設 定 檔 必 須 命 名 為 ks.cfg。<br />

• 啟 <strong>動</strong> 載 入 器 必 須 使 用 ks=cdrom 告 知 Anaconda <strong>安</strong> <strong>裝</strong> 程 式 Kickstart 設 定 檔 的 位 置 。<br />

啟 <strong>動</strong> 載 入 器 組 態 重 點<br />

啟 <strong>動</strong> 載 入 器 的 組 態 重 點 有 二 :<br />

預 設 的 啟 <strong>動</strong> 項 目 等 候 時 間<br />

由 於 <strong>安</strong> <strong>裝</strong> 光 碟 的 啟 <strong>動</strong> 載 入 器 執 行 時 , 會 等 候 使 用 者 選 擇 要 執 行 的 項 目 , 若 使 用 者<br />

沒 有 選 擇 任 何 項 目 必 須 等 候 六 十 秒 才 會 啟 <strong>動</strong> 預 設 的 項 目 。 如 果 沒 有 處 理 這 個 問 題 ,<br />

業 務 人 員 可 能 會 傻 傻 的 坐 在 電 腦 前 不 知 所 措 。 為 了 讓 <strong>安</strong> <strong>裝</strong> 光 碟 能 直 接 啟 <strong>動</strong> Kickstart<br />

<strong>安</strong> <strong>裝</strong> 模 式 ,Jacky 必 須 修 改 <strong>安</strong> <strong>裝</strong> 光 碟 的 啟 <strong>動</strong> 載 入 器 中 等 待 時 間 的 設 定 , 這 樣 才 能 縮<br />

短 使 用 者 等 候 的 時 間 。<br />

預 設 的 啟 <strong>動</strong> 參 數<br />

另 外 ,Jacky 也 得 修 改 啟 <strong>動</strong> 載 入 器 中 交 付 給 核 心 的 Anaconda 參 數 , 這 樣 才 能 順 利<br />

的 執 行 我 們 指 定 的 Kickstart 設 定 檔 。<br />

115


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

4.4.3 準 備 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟<br />

準 備 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 的 最 重 要 目 的 , 就 是 要 產 生 一 個 擁 有 著 <strong>自</strong> 訂 的 啟 <strong>動</strong> 載 入 器 <strong>與</strong> 儲 存 著<br />

Kickstart 設 定 檔 的 <strong>安</strong> <strong>裝</strong> 光 碟 , 以 便 可 以 利 用 這 個 <strong>安</strong> <strong>裝</strong> 光 碟 進 行 全 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> 。<br />

由 於 光 碟 片 中 的 檔 案 是 唯 讀 的 , 因 此 我 們 必 須 先 把 Red Hat Enterprise Linux 5 的 <strong>安</strong> <strong>裝</strong><br />

光 碟 內 容 , 複 製 至 硬 碟 才 能 進 行 修 改 <strong>與</strong> 調 整 。 複 製 <strong>安</strong> <strong>裝</strong> 光 碟 的 方 法 , 會 因 <strong>安</strong> <strong>裝</strong> 光 碟 是<br />

光 碟 片 , 亦 或 是 剛 從 RHN 中 下 載 取 回 的 ISO 檔 ; 甚 至 是 CD 格 式 , 或 DVD 格 式 , 會<br />

有 數 種 不 同 的 組 合 。<br />

不 管 您 的 <strong>安</strong> <strong>裝</strong> 來 源 為 何 , 基 本 的 精 神 就 是 : 把 所 有 <strong>安</strong> <strong>裝</strong> 光 碟 的 內 容 , 複 製 到 同 一 個 目<br />

錄 即 可 。 以 下 是 我 複 製 DVD 型 態 的 <strong>安</strong> <strong>裝</strong> 光 碟 之 範 例 :<br />

範 例 4.2. 複 製 DVD 型 態 的 <strong>安</strong> <strong>裝</strong> 光 碟<br />

[root@linux ~]# cp -a /media/DVD/ rhel5source/<br />

[root@linux ~]# ls rhel5source/<br />

Cluster/ README-or.html RELEASE-NOTES-ml.html<br />

ClusterStorage/ README-pa.html RELEASE-NOTES-mr.html<br />

EULA README-pt_BR.html RELEASE-NOTES-or.html<br />

eula.en_US README-ru.html RELEASE-NOTES-pa.html<br />

GPL README-si.html RELEASE-NOTES-pt_BR.html<br />

images/ README-ta.html RELEASE-NOTES-ru.html<br />

isolinux/ README-te.html RELEASE-NOTES-si.html<br />

README-as.html README-zh_CN.html RELEASE-NOTES-ta.html<br />

README-bn.html README-zh_TW.html RELEASE-NOTES-te.html<br />

README-de.html RELEASE-NOTES-as.html RELEASE-NOTES-zh_CN.html<br />

README-en RELEASE-NOTES-bn.html RELEASE-NOTES-zh_TW.html<br />

README-en.html RELEASE-NOTES-de.html RPM-GPG-KEY-fedora<br />

README-es.html RELEASE-NOTES-en RPM-GPG-KEY-fedora-test<br />

README-fr.html RELEASE-NOTES-en.html RPM-GPG-KEY-redhat-auxiliary<br />

README-gu.html RELEASE-NOTES-es.html RPM-GPG-KEY-redhat-beta<br />

README-hi.html RELEASE-NOTES-fr.html RPM-GPG-KEY-redhat-former<br />

README-it.html RELEASE-NOTES-gu.html RPM-GPG-KEY-redhat-release<br />

README-ja.html RELEASE-NOTES-hi.html Server/<br />

README-kn.html RELEASE-NOTES-it.html TRANS.TBL<br />

README-ko.html RELEASE-NOTES-ja.html VT/<br />

README-ml.html RELEASE-NOTES-kn.html<br />

README-mr.html RELEASE-NOTES-ko.html<br />

[root@linux ~]#<br />

116


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

複 製 完 <strong>安</strong> <strong>裝</strong> 光 碟 的 內 容 後 , 別 忘 記 把 您 撰 寫 好 的 Kickstart 設 定 檔 , 放 置 於 工 作 目 錄 的<br />

最 上 層 ( 以 這 個 案 例 來 說 , 請 把 Kickstart 設 定 檔 儲 存 於 rhel5source/ 目 錄 中 ), 並<br />

且 命 名 為 ks.cfg, 以 便 符 合 "Kickstart 設 定 檔 儲 存 的 位 置 " 提 及 的 要 求 。<br />

4.4.4 修 改 啟 <strong>動</strong> 載 入 器 設 定<br />

誠 如 於 " 啟 <strong>動</strong> 載 入 器 組 態 重 點 " 提 過 的 「 為 了 能 讓 使 用 者 於 開 機 時 , <strong>自</strong> <strong>動</strong> 的 啟 <strong>動</strong> <strong>自</strong> 製 開<br />

機 光 碟 中 <strong>安</strong> <strong>裝</strong> 程 式 , 並 立 即 執 行 Kickstart <strong>安</strong> <strong>裝</strong> , 我 們 必 須 修 改 開 機 光 碟 中 的 啟 <strong>動</strong> 載 入<br />

器 之 預 設 項 目 , 以 及 附 加 的 啟 <strong>動</strong> 參 數 」, 現 在 就 讓 我 們 來 研 究 如 何 修 改 <strong>安</strong> <strong>裝</strong> 光 碟 中 的<br />

啟 <strong>動</strong> 載 入 器 吧 。<br />

Red Hat Enterprise Linux 5 <strong>安</strong> <strong>裝</strong> 光 碟 中 的 啟 <strong>動</strong> 載 入 器 , 並 非 普 通 的 Red Hat Enterprise<br />

Linux 所 使 用 的 GRUB, 而 是 SYSLINUX 套 件 中 的 ISOLINUX 15 。 因 此 , 組 態 <strong>安</strong> <strong>裝</strong> 光<br />

碟 啟 <strong>動</strong> 載 入 器 的 方 法 , 便 <strong>與</strong> GRUB 設 定 方 法 不 同 了 。<br />

您 可 以 從 <strong>安</strong> <strong>裝</strong> 光 碟 中 找 到 一 個 名 為 isolinux/ 的 目 錄 , 這 個 目 錄 用 來 儲 存 ISOLINUX<br />

的 相 關 檔 案 。 其 中 最 重 要 的 應 屬 isolinux.cfg, 因 為 這 個 檔 案 就 是 ISOLINUX 的<br />

設 定 檔 。isolinux.cfg 中 <strong>與</strong> 我 們 要 修 改 的 項 目 有 關 的 參 數 , 包 含 :<br />

參 數<br />

default LABEL<br />

timeout TIMEOUT<br />

label LABEL<br />

kernel IMGFILE<br />

說 明<br />

預 設 啟 <strong>動</strong> 的 作 業 系 統 名 稱 。<br />

預 設 等 待 的 時 間 , 單 位 為 0.1 秒 。<br />

作 業 系 統 的 代 號 。<br />

核 心 的 影 像 檔 名 稱 , 該 檔 案 必 須 儲 存 於 isolinux/ 目 錄<br />

中 。<br />

15<br />

SYSLINUX 的 官 方 網 址 為 :http://syslinux.zytor.com/。<br />

117


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

參 數<br />

append OPTIONS<br />

說 明<br />

要 傳 遞 給 核 心 的 啟 <strong>動</strong> 參 數 。<br />

以 下 是 我 推 薦 給 Jacky 使 用 的 isolinux.cfg 範 例 :<br />

範 例 4.3. 修 改 後 的 isolinux.cfg 設 定 檔<br />

1 #default linux<br />

2 default install ❶<br />

3 prompt 1<br />

4 #timeout 600<br />

5 timeout 50 ❷<br />

6 display boot.msg<br />

7 F1 boot.msg<br />

8 F2 options.msg<br />

9 F3 general.msg<br />

10 F4 param.msg<br />

11 F5 rescue.msg<br />

12 label install ❸<br />

13 kernel vmlinuz<br />

14 append ks=cdrom❹ initrd=initrd.img<br />

15 label linux<br />

16 kernel vmlinuz<br />

17 append initrd=initrd.img<br />

18 label text<br />

19 kernel vmlinuz<br />

20 append initrd=initrd.img text<br />

21 label ks<br />

22 kernel vmlinuz<br />

23 append ks initrd=initrd.imglabel local<br />

24 localboot 1<br />

25 label memtest86<br />

26 kernel memtest<br />

27 append -<br />

❶<br />

❷<br />

❸<br />

設 定 預 設 要 啟 <strong>動</strong> 的 作 業 系 統 代 號 為 install。<br />

使 開 機 後 等 候 五 秒 鐘 , 若 五 秒 內 使 用 者 沒 有 輸 入 任 何 項 目 時 , 便 啟 <strong>動</strong> 預 設 的 作 業<br />

系 統 。<br />

這 是 我 新 增 的 作 業 系 統 , 代 號 就 是 install。<br />

118


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

❹<br />

這 是 用 來 啟 <strong>動</strong> <strong>自</strong> <strong>動</strong> 化 <strong>安</strong> <strong>裝</strong> 的 Kickstart 設 定 檔 定 義 , 也 是 這 個 案 例 的 關 鍵 。 利 用<br />

這 個 參 數 , 可 以 讓 Anaconda 從 <strong>安</strong> <strong>裝</strong> 光 碟 最 上 層 目 錄 中 的 ks.cfg, 作 為 Kickstart<br />

設 定 檔 。<br />

4.4.5 產 生 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟<br />

完 成 上 述 步 驟 後 , 您 就 可 以 正 式 的 產 生 <strong>自</strong> 製 的 <strong>安</strong> <strong>裝</strong> 光 碟 了 !! 這 個 階 段 的 步 驟 有 二 :<br />

製 作 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 的 ISO 檔<br />

首 先 , 請 先 產 生 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 的 ISO 檔 , 在 Red Hat Enterprise Linux 系 統 中 , 您 可 使<br />

用 mkisofs 這 個 工 具 來 產 生 <strong>安</strong> <strong>裝</strong> 光 碟 的 ISO 檔 。 為 了 能 順 利 的 使 用 mkisofs 工 具 ,<br />

您 必 須 先 <strong>安</strong> <strong>裝</strong> mkisofs 套 件 。<br />

為 了 能 在 製 作 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 的 ISO 檔 中 產 生 正 確 的 檔 案 , 請 先 完 成 下 列 幾 項 工 作 :<br />

• 刪 除 各 目 錄 中 的 TRANS.TBL 檔 案 。<br />

• 刪 除 isolinux/boot.cat 檔 案 。<br />

• 將 isolinux/ 中 所 有 檔 案 設 為 可 寫 入 。<br />

以 下 是 我 製 作 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 ISO 檔 案 的 示 範 :<br />

範 例 4.4. 製 作 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 ISO 檔<br />

[root@linux rhel5source]# find -type f -name "TRANS.TBL" | xargs rm -f ❶<br />

[root@linux rhel5source]# rm isolinux/boot.cat ❷<br />

rm: remove regular file `isolinux/boot.cat'? y<br />

[root@linux rhel5source]# chmod +w isolinux/* ❸<br />

[root@linux rhel5source]# mkisofs -o ../myrhel5.iso -J -r -v \ ❹<br />

> -b isolinux/isolinux.bin -c isolinux/boot.cat \ ❺<br />

> -no-emul-boot -boot-load-size 4 -boot-info-table \<br />

> -V "My RHEL5 Install DVD" \ ❻<br />

> . ❼<br />

INFO:<br />

UTF-8 character encoding detected by locale settings.<br />

119


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

Assuming UTF-8 encoded filenames on source filesystem,<br />

use -input-charset to override.<br />

mkisofs 2.01 (cpu-pc-linux-gnu) ❽<br />

Scanning .<br />

Scanning ./images<br />

Scanning ./images/xen<br />

Scanning ./images/pxeboot<br />

Scanning ./isolinux<br />

Scanning ./ClusterStorage<br />

Scanning ./ClusterStorage/repodata<br />

Scanning ./Cluster<br />

Scanning ./Cluster/repodata<br />

Scanning ./VT<br />

Scanning ./VT/repodata<br />

Scanning ./Server<br />

Scanning ./Server/repodata<br />

Using RELEA000.HTM;1 for /RELEASE-NOTES-U1-mr.html (RELEASE-NOTES-U1-or.html)<br />

Using RELEA001.HTM;1 for /RELEASE-NOTES-U1-or.html (RELEASE-NOTES-bn.html)<br />

Using RELEA002.HTM;1 for /RELEASE-NOTES-bn.html (RELEASE-NOTES-de.html)<br />

...<br />

Writing: The File(s) Start Block 352<br />

0.34% done, estimate finish Mon Mar 10 03:01:35 2008<br />

0.69% done, estimate finish Mon Mar 10 02:59:09 2008<br />

1.03% done, estimate finish Mon Mar 10 02:59:58 2008<br />

...<br />

99.32% done, estimate finish Mon Mar 10 02:59:45 2008<br />

99.66% done, estimate finish Mon Mar 10 02:59:44 2008<br />

Total translation table size: 587185<br />

Total rockridge attributes bytes: 253227<br />

Total directory bytes: 382976<br />

Path table size(bytes): 188<br />

Done with: The File(s) Block(s) 1459451<br />

Writing: Ending Padblock Start Block 1459803<br />

Done with: Ending Padblock Block(s) 150<br />

Max brk space used 1f5000<br />

1459953 extents written (2851 MB)<br />

[root@linux rhel5source]# file ../myrhel5.iso ❾<br />

../myrhel5.iso: ISO 9660 CD-ROM filesystem data UDF filesystem data (unknown ver<br />

sion, id 'NSR01') 'My RHEL5 Install DVD<br />

' (bootable)<br />

[root@linux rhel5source]#<br />

❶ 先 刪 除 各 目 錄 中 的 TRANS.TBL 檔 案 。<br />

❷ 再 刪 除 isolinux/boot.cat 檔 案 。<br />

❸ 將 isolinux/ 所 有 檔 案 設 定 為 可 寫 入 。<br />

120


第 4 章 : <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> <strong>與</strong> <strong>升</strong> <strong>級</strong><br />

❹ 執 行 mkisofs 來 產 生 <strong>自</strong> 製 <strong>安</strong> <strong>裝</strong> 光 碟 的 ISO 檔 吧 !! 這 裡 先 指 定 將 產 生 的 ISO 檔 ,<br />

儲 存 成 上 層 目 錄 的 myrhel5.iso。<br />

❺ 使 用 ISOLINUX 作 為 <strong>安</strong> <strong>裝</strong> 光 碟 的 啟 <strong>動</strong> 載 入 器 。<br />

❻ 將 光 碟 的 磁 卷 識 別 碼 (Volumn ID) 設 定 成 "My RHEL5 Install DVD"。<br />

❼ 把 目 前 工 作 目 錄 中 所 有 檔 案 加 入 <strong>安</strong> <strong>裝</strong> 光 碟 中 。<br />

❽ 開 始 產 生 ISO 檔 吧 !! 這 可 能 需 要 一 些 時 間 , 請 耐 心 等 候 。<br />

❾ 完 成 後 , 檢 視 一 下 myrhel5.iso 的 類 型 <strong>與</strong> 識 別 碼 是 否 正 確 。 看 起 來 是 正 確 的 ,<br />

恭 喜 了 , 大 功 告 成 !!<br />

產 生 檢 驗 碼<br />

產 生 ISO 檔 後 , 接 著 我 們 必 須 為 Red Hat Enterprise Linux 5 <strong>安</strong> <strong>裝</strong> 光 碟 加 上 MD5 的 檢 查<br />

碼 , 否 則 Anaconda 可 能 會 認 為 這 不 是 一 個 正 確 的 Red Hat Enterprise Linux 5 <strong>安</strong> <strong>裝</strong> 光<br />

碟 , 而 無 法 進 行 <strong>安</strong> <strong>裝</strong> 的 作 業 。<br />

在 Red Hat Enterprise Linux 5 中 ,Red Hat 提 供 了 一 個 名 為 anaconda-runtime 套<br />

件 , 這 個 套 件 提 供 了 一 堆 <strong>與</strong> Anaconda 有 關 的 工 具 。anaconda-runtime 中 提 供 了<br />

一 個 名 為 implantisomd5 的 工 具 , 請 您 使 用 這 個 工 具 來 產 生 <strong>安</strong> <strong>裝</strong> 光 碟 的 MD5 檢 查<br />

碼 :<br />

範 例 4.5. 產 生 <strong>安</strong> <strong>裝</strong> 光 碟 檢 驗 碼<br />

[root@linux rhel5source]# /usr/lib/anaconda-runtime/implantisomd5 \<br />

> --force ../myrhel5.iso<br />

Inserting md5sum into iso image...<br />

md5 = 0a3cfc15407f7611cc0d7b5d3c873b3a<br />

Inserting fragment md5sums into iso image...<br />

fragmd5 = b144d8e2c69cb881cdaf4dab5f735d87c7d87486cf17feba69a5a4f63d53<br />

frags = 20<br />

Setting supported flag to 0<br />

[root@linux rhel5source]#<br />

121


Red Hat Enterprise Linux 5 系 統 管 理 寶 典 - 進 階 篇<br />

完 成 上 述 <strong>動</strong> 作 後 , 您 就 可 以 把 方 才 產 生 的 ISO 檔 , 交 給 Jacky 並 燒 錄 成 為 光 碟 片 。 這<br />

個 光 碟 片 , 就 是 用 來 全 程 <strong>自</strong> <strong>動</strong> 化 <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux 5 的 <strong>安</strong> <strong>裝</strong> 光 碟 。<br />

以 後 ,Jacky 只 要 把 這 個 光 碟 片 發 給 使 用 者 , 告 知 他 們 把 光 碟 片 放 入 光 碟 機 , 並 且 重<br />

新 開 機 , 然 後 等 上 一 段 時 間 , 完 成 後 使 用 者 的 電 腦 就 有 一 個 全 新 的 Red Hat Enterprise<br />

Linux 5 了 !!<br />

4.5 結 論<br />

想 要 <strong>自</strong> <strong>動</strong> <strong>安</strong> <strong>裝</strong> Red Hat Enterprise Linux 嗎 ?? 希 望 本 章 的 介 紹 , 能 讓 您 了 解 Red Hat<br />

Enterprise Linux 提 供 的 Kickstart <strong>安</strong> <strong>裝</strong> 模 式 , 並 在 實 務 上 利 用 Kickstart 來 解 決 您 遇 到 的<br />

需 求 。 加 油 !!<br />

122

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!