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 開機方式。
以
root
身分登入代管 DHCP 伺服器的機器。透過執行
systemctl enable dhcpd
啟用 DHCP 伺服器。將以下幾行附加到
/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 頁面。執行
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 伺服器 #
以
root
身分登入。依序啟動
› ›按一下
,確定伺服器已經啟動,並已包含至開機常式。為安全起見,xinetd 在開機時啟動 tftpd 時,您不需執行任何動作。按一下
,開啟在您機器上運作中防火牆的適當連接埠。如果您的伺服器上沒有執行任何防火牆,就無法使用此選項。按一下
,瀏覽開機影像目錄。系統會自動建立並選取預設目錄/srv/tftpboot
。按一下
便可套用您的設定,並啟動伺服器。
9.2.2 手動設定 TFTP 伺服器 #
以
root
身分登入,並安裝tftp
和xinetd
套件。修改位於
/etc/xinetd.d
下的 xinetd 組態,以確保開機時會啟動 TFTP 伺服器︰如果 xinetd 不存在,請使用
touch tftp
,在此目錄下建立一個名為tftp
的檔案。接著執行chmod 755 tftp
。開啟檔案
tftp
,並新增以下內容︰service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /srv/tftpboot disable = no }
儲存檔案,並使用
systemctl restart xinetd
重新啟動 xinetd。
9.3 在 TFTP 伺服器上安裝檔案 #
下面的程序介紹如何在 32 位元和 64 位元 x86 架構上為配有 UEFI 和 BIOS 的目標機器準備伺服器。準備好的結構也為 AArch64 系統提供了空間。
9.3.1 準備結構 #
在下面的程序中,請使用所用的作業系統和 Service Pack 版本來取代 OS_VERSION 和 SP_VERSION。例如,使用 sles12
和 sp5
。
在
/srv/tftpboot
中建立一個結構以支援各種選項。root #
mkdir -p /srv/tftpboot/BIOS/x86root #
mkdir -p /srv/tftpboot/EFI/x86/bootroot #
mkdir -p /srv/tftpboot/EFI/aarch64/bootroot #
mkdir -p /srv/install/x86/OS_VERSION/SP_VERSION/cd1root #
mkdir -p /srv/install/aarch64/OS_VERSION/SP_VERSION/cd1從 SUSE 網站下載您需要的所有架構對應的 SUSE Linux Enterprise Server 12 SP5 DVD ISO 影像。
依第 8.6 節 「在伺服器上使用安裝媒體的 ISO 影像」所述掛接 ISO 檔案。若要在重新開機後使檔案可用,請在
/etc/fstab
中建立一個項目。若要進行標準安裝,則只需要 DVD 1。root #
mount -o loop PATH_TO_ISO /srv/install/ARCH/OS_VERSION/SP_VERSION/cd1/對所有所需架構重複此步驟,並使用
x86
或aarch64
取代 ARCH,使用對應 ISO 檔案的路徑取代 PATH_TO_ISO。將 x86 BIOS 和 UEFI 開機所需的
核心
、initrd
和message
檔案複製到適當的位置。root #
cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/root #
cp -a linux initrd message /srv/tftpboot/BIOS/x86/確認透過 NFS 可以使用路徑
/srv/install
。如需詳細資料,請參閱第 8.2 節 「手動設定 NFS 儲存庫」。
9.3.2 用於 x86 的 BIOS 檔案 #
將
pxelinux.0
複製到 TFTP 資料夾並為組態檔案準備一個子資料夾。root #
cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/BIOS/x86/root #
mkdir /srv/tftpboot/BIOS/x86/pxelinux.cfg建立
/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
編輯檔案
/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_version 和 SP_version。例如,使用 sles12
和 sp5
。
複製 UEFI 開機所需的所有 grub2 檔案。
root #
cd /srv/install/x86/OS_version/SP_version/cd1/EFI/BOOTroot #
cp -a bootx64.efi grub.efi MokManager.efi /srv/tftpboot/EFI/x86/將核心和 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建立檔案
/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_version 和 SP_version。例如,使用 sles12
和 sp5
。
執行此操作的方法與 x86_64 EFI 環境的方法極其相似。首先,複製 grub2-efi 環境中 UEFI 開機所需的檔案。
root #
cd /srv/install/aarch64/OS_version/SP_version/cd1/EFI/BOOTroot #
cp -a bootaa64.efi /srv/tftpboot/EFI/aarch64/將核心和 initrd 複製到目錄結構。
root #
cd /srv/install/aarch64/OS_version/SP_version/cd1/boot/aarch64root #
cp -a linux initrd /srv/tftpboot/EFI/aarch64/boot現在,建立檔案
/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.30」 和 「v2.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,只有在按下 Shift 或 Alt,或者已設定 Caps Lock 或 Scroll Lock 時才會顯示開機提示 (此設定值為預設值)。如果flag_val
為 1,則永遠會顯示開機提示。F2 FILENAME F1 FILENAME ..etc... F9 FILENAME F10 FILENAME
可在開機提示下按下功能鍵時,於螢幕畫面上顯示指定的檔案。這可用來執行開機前線上說明 (可能是針對核心指令行選項)。如果是使用較早版本的反向相容,F10 也可以當作
F0
輸入。請注意,目前還無法將檔案名稱繫結至 F11 和 F12。
9.5 準備用於 PXE 啟動的目標系統 #
請在 BIOS 開機順序中包含 PXE 選項,以便準備 PXE 開機的系統 BIOS。
請勿將 PXE 選項置於 BIOS 硬碟開機選項之前。否則,此系統會在您每次開機時嘗試重新安裝系統。
9.6 準備用於網路喚醒功能的目標系統 #
您需要使用適當的 BIOS 選項才可在安裝前啟用網路喚醒 (WOL) 功能。另外,請記下目標系統的 MAC 位址。啟動網路喚醒功能時將會用到此資料。
9.7 區域網路喚醒 #
「網路喚醒功能」可藉由包含機器 MAC 位址的特定網路封包來開機。因為世界上的每台機器都有一個獨一無二的 MAC 識別碼,所以您不必擔心會不小心開啟錯誤的機器。
如果控制機器與應喚醒的安裝目標不在同一個網路區段,請將要傳送的 WOL 要求設定為多重廣播,或者遠端控制網路區段上傳送這些要求的機器。
SUSE Linux Enterprise Server 的使用者可以使用名為 WOL 的 YaST 模組輕鬆設定網路喚醒功能。其他 SUSE Linux 版本作業系統的使用者則可以使用指令行工具。
9.8 使用 YaST 設定網路喚醒功能 #
以
root
身分登入。啟動
› › 。按一下
,並輸入目標系統的主機名稱和 MAC 位址。若要開啟此機器,請選取適當的項目,並按一下
。
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_version 和 SP_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。全面檢查裝置名稱,以確認您未意外損毀其他磁碟機上的資料。