Solaris 10 6/06 安裝指南:Solaris Live Upgrade 與升級規劃

第 5 章 x86: 基於 GRUB 啟動進行 Solaris 安裝

本章介紹在基於 x86 的系統上執行基於 GRUB 的啟動,此啟動與 Solaris 安裝相關。本章包含下列小節:

x86: 基於 GRUB 之啟動 (簡介)

採用開放原始碼開機管理程式 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 讓您更容易啟動並安裝各種作業系統。例如,您可以在一個系統上個別啟動下列作業系統:

GRUB 的主要優點之一在於檔案系統和核心可執行檔格式方面是直覺式的,無須將核心的實體位置記錄到磁碟即可載入作業系統。使用基於 GRUB 之啟動時,透過指定核心所在的檔案名稱、磁碟機及其所在的分割區即可載入核心。基於 GRUB 之啟動取代了 Solaris Device Configuration Assistant,並透過 GRUB 功能表簡化了啟動程序。

x86: 基於 GRUB 之啟動的運作方式

GRUB 取得系統控制權後,在主控台上會顯示一個功能表。在 GRUB 功能表中,您可以執行下列動作:

可使用可配置的逾時來啟動預設的作業系統項目。按下任意鍵可中斷預設的作業系統項目啟動。

若要檢視 GRUB 功能表範例,請參閱GRUB 主功能表的說明

x86: GRUB 裝置命名慣例

GRUB 使用的裝置命名慣例和舊版的 Solaris 作業系統稍有不同。瞭解 GRUB 裝置命名慣例有助於在配置系統上的 GRUB 時,能正確指定磁碟機和分割區資訊。

下表說明 GRUB 裝置命名慣例。

表 5–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」

x86: 基於 GRUB 之安裝的相關資訊的位置

如需有關這些變更的更多資訊,請參閱以下參考資料。

表 5–2 基於 GRUB 之安裝的相關資訊的位置

主題 

GRUB 功能表作業 

更多資訊 

安裝 

從 Solaris 作業系統 CD 或 DVD 媒體安裝 

「Solaris 10 6/06 安裝指南:基本安裝」

從網路安裝影像安裝 

「Solaris 10 6/06 安裝指南:網路安裝」中的第 II部分「從區域網路進行安裝」

 

配置 DHCP 伺服器以供網路安裝使用 

「Solaris 10 6/06 安裝指南:網路安裝」中的「使用 DHCP 服務預先配置系統配置資訊 (作業)」

 

使用自訂 JumpStart 程式進行安裝 

「Solaris 10 6/06 安裝指南:自訂 JumpStart 及進階安裝」中的「執行自訂 JumpStart 安裝 」

 

使用 Solaris Live Upgrade 啟動或轉至備用啟動環境 

系統管理 

如需有關 GRUB 和管理作業的更多詳細資訊 

「System Administration Guide: Basic Administration」中的第 11 章「GRUB Based Booting (Tasks)」

x86: 基於 GRUB 之啟動 (規劃)

本節旨在說明基於 GRUB 之啟動的基本原則和 GRUB 功能表。

安裝 Solaris 作業系統時,預設會在系統上安裝兩個 GRUB 功能表項目。第一個項目是 Solaris 作業系統項目。第二個項目是故障安全防護啟動歸檔,用在系統回復上。Solaris GRUB 功能表項目會做為 Solaris 軟體安裝與升級程序的一部分自動安裝與更新。這些項目由作業系統直接管理,無法手動進行編輯。

在標準 Solaris 作業系統安裝期間,會在 Solaris fdisk 分割區上安裝 GRUB,無須修改系統 BIOS 設定。如果作業系統不在 BIOS 啟動磁碟上,就必須執行下列動作之一:

比較好的方法是在啟動磁碟上安裝 Solaris 作業系統。如果一部機器上安裝了多個作業系統,您可以將項目增加到 menu.lst 檔案。這些項目會接著在您下次啟動系統時,顯示在 GRUB 功能表中。

如需有關多個作業系統的額外資訊,請參閱「System Administration Guide: Basic Administration」中的「How Multiple Operating Systems Are Supported in the GRUB Boot Environment」

x86: 基於 GRUB 從網路執行安裝

執行基於 GRUB 的網路啟動需要針對 PXE 用戶端配置的 DHCP 伺服器,以及提供 tftp 服務的安裝伺服器。DHCP 伺服器必須能夠回應 DHCP 類別 PXEClientGRUBClient。DHCP 回應必須包含下列資訊:


備註 –

伺服器端通常需要 rpc.bootparamd 來執行網路啟動,如果是基於 GRUB 的網路啟動則不需要。


如果沒有 PXE 或 DHCP 伺服器,您可以從 CD-ROM 或本機磁碟下載 GRUB。接著,您可以手動配置 GRUB 中的網路,並從檔案伺服器下載多重啟動程式和啟動歸檔。

如需更多資訊,請參閱「Solaris 10 6/06 安裝指南:網路安裝」中的「藉由 PXE 從網路啟動與安裝之簡介」

GRUB 主功能表的說明

啟動基於 x86 的系統時,會顯示 GRUB 功能表。此功能表提供啟動項目清單,以從中進行選擇。啟動項目是系統上所安裝之作業系統實例。GRUB 功能表的基礎是 menu.lst 檔案,而此檔案是配置檔。menu.lst 檔案由 Solaris 安裝程式所建立,並可在安裝後進行修改。menu.lst 檔案指定 GRUB 功能表上所顯示的作業系統實例清單。


範例 5–1 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 failsafe

指定 Solaris 作業系統損毀時用以回復的啟動歸檔。

second_disk

指定 Solaris Live Upgrade 的啟動環境。已建立 second_disk 啟動環境做為 Solaris 作業系統的副本。並使用 luactivate 指令升級與啟動。啟動環境可供啟動使用。

Windows

指定 Microsoft Windows 作業系統。GRUB 會偵測這些分割區,但不會驗證是否可啟動作業系統。


GRUB menu.lst 檔案的說明

GRUB menu.lst 檔案會列出 GRUB 主功能表的內容。GRUB 主功能表會列出系統上所安裝之所有作業系統實例的啟動項目,包括 Solaris Live Upgrade 啟動環境。Solaris 軟體升級程序會保留對此檔案所做的任何變更。

GRUB 主功能表會顯示對 menu.lst 檔案所做的任何修訂,還會顯示 Solaris Live Upgrade 項目。對此檔案所做的任何變更會在下次系統重新啟動時生效。下列原因時您可以修改此檔案:


注意 – 注意 –

請勿使用 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」


範例 5–2 Menu.lst 檔案

以下是 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
default

指定逾時過期時要啟動哪個項目。若要變更預設值,可以變更數字以指定清單中的另一項目。第一個標題的計數從零開始。例如,將預設值變更為 2,以自動啟動為 second_disk 啟動環境。

timeout

指定啟動預設項目之前等待使用者輸入的時間 (秒)。如果沒有指定逾時,就必須選擇一個項目。

title 作業系統名稱

指定作業系統名稱。

  • 如果是 Solaris Live Upgrade 啟動環境,作業系統名稱會是您在建立新的啟動環境時所指定的名稱。在前述範例中,Solaris Live Upgrade 啟動環境被命名為 second_disk

  • 如果是故障安全防護啟動歸檔,此啟動歸檔會在主作業系統損毀時用以進行回復。在前述範例中,Solaris 故障安全防護和 second_disk 故障安全防護是 Solaris 和 second_disk 作業系統的回復啟動歸檔。

root (hd0,0,a)

指定檔案要載入哪個磁碟、分割區和磁碟片段。GRUB 會自動偵測檔案系統類型。

kernel /platform/i86pc/multiboot

指定多重啟動程式。核心指令之後必須跟著多重啟動程式。多重啟動之後的字串會傳遞到 Solaris 作業系統,而不會進行解譯。

如需多重作業系統的完整說明,請參閱「System Administration Guide: Basic Administration」中的「How Multiple Operating Systems Are Supported in the GRUB Boot Environment」


尋找 menu.lst 檔案以變更 GRUB 功能表

必須一律使用 bootadm 指令來尋找 GRUB 功能表的 menu.lst 檔案。list-menu 子指令會尋找使用中的 GRUB 功能表。menu.lst 檔案會列出系統上所安裝之所有作業系統的清單。此檔案內容指定 GRUB 功能表上會顯示的作業系統清單。如果想要變更此檔案,請參閱x86: 尋找 GRUB 功能表的 menu.lst 檔案 (作業)

x86: 尋找 GRUB 功能表的 menu.lst 檔案 (作業)

可以更新 GRUB 功能表。例如,您可能想變更要多快啟動預設作業系統的預設時間。或者,您可能想將其他作業系統增加到 GRUB 功能表中。

使用中的 GRUB 功能表之 menu.lst 檔案一般位於 /boot/grub/menu.lst。在某些情況下,GRUB menu.lst 檔案會位於其他地方。例如,在使用 Solaris Live Upgrade 的系統中,GRUB menu.lst 檔案可能位於目前未執行的啟動環境中。或者,如果您已經使用 x86 啟動分割區升級系統,menu.lst 檔案可能會位於 /stubboot 目錄中。僅有使用中的 GRUB menu.lst 檔案可用以啟動系統。必須修改使用中的 GRUB menu.lst 檔案,才能修改啟動系統時所顯示的 GRUB 功能表。變更任何其他 GRUB menu.lst 檔案,不會影響啟動系統時所顯示的功能表。若要判斷使用中的 GRUB menu.lst 檔案位置,請使用 bootadm 指令。list-menu 子指令會顯示使用中的 GRUB 功能表位置。下列程序可判斷 GRUB 功能表的 menu.lst 檔案位置。

如需有關 bootadm 指令的更多資訊,請參閱「bootadm(1M) 線上手冊」。

Procedure尋找 GRUB 功能表的 menu.lst 檔案

在下列程序中,該系統包含兩個作業系統:Solaris 和 Solaris Live Upgrade 啟動環境 second_disk。Solaris 作業系統已經啟動並包含 GRUB 功能表。

  1. 成為超級使用者,或者假定一個對等身份。

    身份包含授權指令與特權指令。如需有關角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」

  2. 若要尋找 menu.lst 檔案,請鍵入:


    # /sbin/bootadm list-menu
    

    如此會顯示檔案的位置和內容。


    The location for the active GRUB menu is: /boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe

Procedure尋找 GRUB 功能表的 menu.lst 檔案 (當使用中的 menu.lst 檔案位於其他啟動環境時)

在下列程序中,該系統包含兩個作業系統:Solaris 和 Solaris Live Upgrade 啟動環境 second_disk。在此範例中,menu.lst 檔案不存在于目前執行的啟動環境中。second_disk 啟動環境已經啟動。Solaris 啟動環境包含 GRUB 功能表。Solaris 啟動環境尚未掛載。

  1. 成為超級使用者,或者假定一個對等身份。

    身份包含授權指令與特權指令。如需有關角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」

  2. 若要尋找 menu.lst 檔案,請鍵入:


    # /sbin/bootadm list-menu
    

    如此會顯示檔案的位置和內容。


    The location for the active GRUB menu is: /dev/dsk/device_name(not mounted)
    The filesystem type of the menu device is <ufs>
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe
  3. 由於包含 menu.lst 檔案的檔案系統尚未掛載,請掛載該檔案系統。指定 UFS 檔案系統和裝置名稱。


    # /usr/sbin/mount -F ufs /dev/dsk/device_name /mnt
    

    其中 device_name 是指定根 (/) 檔案系統在您想要掛載之啟動環境磁碟裝置上的位 置。裝置名稱以 /dev/dsk/c wtx dysz 格式輸入。例如:


    # /usr/sbin/mount -F ufs /dev/dsk/c0t1d0s0 /mnt
    

    您可以在 /mnt/boot/grub/menu.lst 存取 GRUB 功能表。

  4. 卸載檔案系統


    # /usr/sbin/umount /mnt
    

    備註 –

    如果您掛載啟動環境或啟動環境的檔案系統,請確定在使用後卸載這個檔案 系統或這些檔案系統。如果未卸載這些檔案系統,之後在該啟動環境上的 Solaris Live Upgrade 作業可能會失敗。


Procedure尋找 GRUB 功能表的 menu.lst 檔案 (當掛載了 Solaris Live Upgrade 啟動環境時)

在下列程序中,該系統包含兩個作業系統:Solaris 和 Solaris Live Upgrade 啟動環境 second_disksecond_disk 啟動環境已經啟動。Solaris 啟動環境包含 GRUB 功能表。Solaris 啟動環境掛載於 /.alt.Solaris

  1. 成為超級使用者,或者假定一個對等身份。

    身份包含授權指令與特權指令。如需有關角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」

  2. 若要尋找 menu.lst 檔案,請鍵入:


    # /sbin/bootadm list-menu
    

    如此會顯示檔案的位置和內容。


    The location for the active GRUB menu is:
    /.alt.Solaris/boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe

    由於已經掛載了包含 GRUB 功能表的啟動環境,因此可在 /.alt.Solaris/boot/grub/menu.lst 存取 menu.lst 檔案。

Procedure尋找 GRUB 功能表的 menu.lst 檔案 (當系統具有 x86 啟動分割區時)

在下列程序中,該系統包含兩個作業系統:Solaris 和 Solaris Live Upgrade 啟動環境 second_disksecond_disk 啟動環境已啟動。您的系統已升級,且會保留 x86 啟動分割區。啟動分割區掛載於 /stubboot,並包含 GRUB 功能表。如需有關 x86 啟動分割區的說明,請參閱x86: 磁碟分割建議

  1. 成為超級使用者,或者假定一個對等身份。

    身份包含授權指令與特權指令。如需有關角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」

  2. 若要尋找 menu.lst 檔案,請鍵入:


    # /sbin/bootadm list-menu
    

    如此會顯示檔案的位置和內容。


    The location for the active GRUB menu is:
    /stubboot/boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe

    您可以在 /stubboot/boot/grub/menu.lst 存取 menu.lst 檔案。