準備啟動目標系統

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

設定 DHCP 伺服器

有兩種方法可設定 DHCP 伺服器。YaST 為 SUSE Linux Enterprise Server 9 和更新版本提供圖形介面,來處理這項工作。至於其他任何 SUSE Linux 產品的使用者和非 SUSE Linux 使用者,則應該手動編輯組態檔案,或使用作業系統廠商所提供的前端工具。

使用 YaST 設定 DHCP 伺服器

若要對網路用戶端宣告 TFTP 伺服器的位置,並指定安裝目標應使用的開機影像檔案,請在您的 DHCP 伺服器組態中新增兩個宣告。

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

  2. 啟動YaST+網路服務+DHCP 伺服器

  3. 完成基本 DHCP 伺服器設定的設定精靈。

  4. 選取進階設定,並在出現即將離開啟動對話方塊的警告時,選取

  5. 設定的宣告對話方塊中,選取新系統所在位置的子網路,並按一下編輯

  6. 子網路組態對話方塊中,選取新增將新選項新增到子網路的組態中。

  7. 選取 filename,並輸入 pxelinux.0 做為值。

  8. 新增另一個選項 (next-server),將它的值設為 TFTP 伺服器的位址。

  9. 選取確定完成以完成 DHCP 伺服器組態。

若要將 DHCP 設定成為特定主機提供靜態 IP 位址,請進入 DHCP 伺服器組態模組 (步驟 4) 的進階設定,並新增主機類型的新宣告。在這個主機宣告中新增 hardwarefixed-address 選項,並提供適當的值。

手動設定 DHCP 伺服器

除了提供您網路用戶端自動位址配置,DHCP 伺服器需要執行的所有工作就是宣告 TFTP 伺服器的 IP 位址,以及宣告目標機器上安裝常式應使用的檔案。

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

  2. 將下面幾行附加到 /etc/dhcpd.conf 下的 DHCP 伺服器組態檔案:

    group { 
      # PXE related stuff 
      # 
      # "next server" defines the tftp server that will be used 
      next server ip_tftp_server: 
      #
      # "filename" specifies the pxelinux image on the tftp server
      # the server runs in chroot under /srv/tftpboot 
      filename  "pxelinux.0";
    }

    ip_of_the_tftp_server 取代成 TFTP 伺服器的實際 IP 位置。如需更多 dhcpd.conf 中可用選項的詳細資訊,請參閱 dhcpd.conf man 頁面。

  3. 執行 rcdhcpd restart 重新啟動 DHCP 伺服器。

如果您計畫使用 SSH 來遠端控制 PXE 和網路喚醒功能安裝,請明確指定 DHCP 應提供給安裝目標的 IP 位址。若要完成這項工作,請根據以下範例修改上述 DHCP 組態:

 
group { 
  # PXE related stuff 
  # 
  # "next server" defines the tftp server that will be used 
  next server ip_tftp_server:
  # 
  # "filename" specifies the pxelinux image on the tftp server 
  # the server runs in chroot under /srv/tftpboot
  filename "pxelinux.0";
  host test { hardware ethernet mac_address; 
              fixed-address some_ip_address; }
       }

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

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

設定 TFTP 伺服器

請使用 YaST 在 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise 上設定 TFTP 伺服器,或以手動方式在任何支援 xinetd 和 tftp 的 Linux 作業系統上設定 TFTP 伺服器。每當目標系統開機時,TFTP 伺服器即會傳送開機影像至目標系統,並傳送對目標系統的要求。

使用 YaST 設定 TFTP 伺服器

  1. root 的身份登入。

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

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

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

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

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

手動設定 TFTP 伺服器

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

  2. 若無法安裝,請建立 /srv/tftpboot/srv/tftpboot/pxelinux.cfg 目錄。

  3. 接著,請加入開機影像需要的正確檔案,詳細步驟說明請參閱第 4.3.3 節「使用 PXE 開機」

  4. 修改位於 /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. 儲存檔案,並使用 rcxinetd restart 重新啟動 xinetd。

使用 PXE 開機

如需取得一些技術背景資訊和 PXE 的完整規格,請參閱「開機前執行環境 (Preboot Execution Environment, PXE) 規格」(http://www.pix.net/software/pxeboot/archive/pxespec.pdf)。

  1. 輸入以下指令,以變更安裝儲存庫的目錄,並將 linuxinitrdmessagememtest 檔案複製到 /srv/tftpboot 目錄:

    cp -a boot/loader/linux boot/loader/initrd 
          boot/loader/message boot/loader/memtest /srv/tftpboot
  2. 請使用 YaST 直接從您的安裝 CD 或 DVD 安裝 syslinux 套件。

  3. 輸入以下指令,將 /usr/share/syslinux/pxelinux.0 檔案複製到 /srv/tftpboot 目錄:

    cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot
         
  4. 輸入以下指令,切換至安裝儲存庫的目錄,並將 isolinux.cfg 檔案複製到 /srv/tftpboot/pxelinux.cfg/default

    cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
         
  5. 編輯 /srv/tftpboot/pxelinux.cfg/default 檔案,並移除開頭為 gfxbootreadinfoframebuffer 等行文字。

  6. 接著,在預設的 failsafeapic 標籤附加行中,插入下面項目:

    insmod=kernel module

    插入這個項目之後,便可輸入 PXE 用戶端上支援網路安裝所需的網路核心模組。以網路設備適當的模組名稱取代 kernel module

    netdevice=interface

    這個項目可定義網路安裝時必須使用的用戶端網路介面。只有當用戶端配有數張網路卡時才必須插入這個項目,而且必須視情況修改項目內容。如果只有使用一張網路卡,就可以省略這個項目。

    install=nfs://ip_instserver/path_instsource/CD1

    這個項目可定義用戶端安裝時所適用的 NFS 伺服器和安裝來源。將 ip_instserver 取代成安裝伺服器的實際 IP 位址;而 path_instsource 應該要取代成安裝來源的實際路徑。HTTP、FTP 或 SMB 來源皆以類似方法指定位址,除了其通訊協定字首 httpftpsmb 等差異。

    [Important]

    如果您需要傳送其他開機選項給安裝來源,例如 SSH 或 VNC 開機參數,那麼請將這些參數附加到 install 項目。您可以參考 第 4.4 節「啟動要安裝的目標系統」,以取得參數綜覽和一些範例。

    以下將介紹 /srv/tftpboot/pxelinux.cfg/default 範例檔案。調整安裝來源的通訊協定字首以符合您的網路設定,接著將 vncvncpasswordusesshsshpassword 選項新增到 install 輸入內容,以指定連接到安裝程式的方式。這幾行內容會以 \ 分隔,而且應該是連續一行,中間不可間斷,也不能使用 \

    default linux 
            
    # default 
    label linux 
      kernel linux 
    	    append initrd=initrd ramdisk_size=65536 insmod=e100 \
    	    install=nfs://ip_instserver/path_instsource/product/CD1 
    	    
    # failsafe 
    label failsafe 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \
      insmod=e100 install=nfs://ip_instserver/path_instsource/product/CD1
    
    # apic 
    label apic 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 apic insmod=e100 \
      install=nfs://ip_instserver/path_instsource/product/CD1
    
    # manual 
    label manual 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 manual=1 
    
    # rescue 
    label rescue 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 rescue=1 
    
    #  memory test 
    label memtest 
      kernel memtest 
    
    # hard disk 
    label harddisk 
      localboot 0
    
    implicit     0 
    display      message
    prompt       1 
    timeout      100
    

    ip_instserverpath_instsource 取代成在您設定中所使用的值。

    下節內容可作為此設定中所使用的 PXELINUX 選項的簡短參考。如需更多可用選項的資訊,請參閱 /usr/share/doc/packages/syslinux/ 中的 syslinux 套件說明文件。

PXELINUX 組態選項

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

DEFAULT kernel options...

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

如果目前沒有任何組態檔案,或是組態檔案中沒有任何 DEFAULT 項目,那麼預設值會是不包含任何選項的核心名稱 「linux」。

APPEND options...

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

LABEL label KERNEL image APPEND options...

指示是否要將輸入的 label 當作開機核心,或是 PXELINUX 應該要開機 image;以及是否要使用指定 APPEND 選項,而不是使用該檔案全域區段中的指定選項 (在第一個 LABEL 指令前)。image 的預設值與 label 相同,而且如果沒有指定 APPEND,就會預設使用全域項目 (如果有的話)。 您最多可輸入 128 個 LABEL 項目。

請注意,GRUB 將使用以下語法:

title mytitle 
  kernel my_kernel my_kernel_options 
  initrd myinitrd

PXELINUX 使用以下語法:

label mylabel 
  kernel mykernel 
  append myoptions
      

標籤會像檔名一樣進行拆分 (Mangle),因此它們在拆分之後一定會是唯一專屬名稱。舉例來說,「v2.1.30」 和 「v2.1.31」 這兩個標籤在 PXELINUX 中將無法辨識,因為它們都會拆分成相同的 DOS 檔案名稱。

這時的核心不一定要是 Linux 核心,它可以是開機磁區或 COMBOOT AE案。

APPEND -

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

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

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

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

[Warning]BIOS 開機順序

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

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

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

區域網路喚醒

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

[Important]跨越不同網路區段的網路喚醒功能

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

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

使用 YaST 設定網路喚醒功能

  1. root 的身份登入。

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

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

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

網路喚醒功能

  1. root 的身份登入。

  2. 啟動YaST+軟體管理,然後安裝 netdiag 套件。

  3. 開啟終端機,並以 root 身份輸入以下指令來喚醒目標:

    ether-wake  mac_of_target

    mac_of_target 取代成目標的實際 MAC 位址。