本章介紹在基於 x86 的系統上執行基於 GRUB 之啟動,此啟動與 Solaris 安裝相關。本章包含下列小節:
採用開放原始碼開機管理程式 GRUB 做為 Solaris 作業系統的預設開機管理程式。
在基於 SPARC 的系統上無法進行基於 GRUB 之啟動。
開機管理程式是啟動系統後第一個執行的軟體程式。啟動基於 x86 的系統後,基本輸入/輸出系統 (BIOS) 會初始化 CPU、記憶體和平台硬體。完成初始化階段後,BIOS 會從配置的啟動裝置載入開機管理程式,接著將系統的控制權轉給開機管理程式。
GRUB 是具有簡易功能表介面的開放原始碼開機管理程式,此功能表介面內含預先在配置檔案中定義的啟動選項。GRUB 另有指令行介面,可從功能表介面存取,以執行各種啟動指令。在 Solaris 作業系統中,GRUB 的實作符合多重啟動規格。http://www.gnu.org/software/grub/grub.html 提供詳細的規格說明。
由於 Solaris 核心完全符合多重啟動規格,因此可以使用 GRUB 啟動 Solaris 基於 x86 的系統。使用 GRUB 讓您更容易啟動並安裝各種作業系統。例如,您可以在一個系統上個別啟動下列作業系統:
Solaris 作業系統
Microsoft Windows
GRUB 會偵測 Microsoft Windows 分割區,但不會驗證是否可以啟動作業系統。
GRUB 的主要優點之一在於檔案系統和核心可執行檔格式方面是直覺式的,無須將核心的實體位置記錄到磁碟即可載入作業系統。使用基於 GRUB 之啟動時,透過指定核心所在的檔案名稱、磁碟機及其所在的分割區即可載入核心。基於 GRUB 之啟動取代了 Solaris Device Configuration Assistant,並透過 GRUB 功能表簡化了啟動程序。
GRUB 取得系統控制權後,在主控台上會顯示一個功能表。在 GRUB 功能表中,您可以執行下列動作:
選取啟動系統項目
使用內建 GRUB 編輯功能表修改啟動項目
手動從指令行載入作業系統核心
可使用可配置的逾時來啟動預設的作業系統項目。按下任意鍵可中斷預設的作業系統項目啟動。
若要檢視 GRUB 功能表範例,請參閱GRUB 主功能表的說明。
GRUB 使用的裝置命名慣例和舊版的 Solaris 作業系統稍有不同。瞭解 GRUB 裝置命名慣例有助於在配置系統上的 GRUB 時,能正確指定磁碟機和分割區資訊。
下表說明 GRUB 裝置命名慣例。
表 6–1 GRUB 裝置的命名慣例
裝置名稱 |
說明 |
---|---|
(fd0), (fd1) |
第一張磁片,第二張磁片 |
(nd) |
網路裝置 |
(hd0,0), (hd0,1) |
第一個 bios 磁碟的第一個和第二個 fdisk 分割區 |
(hd0,0,a), (hd0,0,b) |
第一個 bios 磁碟的第一個 fdisk 分割區之 Solaris/BSD 磁碟片段 0 和 1 |
所有 GRUB 裝置名稱均必須加上括弧。分割區編號從 0 算起,而不是從 1 算起。
如需有關 fdisk 分割區的更多資訊,請參閱「System Administration Guide: Devices and File Systems」中的「Guidelines for Creating an fdisk Partition」。
如需有關這些變更的更多資訊,請參閱以下參考資料。
表 6–2 使用 GRUB 安裝之相關資訊的位置
主題 |
GRUB 功能表作業 |
更多資訊 |
---|---|---|
安裝 |
從 Solaris 作業系統 CD 或 DVD 媒體安裝 | |
從網路安裝影像安裝 | ||
配置 DHCP 伺服器以供網路安裝使用 | ||
使用自訂 JumpStart 程式進行安裝 |
「Solaris 10 8/07 安裝指南:自訂 JumpStart 及進階安裝」中的「執行自訂 JumpStart 安裝 」 |
|
使用 Solaris Live Upgrade 啟動或轉至備用啟動環境 | ||
系統管理 |
如需有關 GRUB 和管理作業的更多詳細資訊 |
「System Administration Guide: Basic Administration」中的第 11 章「GRUB Based Booting (Tasks)」 |
本節說明基於 GRUB 之啟動的基本原則並說明 GRUB 功能表。
安裝 Solaris 作業系統時,預設會在系統上安裝兩個 GRUB 功能表項目。第一個項目是 Solaris 作業系統項目。第二個項目是故障安全防護啟動歸檔,用在系統回復上。Solaris GRUB 功能表項目會做為 Solaris 軟體安裝與升級程序的一部分自動安裝與更新。這些項目由作業系統直接管理,無法手動進行編輯。
在標準 Solaris 作業系統安裝期間,會在 Solaris fdisk 分割區上安裝 GRUB,無須修改系統 BIOS 設定。如果作業系統不在 BIOS 啟動磁碟上,就必須執行下列動作之一:
修改 BIOS 設定。
使用啟動管理員啟動 Solaris 分割區。如需更多詳細資訊,請參閱啟動管理員。
比較好的方法是在啟動磁碟上安裝 Solaris 作業系統。如果一部機器上安裝了多個作業系統,您可以將項目增加到 menu.lst 檔案。這些項目會接著在您下次啟動系統時,顯示在 GRUB 功能表中。
如需有關多個作業系統的額外資訊,請參閱「System Administration Guide: Basic Administration」中的「How Multiple Operating Systems Are Supported in the GRUB Boot Environment」。
執行基於 GRUB 的網路啟動需要針對 PXE 用戶端配置的 DHCP 伺服器,以及提供 tftp 服務的安裝伺服器。DHCP 伺服器必須能夠回應 DHCP 類別 PXEClient 和 GRUBClient。DHCP 回應必須包含下列資訊:
檔案伺服器的 IP 位址
啟動檔案的名稱 (pxegrub)
伺服器端通常需要 rpc.bootparamd 來執行網路啟動,如果是基於 GRUB 的網路啟動則不需要。
如果沒有 PXE 或 DHCP 伺服器,您可以從 CD-ROM 或本機磁碟下載 GRUB。接著,您可以手動配置 GRUB 中的網路,並從檔案伺服器下載多重啟動程式和啟動歸檔。
如需更多資訊,請參閱「Solaris 10 8/07 安裝指南:網路安裝」中的「藉由 PXE 從網路啟動與安裝之簡介」。
當您啟動基於 x86 的系統時,會顯示 GRUB 功能表。此功能表提供啟動項目清單,以從中進行選擇。啟動項目是系統上所安裝之作業系統實例。GRUB 功能表基於 menu.lst 檔案,而此檔案是配置檔案。menu.lst 檔案由 Solaris 安裝程式所建立,並可在安裝後進行修改。menu.lst 檔案指定 GRUB 功能表上所顯示的作業系統實例清單。
如果安裝或升級 Solaris 作業系統,便會自動更新 GRUB 功能表。Solaris 作業系統會接著顯示為新的啟動項目。
如果您安裝的作業系統不是 Solaris 作業系統,則必須修改 menu.lst 配置檔以納入新的作業系統實例。增加作業系統實例可讓新的啟動項目在下次啟動系統時,出現在 GRUB 功能表中。
在下列範例中,GRUB 主功能表會顯示 Solaris 和 Microsoft Windows 作業系統。也會列出名為 second_disk 的 Solaris Live Upgrade 啟動環境。請參閱以下對每個功能表項目的說明。
GNU GRUB version 0.95 (616K lower / 4127168K upper memory) +-------------------------------------------------------------------+ |Solaris | |Solaris failsafe | |second_disk | |second_disk failsafe | |Windows | +-------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
指定 Solaris 作業系統。
指定 Solaris 作業系統損毀時用以回復的啟動歸檔。
指定 Solaris Live Upgrade 的啟動環境。已建立 second_disk 啟動環境做為 Solaris 作業系統的副本。並使用 luactivate 指令升級與啟動。啟動環境可供啟動使用。
指定 Microsoft Windows 作業系統。GRUB 會偵測這些分割區,但不會驗證是否可啟動作業系統。
GRUB menu.lst 檔案會列出 GRUB 主功能表的內容。GRUB 主功能表會列出系統上所安裝之所有作業系統實例的啟動項目,包括 Solaris Live Upgrade 啟動環境。Solaris 軟體升級程序會保留對此檔案所做的任何變更。
GRUB 主功能表會顯示對 menu.lst 檔案所做的任何修訂,還會顯示 Solaris Live Upgrade 項目。對此檔案所做的任何變更會在下次系統重新啟動時生效。下列原因時您可以修改此檔案:
為 Solaris 以外的作業系統增加到 GRUB 功能表項目
自訂啟動運作方式,例如在 GRUB 功能表上指定預設的作業系統
請勿使用 GRUB menu.lst 檔案修改 Solaris Live Upgrade 項目。修改可能會造成 Solaris Live Upgrade 失敗。
雖然您可以使用 menu.lst 檔案自訂啟動運作方式,例如使用核心除錯程式啟動,但是比較好的自訂方法是使用 eeprom 指令。如果使用 menu.lst 檔案進行自訂,軟體升級期間可能會修改 Solaris 作業系統項目。因此,對檔案所做的變更可能會遺失。
如需有關如何使用 eeprom 指令的資訊,請參閱「System Administration Guide: Basic Administration」中的「How to Set Solaris Boot Parameters by Using the eeprom Command」。
以下是 menu.lst 檔案的範例:
default 0 timeout 10 title Solaris root (hd0,0,a) kernel /platform/i86pc/multiboot -B console=ttya module /platform/i86pc/boot_archive title Solaris failsafe root (hd0,0,a) kernel /boot/multiboot -B console=ttya -s module /boot/x86.miniroot.safe #----- second_disk - ADDED BY LIVE UPGRADE - DO NOT EDIT ----- title second_disk root (hd0,1,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title second_disk failsafe root (hd0,1,a) kernel /boot/multiboot kernel/unix -s module /boot/x86.miniroot-safe #----- second_disk -------------- END LIVE UPGRADE ------------ title Windows root (hd0,0) chainloader -1 |
指定逾時過期時要啟動哪個項目。若要變更預設值,可以變更數字以指定清單中的另一項目。第一個標題的計數從零開始。例如,將預設值變更為 2,以自動啟動為 second_disk 啟動環境。
指定啟動預設項目之前等待使用者輸入的時間 (秒)。如果沒有指定逾時,就必須選擇一個項目。
指定作業系統名稱。
如果是 Solaris Live Upgrade 啟動環境,作業系統名稱會是您在建立新的啟動環境時所指定的名稱。在前述範例中,Solaris Live Upgrade 啟動環境被命名為 second_disk。
如果是故障安全防護啟動歸檔,此啟動歸檔會在主作業系統損毀時用以進行回復。在前述範例中,Solaris 故障安全防護和 second_disk 故障安全防護是 Solaris 和 second_disk 作業系統的回復啟動歸檔。
指定檔案要載入哪個磁碟、分割區和磁碟片段。GRUB 會自動偵測檔案系統類型。
指定多重啟動程式。核心指令之後必須跟著多重啟動程式。多重啟動之後的字串會傳遞到 Solaris 作業系統,而不會進行解譯。
如需有關多個作業系統的完整說明,請參閱「System Administration Guide: Basic Administration」中的「How Multiple Operating Systems Are Supported in the GRUB Boot Environment」。
必須一律使用 bootadm 指令來尋找 GRUB 功能表的 menu.lst 檔案。list-menu 子指令會尋找使用中的 GRUB 功能表。menu.lst 檔案會列出系統上所安裝之所有作業系統的清單。此檔案內容指定 GRUB 功能表上會顯示的作業系統清單。如果您想變更這個檔案,請參閱「Solaris 10 8/07 安裝指南:Solaris Live Upgrade 與升級規劃」中的「尋找 GRUB 功能表的 menu.lst 檔案 (作業)」。