章 21. 準備網路安裝

您可以使用「PXE」(Preboot Execution Environment)伺服器進行網路安裝,在多台系統上安裝 Red Hat Enterprise Linux。透過這種方式,伺服器會為所有系統提供映像檔,自動開始安裝。
跟其它安裝方式不同,這種方式不需要在用戶端(亦即要安裝的系統)上插入實體媒介。本章描述準備 PXE 以進行安裝的步驟。
必須執行下列的步驟來準備網路安裝:
  1. 配置網路(NFSHTTPSHTTPFTP)伺服器,匯出安裝樹或安裝 ISO 映像檔。關於配置的步驟,請參閱〈節 2.3.3, “網路上的安裝來源”〉。
  2. 請配置 tftp 伺服器以提供網路開機功能、配置 DHCP、然後啟動 PXE 伺服器上的 tftp 伺服器。詳情請見〈節 21.1, “配置 PXE 開機”〉。
  3. 啟動用戶端(您想要安裝 Red Hat Enterprise Linux 的系統)並開始安裝。詳情請見〈節 21.2, “啟用網路安裝”〉。

注意

本章的步驟描述在 Red Hat Enterprise Linux 7 系統上設定 PXE 伺服器。欲知如何在 Red Hat Enterprise Linux 的更早版本上配置 PXE,請參閱該版本的《安裝指南》。

21.1. 配置 PXE 開機

設定好網路伺服器及其套件軟體庫之後,下一步是配置 PXE 伺服器。這台伺服器將包括啟動 Red Hat Enterprise Linux 及開始安裝程序所需的檔案。除此之外,也請配置 DHCP 伺服器,並啟用、啟動所需的服務。

注意

根據您想要安裝 Red Hat Enterprise Linux 的 AMD64/Intel 64 系統所使用的是 BIOS 或 UEFI,PXE 的啟動配置過程會有所不同。請參閱您硬體的文件,看看硬體使用的是哪一種系統,並遵循本章相對應的步驟。
使用 IBM Power Systems 伺服器作為安裝系統時,會有獨立的步驟。詳情請見〈節 21.1.3, “為 IBM Power Systems 客戶端配置 PXE Server”〉。
IBM System z 並不支援 PXE 開機。
欲知如何配置 PXE 伺服器給無螢幕系統(沒有直接連接螢幕、鍵盤與滑鼠的系統)使用,請參閱〈節 22.4, “無螢幕系統的考量”〉。

21.1.1. 為 BIOS 為基礎的用戶端配置 PXE 伺服器

以下步驟會準備 PXE 伺服器給以 BIOS 為基礎的 AMD64 與 Intel 64 系統啟動用。欲知以 UEFI 為基礎的系統,請參閱〈節 21.1.2, “為 UEFI-based 客戶端啟用 PXE 伺服器”〉。

過程 21.1. 為 BIOS 為基礎的系統配置 PXE 啟動

  1. 安裝 tftp 套件。請以 root 身份執行以下指令:
    # yum install tftp-server
  2. /etc/xinetd.d/tftp 配置檔案中,將 disabled 參數從 yes 改為 no
  3. 配置 DHCP 伺服器使用開機映像檔套件 SYSLINUX。如果您尚未安裝 DHCP 伺服器,請參閱《Red Hat Enterprise Linux 7 網路指南》。
    /etc/dhcp/dhcpd.conf 範例檔案的內容近似於:
      option space pxelinux;
      option pxelinux.magic code 208 = string;
      option pxelinux.configfile code 209 = text;
      option pxelinux.pathprefix code 210 = text;
      option pxelinux.reboottime code 211 = unsigned integer 32;
    
      subnet 10.0.0.0 netmask 255.255.255.0 {
        option routers 10.0.0.254;
        range 10.0.0.2 10.0.0.253;
    
        class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          next-server 10.0.0.1;
    			
          if option arch = 00:07 {
            filename "uefi/shim.efi";
          } else {
            filename "pxelinux/pxelinux.0";
          }
        }
    
        host example-ia32 {
          hardware ethernet XX:YY:ZZ:11:22:33;
          fixed-address 10.0.0.2;
        }
      }
    
  4. 您現在需要 ISO 映像檔中 SYSLINUX 套件的 pxelinux.0 檔案。要存取這檔案,請以 root 身分執行以下指令:
    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    # cp -pr /mount_point/Packages/syslinux-version-architecture.rpm /publicly_available_directory
    # umount /mount_point
    解開套件:
    # rpm2cpio syslinux-version-architecture.rpm | cpio -dimv
  5. tftpboot/ 中建立 pxelinux/ 目錄,並將 pxelinux.0 檔案複製進去:
    # mkdir /var/lib/tftpboot/pxelinux
    # cp publicly_available_directory/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
  6. 新增配置檔案至 pxelinux/ 目錄中。檔名應為 default、或根據系統的 IP 位址而定。例如您電腦的 IP 位址是 10.0.0.1,檔名應為 0A000001
    /var/lib/tftpboot/pxelinux/default 的範例檔案的內容近似於:
    default vesamenu.c32
    prompt 1
    timeout 600
    
    display boot.msg
    
    label linux
      menu label ^Install system
      menu default
      kernel vmlinuz
      append initrd=initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/
    label vesa
      menu label Install system with ^basic video driver
      kernel vmlinuz
      append initrd=initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/
    label rescue
      menu label ^Rescue installed system
      kernel vmlinuz
      append initrd=initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    

    注意

    您可使用兩項獨立的選項來載入安裝程式:
    • inst.repo= Anaconda 選項(如在先前範例中所見)。此選項能讓您載入安裝程式並同時指定安裝來源。欲取得更多有關於 Anaconda 開機選項的相關資訊,請參閱〈節 20.1, “在開機選單下配置安裝系統”〉。
    • root= dracut 選項。若您使用此選項,您必須指定由 Red Hat Enterprise Linux 7 開機媒介取得的 initrd.img 檔案的位置。使用此選項能讓您啟動安裝程式,不過您需要以另一種方式來指定安裝來源(使用 Kickstart 檔案或在圖形安裝程式中手動指)。欲取得更多有關於 dracut 指令列選項的相關資訊,請參閱 dracut.cmdline(7) 的 man page。
    必須總是使用這兩項選項之一。
  7. 將開機映像檔複製到 tftp/ 根目錄裡:
    # cp /path/to/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/
  8. 透過 systemctl 指令啟用並開始使用 tftpxinetd 服務。
    # systemctl enable xinetd.service tftp.service
    # systemctl start xinetd.service tftp.service
在完成了此步驟後,PXE 伺服器便準備好使用網路安裝了。您現在已能啟動您欲安裝 Red Hat Enterprise Linux 的系統、當被提示時選擇 PXE 開機以指定開機來源,並啟用網路安裝。

21.1.2. 為 UEFI-based 客戶端啟用 PXE 伺服器

以下步驟會準備 PXE 伺服器供以 UEFI 為基礎的 AMD64 與 Intel 64 系統啟動用。欲取得更多以 BIOS 為基礎之系統上的相關資訊,請參閱〈節 21.1.1, “為 BIOS 為基礎的用戶端配置 PXE 伺服器”〉。

過程 21.2. 為以 UEFI 為基礎的系統配置 PXE 開機

  1. 安裝 tftp 套件。請以 root 身份執行以下指令:
    # yum install tftp-server
  2. /etc/xinetd.d/tftp 配置檔案中,將 disabled 參數從 yes 改為 no
  3. 配置 DHCP 伺服器使用 EFI 開機映像檔套件 shim。如果您尚未安裝 DHCP 伺服器,請參閱《Red Hat Enterprise Linux 7 網路指南》。
    /etc/dhcp/dhcpd.conf 範例檔案的內容近似於:
      option space PXE;
      option PXE.mtftp-ip    code 1 = ip-address;
      option PXE.mtftp-cport code 2 = unsigned integer 16;
      option PXE.mtftp-sport code 3 = unsigned integer 16;
      option PXE.mtftp-tmout code 4 = unsigned integer 8;
      option PXE.mtftp-delay code 5 = unsigned integer 8;
      option arch code 93 = unsigned integer 16; # RFC4578
    
      subnet 10.0.0.0 netmask 255.255.255.0 {
        option routers 10.0.0.254;
        range 10.0.0.2 10.0.0.253;
    
        class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          next-server 10.0.0.1;
    
          if option arch = 00:07 {
            filename "uefi/shim.efi";
            } else {
            filename "pxelinux/pxelinux.0";
          }
        }
    
        host example-ia32 {
          hardware ethernet XX:YY:ZZ:11:22:33;
          fixed-address 10.0.0.2;
        }
      }
    
  4. 您現在需要 ISO 映像檔中,來自於 shim 套件的 shim.efi 檔案,以及來自於 grub2-efi 中的 grubx64.efi 檔案。若要存取這些檔案,請以 root 身份執行以下指令:
    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    # cp -pr /mount_point/Packages/shim-version-architecture.rpm /publicly_available_directory
    # cp -pr /mount_point/Packages/grub2-efi-version-architecture.rpm /publicly_available_directory
    # umount /mount_point
    解壓縮套件:
    # rpm2cpio shim-version-architecture.rpm | cpio -dimv
    # rpm2cpio grub2-efi-version-architecture.rpm | cpio -dimv
  5. tftpboot/ 目錄中,建立一個名為 uefi/ 的目錄,以供 EFI 開機映像檔使用,接著並由您的開機目錄中複製它們:
    # mkdir /var/lib/tftpboot/uefi
    # cp publicly_available_directory/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/uefi/
    # cp publicly_available_directory/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/uefi/
  6. 將一個名為 grub.cfg 的配置檔案附加至 uefi/ 目錄中。一個位於 /var/lib/tftpboot/uefi/grub.cfg 的範例配置檔案可能會看似:
    set timeout=1
      menuentry 'RHEL' {
      linuxefi uefi/vmlinuz ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/
      initrdefi uefi/initrd.img
    }
    

    注意

    您可使用兩項獨立的選項來載入安裝程式:
    • inst.repo= Anaconda 選項(如在先前範例中所見)。此選項能讓您載入安裝程式並同時指定安裝來源。欲取得更多有關於 Anaconda 開機選項的相關資訊,請參閱〈節 20.1, “在開機選單下配置安裝系統”〉。
    • root= dracut 選項。若您使用此選項,您必須指定由 Red Hat Enterprise Linux 7 開機媒介取得的 initrd.img 檔案的位置。使用此選項能讓您啟動安裝程式,不過您需要以另一種方式來指定安裝來源(使用 Kickstart 檔案或在圖形安裝程式中手動指)。欲取得更多有關於 dracut 指令列選項的相關資訊,請參閱 dracut.cmdline(7) 的 man page。
    必須總是使用這兩項選項之一。
  7. 將開機映像檔複製至您的 uefi/ 目錄中:
    # cp /path/to/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/uefi/
  8. 透過 systemctl 指令啟用並開始使用 tftpxinetd 服務。
    # systemctl enable xinetd.service tftp.service
    # systemctl start xinetd.service tftp.service
在完成了此步驟後,PXE 伺服器便準備好使用網路安裝了。您現在已能啟動您欲安裝 Red Hat Enterprise Linux 的系統、當被提示時選擇 PXE 開機以指定開機來源,並啟用網路安裝。

21.1.3. 為 IBM Power Systems 客戶端配置 PXE Server

以下程序將會準備 PXE 伺服器,以啟動 IBM Power Systems 伺服器。

過程 21.3. 為 IBM Power Systems 配置 PXE 開機

  1. 安裝 tftp 套件。請以 root 身份執行以下指令:
    # yum install tftp-server
  2. /etc/xinetd.d/tftp 配置檔案中,將 disabled 參數從 yes 改為 no
  3. 配置 DHCP 伺服器使用開機映像檔套件 yaboot。如果您尚未安裝 DHCP 伺服器,請參閱《Red Hat Enterprise Linux 7 網路指南》。
    /etc/dhcp/dhcpd.conf 的配置範例會看似:
      host bonn { 
        filename "yaboot";
        next-server             10.32.5.1;
        hardware ethernet 00:0e:91:51:6a:26;
        fixed-address 10.32.5.144;
      }
    
  4. 您現在需要 ISO 映像檔中,來自於 yaboot 套件的 yaboot 二進位檔案。若要存取此檔案,請以 root 身分執行以下指令:
    # mkdir /publicly_available_directory/yaboot-unpack
    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    # cp -pr /mount_point/Packages/yaboot-version.ppc.rpm /publicly_available_directory/yaboot-unpack
    解開套件:
    # cd /publicly_available_directory/yaboot-unpack
    # rpm2cpio yaboot-version.ppc.rpm | cpio -dimv
  5. tftpboot/ 中建立 yaboot 目錄,並將 yaboot 的執行檔複製至此目錄中:
    # mkdir /var/lib/tftpboot/yaboot
    # cp publicly_available_directory/yaboot-unpack/usr/lib/yaboot/yaboot /var/lib/tftpboot/yaboot
  6. 新增名為 yaboot.conf 的配置檔案到此目錄中。範例配置檔案如下:
    init-message = "
    Welcome to the Red Hat Enterprise Linux 7 installer!
    
    "
    timeout=60
    default=rhel7
    image=/rhel7/vmlinuz-RHEL7
      label=linux
      alias=rhel7
      initrd=/rhel7/initrd-RHEL7.img
      append="ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.0/ppc64/os/"
      read-only
    

    注意

    您可使用兩項獨立的選項來載入安裝程式:
    • inst.repo= Anaconda 選項(如在先前範例中所見)。此選項能讓您載入安裝程式並同時指定安裝來源。欲取得更多有關於 Anaconda 開機選項的相關資訊,請參閱〈節 20.1, “在開機選單下配置安裝系統”〉。
    • root= dracut 選項。若您使用此選項,您必須指定由 Red Hat Enterprise Linux 7 開機媒介取得的 initrd.img 檔案的位置。使用此選項能讓您啟動安裝程式,不過您需要以另一種方式來指定安裝來源(使用 Kickstart 檔案或在圖形安裝程式中手動指)。欲取得更多有關於 dracut 指令列選項的相關資訊,請參閱 dracut.cmdline(7) 的 man page。
    必須總是使用這兩項選項之一。
  7. 由解開的 ISO 複製開機映像檔至 tftp/ root 目錄中:
    # cp /mount_point/images/ppc/ppc64/vmlinuz /var/lib/tftpboot/yaboot/rhel7/vmlinuz-RHEL7
    # cp /mount_point/images/ppc/ppc64/initrd.img /var/lib/tftpboot/yaboot/rhel7/initrd-RHEL7.img
  8. 藉由移除 yaboot-unpack/ 目錄並卸載 ISO 來進行清除:
    # rm -rf /publicly_available_directory/yaboot-unpack
    # umount /mount_point
  9. 透過 systemctl 指令啟用並開始使用 tftpxinetd 服務。
    # systemctl enable xinetd.service tftp.service
    # systemctl start xinetd.service tftp.service
在完成了此步驟後,PXE 伺服器便準備好使用網路安裝了。您現在已能啟動您欲安裝 Red Hat Enterprise Linux 的系統、當被提示時選擇 PXE 開機以指定開機來源,並啟用網路安裝。