1.3. 準備啟動目標系統

此章節包含各種複雜開機方式的組態工作。其中包含可立即用於 DHCP、PXE 開機、TFTP 和網路喚醒功能的組態範例。

1.3.1. 設定 DHCP 伺服器

您可以手動編輯適當的組態檔案,以完成 SUSE Linux 上的 DHCP 伺服器設定。此章節包含延伸 DHCP 伺服器組態,藉此提供 TFTP、PXE 和 WOL 環境中所需的資料。

1.3.1.1. 手動設定 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" specifiies the pxelinux image on the tftp server
      # the server runs in chroot under /srv/tftpboot 
      filename  "pxelinux.0";
    }

    TFTP 伺服器的實際 IP 位置將取代 ip_of_the_tftp_server

    如需更多 dhcpd.conf 中可用的選項資訊,請參閱 dhcpd.conf 線上文件。

  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" specifiies 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 伺服器後,DHCP 伺服器會提供指定的主機一個靜態 IP,讓您可以透過 SSH 連線到系統。

1.3.2. 設定 TFTP 伺服器

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

1.3.2.1. 使用 YaST 設定 TFTP 伺服器

  1. 登入為 root 使用者。

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

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

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

  5. 按一下 瀏覽,瀏覽開機影像目錄。

    建立的預設目錄為 /tftpboot,且會自動選取該目錄。

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

1.3.2.2. 手動設定 TFTP 伺服器

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

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

  3. 接著依照 節 1.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 /tftpboot 
              disable                = no 
      }
      
    3. 儲存檔案並使用 rcxinetd restart 重新啟動 xinetd。

1.3.3. PXE 開機

您可以參考「開機前執行環境 (PXE,Preboot Execution Environment) 規格」 (ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf),以了解一些技術背景資訊和 PXE 的完整規格。

  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=e100

    透過此輸入內容,用於 Intel 100MBit/s 網路卡的核心模組將會載入到 PXE 用戶端上。此輸入內容會因用戶端的硬體而異,所以必須視情況修改輸入內容。如果您是使用 Broadcom GigaBit 網路卡,輸入內容則應為 insmod=bcm5700

    netdevice=eth0

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

    install=nfs://ip_instserver/path_instsource/CD1

    此輸入內容可定義用於用戶端安裝的 NFS 伺服器和安裝來源。安裝伺服器的實際 IP 位址將會取代 ip_instserver;而安裝來源的實際路徑則應取代 path_instsource。除了 httpftpsmb 通訊協定字首外,HTTP、FTP 或 SMB 來源皆以類似方法指定位址。

    [Important]重要

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

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

    default linux 
            
    # default 
    label linux 
      kernel linux 
    	    append initrd=initrd ramdisk_size=65536 insmod=e100 \
    	    install=nfs://ip_instserver/path_instsource/product 
    	    
    # 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
    
    # apic 
    label apic 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 apic insmod=e100 \
      install=nfs://ip_instserver/path_instsource/product
    
    # 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 
      kernel 
      linux append SLX=0x202 
    
    implicit     0 
    display      message
    prompt       1 
    timeout      100
    

    您設定中使用的值將會取代 ip_instserverpath_instsource

    以下章節可做為此安裝中所使用 PXELINUX 選項的簡短參考。如需更多可用選項的資訊,請參閱 /usr/share/doc/packages/syslinux/syslinux 套件的文件。

1.3.4. PXELINUX 組態選項

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

DEFAULT kernel options...

設定預設的核心指令行。當 PXELINUX 自動啟動時,PXELINUX 除了做為執行自動開機時自動新增的自動選項,還會做為出現開機提示時,當您鍵入 DEFAULT 後執行的輸入內容。

如果目前沒有任何組態檔案或目前的組態檔案中沒有 DEFAULT 輸入內容,那麼預設值為不包含任何選項的核心名稱 "linux"。

APPEND options...

新增一個或一個以上的選項至核心指令行。這些新增的選項是用於自動和手動開機。新增的選項位於每個核心指令行的開頭。一般而言,您只要明確輸入核心選項即可覆蓋這些選項。

LABEL label KERNEL image APPEND options...

表示是否輸入應做為 PXELINUX 開機核心的 label,而非輸入開機 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
      

如果以檔案名稱做為標籤內容將會混淆標籤,所以標籤內容必須是唯一的。舉例來說,在 PXELINUX 中將無法辨識 "v2.1.30" 和 "v2.1.31" 這兩個標籤,因為兩個標籤皆使用相同的 DOS 檔案名稱。

且核心不一定要是 Linux 核心,它可以是開機磁區或 COMBOOT 檔案。

APPEND -

不附加。包含單一連字號的 APPENDLABEL 區段中會被做為一個引數,且可用來附寫全域的 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,則會完全停用逾時功能 (此設定值亦為預設值)。

可能的最大逾時值為 (剛好少於一個小時)。

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

1.3.5. 準備用於 PXE 開機的目標系統

請將 PXE 選項納入 BIOS 開機順序中的選項,以準備用於 PXE 開機的系統 BIOS。

[Warning]警告

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

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

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

1.3.7. 網路喚醒功能

「網路喚醒功能」可讓機器透過經由網路傳送且包含機器 MAC 位址的特定網路套件,來進行開機。因為世界上的每台機器都有一個獨一無二的 MAC 識別碼,所以您不需擔心會不小心啟動到錯誤的機器。

[Important]重要

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

1.3.8. 網路喚醒功能

  1. 登入為 root 使用者。

  2. 啟動 YaST+安裝和移除軟體 並安裝套件 netdiag

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

    ether-wake mac_of_target

    目標的實際 MAC 位址將取代 mac_of_target