跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 部署指南  / 設定安裝伺服器 / 準備目標系統的啟動
適用範圍 SUSE Linux Enterprise Server 12 SP5

9 準備目標系統的啟動

可以使用不同的方法安裝 SUSE® Linux Enterprise Server。除了第 6 章 「使用 YaST 安裝中介紹的常見媒體安裝方式外,也可以選擇使用各種基於網路的方式,甚至採用完全自動的方式來安裝 SUSE Linux Enterprise Server

本章中的範例使用 NFS 來提供安裝資料。如果要使用 FTP、SMB 或 HTTP,請參閱第 8 章 「安裝保存安裝來源的伺服器

注意
注意:術語

以下幾節中將要存放新安裝之 SUSE Linux Enterprise Server 的系統稱為目標系統安裝目標儲存庫 (以前稱為安裝來源) 這個名詞則是用來表示所有安裝資料的來源。其中包括實體媒體 (例如 CD 和 DVD) 以及您網路中發佈安裝資料的網路伺服器。

本節內容會介紹各種複雜開機方式的組態任務。其中包含 DHCP、PXE 啟動、TFTP 和網路喚醒等現成的組態。

這些範例假設 DHCP、TFTP 和 NFS 伺服器位於 IP 為 192.168.1.1 的同一部機器上。所有服務都可以位於不同的機器上,不會產生任何問題。請務必視需要變更 IP 位址。

9.1 設定 DHCP 伺服器

除了為網路用戶端提供自動位址配置外,DHCP 伺服器還會宣告 TFTP 伺服器的 IP 位址,以及目標機器上的安裝常式需要拉取的檔案。必須載入的檔案取決於目標機器的架構,以及使用的是傳統的 BIOS 還是 UEFI 開機方式。

  1. root 身分登入代管 DHCP 伺服器的機器。

  2. 透過執行 systemctl enable dhcpd 啟用 DHCP 伺服器。

  3. 將以下幾行附加到 /etc/dhcpd.conf 下之 DHCP 伺服器組態檔案的子網路組態︰

    # The following lines are optional
    option domain-name "my.lab";
    option domain-name-servers 192.168.1.1;
    option routers 192.168.1.1;
    option ntp-servers 192.168.1.1;
    ddns-update-style none;
    default-lease-time 3600;
    
    # The following lines are required
    option arch code 93 = unsigned integer 16; # RFC4578
    subnet 192.168.1.0 netmask 255.255.255.0 {
     next-server 192.168.1.1;
     range 192.168.1.100 192.168.1.199;
     default-lease-time 3600;
     max-lease-time 3600;
     if option arch = 00:07 or option arch = 00:09 {
       filename "/EFI/x86/grub.efi";
     }
     else if option arch = 00:0b {
       filename "/EFI/aarch64/bootaa64.efi";
     }
     else  {
       filename "/BIOS/x86/pxelinux.0";
     }
    }

    此組態範例使用的子網路為 192.168.1.0/24,DHCP、DNS 和閘道設定在 IP 為 192.168.1.1 的伺服器上。請務必依據您的網路配置變更使用的所有 IP 位址。如需更多 dhcpd.conf 中可用選項的詳細資訊,請參閱 dhcpd.conf man 頁面。

  4. 執行 systemctl restart dhcpd 重新啟動 DHCP 伺服器。

如果您打算使用 SSH 來從遠端控制 PXE 和網路喚醒安裝,請指定 DHCP 應提供給安裝目標的 IP 位址。若要這麼做,請根據以下範例修改上述 DHCP 組態︰

group {
 host test {
   hardware ethernet MAC_ADDRESS;
   fixed-address IP_ADDRESS;
   }
}

host 陳述式會引入安裝目標的主機名稱。若要結合特定主機的主機名稱和 IP 位址,您必須瞭解並指定系統的硬體 (MAC) 位址。將此範例中的所有變數取代成符合您環境的實際值。

重新啟動 DHCP 伺服器後,它將向所指定的主機提供一個靜態 IP,讓您能透過 SSH 連接到該系統。

9.2 設定 TFTP 伺服器

如果使用基於 SUSE 的安裝,您可以使用 YaST 來設定 TFTP 伺服器。另外還可以進行手動設定。每當目標系統開機時,TFTP 伺服器即會傳送開機影像至目標系統,並傳送對目標系統的要求。

9.2.1 使用 YaST 設定 TFTP 伺服器

  1. root 身分登入。

  2. 依序啟動 YaST › 網路服務 › TFTP 伺服器,並安裝所需套件。

  3. 按一下啟用,確定伺服器已經啟動,並已包含至開機常式。為安全起見,xinetd 在開機時啟動 tftpd 時,您不需執行任何動作。

  4. 按一下在防火牆中開啟埠,開啟在您機器上運作中防火牆的適當連接埠。如果您的伺服器上沒有執行任何防火牆,就無法使用此選項。

  5. 按一下瀏覽,瀏覽開機影像目錄。系統會自動建立並選取預設目錄 /srv/tftpboot

  6. 按一下完成便可套用您的設定,並啟動伺服器。

9.2.2 手動設定 TFTP 伺服器

  1. root 身分登入,並安裝 tftpxinetd 套件。

  2. 修改位於 /etc/xinetd.d 下的 xinetd 組態,以確保開機時會啟動 TFTP 伺服器︰

    1. 如果 xinetd 不存在,請使用 touch tftp,在此目錄下建立一個名為 tftp 的檔案。接著執行 chmod 755 tftp

    2. 開啟檔案 tftp,並新增以下內容︰

      service tftp
      {
              socket_type            = dgram
              protocol               = udp
              wait                   = yes
              user                   = root
              server                 = /usr/sbin/in.tftpd
              server_args            = -s /srv/tftpboot
              disable                = no
      }
    3. 儲存檔案,並使用 systemctl restart xinetd 重新啟動 xinetd。

9.3 在 TFTP 伺服器上安裝檔案

下面的程序介紹如何在 32 位元和 64 位元 x86 架構上為配有 UEFI 和 BIOS 的目標機器準備伺服器。準備好的結構也為 AArch64 系統提供了空間。

9.3.1 準備結構

在下面的程序中,請使用所用的作業系統和 Service Pack 版本來取代 OS_VERSIONSP_VERSION。例如,使用 sles12sp5

  1. /srv/tftpboot 中建立一個結構以支援各種選項。

    root # mkdir -p /srv/tftpboot/BIOS/x86
    root # mkdir -p /srv/tftpboot/EFI/x86/boot
    root # mkdir -p /srv/tftpboot/EFI/aarch64/boot
    root # mkdir -p /srv/install/x86/OS_VERSION/SP_VERSION/cd1
    root # mkdir -p /srv/install/aarch64/OS_VERSION/SP_VERSION/cd1
  2. 從 SUSE 網站下載您需要的所有架構對應的 SUSE Linux Enterprise Server 12 SP5 DVD ISO 影像。

  3. 第 8.6 節 「在伺服器上使用安裝媒體的 ISO 影像」所述掛接 ISO 檔案。若要在重新開機後使檔案可用,請在 /etc/fstab 中建立一個項目。若要進行標準安裝,則只需要 DVD 1。

    root # mount -o loop PATH_TO_ISO /srv/install/ARCH/OS_VERSION/SP_VERSION/cd1/

    對所有所需架構重複此步驟,並使用 x86aarch64 取代 ARCH,使用對應 ISO 檔案的路徑取代 PATH_TO_ISO

  4. 將 x86 BIOS 和 UEFI 開機所需的 核心initrdmessage 檔案複製到適當的位置。

    root # cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/
    root # cp -a linux initrd message /srv/tftpboot/BIOS/x86/
  5. 確認透過 NFS 可以使用路徑 /srv/install。如需詳細資料,請參閱第 8.2 節 「手動設定 NFS 儲存庫」

9.3.2 用於 x86 的 BIOS 檔案

  1. pxelinux.0 複製到 TFTP 資料夾並為組態檔案準備一個子資料夾。

    root # cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/BIOS/x86/
    root # mkdir /srv/tftpboot/BIOS/x86/pxelinux.cfg
  2. 建立 /srv/tftpboot/BIOS/x86/pxelinux.cfg/default 並新增以下幾行︰

    default install
    
    # hard disk
    label harddisk
     localboot -2
    # install
    label install
     kernel linux
     append initrd=initrd install=nfs://192.168.1.1:/srv/install/x86/OS_version/SP_version/cd1
    
    display message
    implicit 0
    prompt 1
    timeout 5
  3. 編輯檔案 /srv/tftpboot/BIOS/x86/message,以反映您剛編輯過的 default 檔案。

    Welcome to the Installer Environment!
    
    To start the installation enter 'install' and press <return>.
    
    Available boot options:
     harddisk   - Boot from Hard Disk (this is default)
     install    - Installation

9.3.3 用於 x86 的 UEFI 檔案

在下面的程序中,請使用所用的作業系統和 Service Pack 版本來取代 OS_versionSP_version。例如,使用 sles12sp5

  1. 複製 UEFI 開機所需的所有 grub2 檔案。

    root # cd /srv/install/x86/OS_version/SP_version/cd1/EFI/BOOT
    root # cp -a bootx64.efi grub.efi MokManager.efi /srv/tftpboot/EFI/x86/
  2. 將核心和 initrd 檔案複製到目錄結構。

    root # cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/
    root # cp -a linux initrd /srv/tftpboot/EFI/x86/boot
  3. 建立檔案 /srv/tftpboot/EFI/x86/grub.cfg,在其中至少包含以下內容︰

    set timeout=5
    menuentry 'Install OS_version SP_version for x86_64' {
      linuxefi /EFI/x86/boot/linux \
       install=nfs://192.168.1.1/srv/install/x86/OS_version/SP_version/cd1
      initrdefi /EFI/x86/boot/initrd
    }

9.3.4 用於 AArch64 的 UEFI 檔案

在下面的程序中,請使用所用的作業系統和 Service Pack 版本來取代 OS_versionSP_version。例如,使用 sles12sp5

  1. 執行此操作的方法與 x86_64 EFI 環境的方法極其相似。首先,複製 grub2-efi 環境中 UEFI 開機所需的檔案。

    root # cd /srv/install/aarch64/OS_version/SP_version/cd1/EFI/BOOT
    root # cp -a bootaa64.efi /srv/tftpboot/EFI/aarch64/
  2. 將核心和 initrd 複製到目錄結構。

    root # cd /srv/install/aarch64/OS_version/SP_version/cd1/boot/aarch64
    root # cp -a linux initrd /srv/tftpboot/EFI/aarch64/boot
  3. 現在,建立檔案 /srv/tftpboot/EFI/grub.cfg 並新增以下內容︰

    menuentry 'Install OS_version SP_version' {
      linux /EFI/aarch64/boot/linux network=1 usessh=1 sshpassword="suse" \
       install=nfs://192.168.1.1:/srv/install/aarch64/OS_version/SP_version/cd1 \
       console=ttyAMA0,115200n8
      initrd /EFI/aarch64/boot/initrd
    }

    透過在組態檔案中新增以上內容,新增了一些可啟用序列主控台並允許透過 SSH 進行安裝的其他選項,這對沒有標準 KVM 主控台介面的系統而言非常實用。您會發現該設定適用於特定的 ARM 平台。

9.4 PXELINUX 組態選項

此處列出的選項為 PXELINUX 組態檔案中所有可用選項的子集合。

APPEND OPTIONS

新增一個或多個選項至核心指令行。這些新增選項是用於自動和手動開機。新增選項會加在每個核心指令行的開頭位置,通常您只要明確輸入核心選項,便可覆寫這些選項。

APPEND -

不附加任何項目。在 LABEL 區段中做為引數且包含單一連字號的 APPEND,可以用來覆寫全域的 APPEND

DEFAULT KERNEL_OPTIONS...

設定預設的核心指令行。當 PXELINUX 是自動啟動,則該選項的作用相當於在啟動提示處輸入了在 DEFAULT 後輸入的所有內容 (表示自動啟動的 auto 選項除外,它是自動新增的)。

如果組態檔案不存在或其中未定義 DEFAULT 項目,則預設使用不帶任何選項的核心名稱linux

IFAPPEND 旗標

根據旗標值將特定選項新增至核心指令行。IFAPPEND 選項僅適用於 PXELINUX。旗標需要一個值,如表格 9.1 「從 IFAPPEND 產生和新增的核心指令行選項」 中所述。

表 9.1︰ IFAPPEND 產生和新增的核心指令行選項

引數

產生的核心指令行/描述

1

ip=CLIENT_IP:BOOT_SERVER_IP:GW_IP:NETMASK

預留位置根據 DHCP/BOOTP 或 PXE 開機伺服器中的輸入加以取代。

請注意,此選項並非在已開機系統中執行 DHCP 用戶端的替代項。如果不進行定期更新,PXE BIOS 取得的租用將會過期,使得該 IP 位址可供 DHCP 伺服器重複使用。

2

BOOTIF=MAC_ADDRESS_OF_BOOT_INTERFACE

如果您要在安裝伺服器上逐一查探 LAN 介面,直到取得 DHCP 伺服器的回覆時以避免逾時,此選項非常有用。使用此選項可讓 initrd 程式決定系統是從哪個介面開機的。linuxrc 會讀取此選項並使用此網路介面。

4

SYSUUID=SYSTEM_UUID

新增採用小寫十六進位的 UUID,請參閱 /usr/share/doc/packages/syslinux/pxelinux.txt

LABEL LABEL KERNEL IMAGE APPEND OPTIONS...

指示如果輸入了 LABEL 做為要開機的核心,則 PXELINUX 應改為將 IMAGE 開機,並且應使用指定的 APPEND 選項,而不是使用該檔案全域區段中的指定選項 (在第一個 LABEL 指令前)。IMAGE 的預設值與 LABEL 的相同,如果未指定 APPEND,則預設會使用 global 項目 (如果有)。您最多可輸入 128 個 LABEL 項目。

PXELINUX 使用以下語法︰

label MYLABEL
  kernel MYKERNEL
  append MYOPTIONS

系統會將標籤當成檔案名稱一樣截斷,截斷後,它們必須是唯一的。舉例來說,v2.6.30v2.6.31 這兩個標籤在 PXELINUX 中將無法區分,因為它們都會截斷成相同的 DOS 檔案名稱。

該核心不必是 Linux 核心。它也可以是開機磁區或 COMBOOT 檔案。

LOCALBOOT TYPE

在 PXELINUX 上,指定 LOCALBOOT 0 而不指定 KERNEL 選項,表示要呼叫此特定標籤;而且最後要使用本地磁碟開機,而不使用核心開機。

引數

描述

0

執行正常開機

4

使用仍常駐在記憶體中的「通用網路驅動程式介面」(Universal Network Driver Interface, UNDI) 執行本地開機。

5

使用仍常駐在記憶體中完整的 PXE 堆疊 (包括 UNDI 驅動程式) 執行本地開機。

其他所有值都未定義。如果您對 UNDI 或 PXE 堆疊不甚瞭解,請指定 0

TIMEOUT TIME-OUT

指示在開機提示等待自動開機的時間長度,單位為 1/10 秒。若使用者在鍵盤上按下任何一個鍵,就會取消逾時,前提是假設使用者會完成已開始的指令。如果逾時時間設為 0,則會完全停用逾時功能 (此設定值亦為預設值)。可能的最大逾時值為 35996 (小於一小時)。

PROMPT flag_val

如果 flag_val 為 0,只有在按下 ShiftAlt,或者已設定 Caps LockScroll Lock 時才會顯示開機提示 (此設定值為預設值)。如果 flag_val 為 1,則永遠會顯示開機提示。

F2  FILENAME
F1  FILENAME
..etc...
F9  FILENAME
F10 FILENAME

可在開機提示下按下功能鍵時,於螢幕畫面上顯示指定的檔案。這可用來執行開機前線上說明 (可能是針對核心指令行選項)。如果是使用較早版本的反向相容,F10 也可以當作 F0 輸入。請注意,目前還無法將檔案名稱繫結至 F11F12

9.5 準備用於 PXE 啟動的目標系統

請在 BIOS 開機順序中包含 PXE 選項,以便準備 PXE 開機的系統 BIOS。

警告
警告:BIOS 開機順序

請勿將 PXE 選項置於 BIOS 硬碟開機選項之前。否則,此系統會在您每次開機時嘗試重新安裝系統。

9.6 準備用於網路喚醒功能的目標系統

您需要使用適當的 BIOS 選項才可在安裝前啟用網路喚醒 (WOL) 功能。另外,請記下目標系統的 MAC 位址。啟動網路喚醒功能時將會用到此資料。

9.7 區域網路喚醒

「網路喚醒功能」可藉由包含機器 MAC 位址的特定網路封包來開機。因為世界上的每台機器都有一個獨一無二的 MAC 識別碼,所以您不必擔心會不小心開啟錯誤的機器。

重要
重要:跨越不同網路區段的網路喚醒功能

如果控制機器與應喚醒的安裝目標不在同一個網路區段,請將要傳送的 WOL 要求設定為多重廣播,或者遠端控制網路區段上傳送這些要求的機器。

SUSE Linux Enterprise Server 的使用者可以使用名為 WOL 的 YaST 模組輕鬆設定網路喚醒功能。其他 SUSE Linux 版本作業系統的使用者則可以使用指令行工具。

9.8 使用 YaST 設定網路喚醒功能

  1. root 身分登入。

  2. 啟動YaST › 網路服務 › WOL

  3. 按一下新增,並輸入目標系統的主機名稱和 MAC 位址。

  4. 若要開啟此機器,請選取適當的項目,並按一下喚醒

9.9 從 CD 或 USB 磁碟機而非 PXE 開機

您還可以使用包含小型系統影像的 CD、DVD 或 USB 磁碟機來開機,而不透過 PXE 開機。載入核心和 initrd 後,將會透過 NFS 載入必要檔案。可使用 mksusecd 建立可開機影像。如果目標機器不支援 PXE 開機,此選項可能相當實用。

使用 sudo zypper in mksusecd 可安裝該工具。使用以下指令可建立可開機 ISO 影像︰

tux > mksusecd --create image.iso \
--net=nfs://192.168.1.1:/srv/install/ARCH/OS_VERSION/SP_VERSION/cd1  \
/srv/tftpboot/EFI/ARCH/boot

使用目標系統架構對應的資料夾取代 ARCH。另外,依據第 9.3 節 「在 TFTP 伺服器上安裝檔案」中的路徑取代 OS_versionSP_version

對於 --net 選項,您可以不使用 NFS 伺服器,而是使用 HTTP 儲存庫,例如 openSUSE 儲存庫︰

tux > mksusecd --create image.iso \
--net=http://download.opensuse.org/tumbleweed/repo/oss/suse \
/srv/tftpboot/EFI/ARCH/boot

可將 image.iso 寫入到 DVD 或 CD 中,或使用 dd 將其寫入到 USB 隨身碟中︰

root # dd if=image.iso of=/dev/USB_DEVICE

以 USB 隨身碟的裝置名稱取代 USB_DEVICE。全面檢查裝置名稱,以確認您未意外損毀其他磁碟機上的資料。