4,078 瀏覽數

EFI + Legacy PXE Boot

什麼是 uEFI!! 什麼是 PXE!! 可以參考下列聯結~

  • uEFI
    Extensible Firmware Interface (EFI) 的功能就類似傳統 BIOS ,他是 OS 與硬體之間溝通介面. 不過相較於傳統的 BIOS EFI 他的架構更模組化,功能更強大.EFI 的架構是由 Intel 提出的, 目前是交由 Unified EFI Forum 來管理.也就是我們現在所稱的 Unified Extensible Firmware Interface (UEFI)
  • PXE
    PXE (Preboot eXecution Environment) 是透過網路來安裝作業系統,在網卡上有一塊 ROM(firmware) 裡面存放了一些基本的網路協定如:Internet Protocol (IP), User Datagram Protocol (UDP), Dynamic Host Configuration Protocol (DHCP) 以及 Trivial File Transfer Protocol (TFTP) 透過這一些協定使得 PXE 可以進行網路的存取進一步安裝作業系統.

建議先設定好你的 Legacy PXE 環境再來升級到 uEFI 的環境

那 Legacy PXE 和 EFI PXE Boot 有可能處於同一台機器上嗎?在 Fedora 的官方網站有點出多種選擇的 PXEBoot (EFI + Legacy) 的開機方式, 主要是 DHCP 的設定檔不同而已.

[root@gulf linux-install]# cat /etc/dhcp/dhcpd.conf
#ddns-update-style interim;
ddns-update-style none;
ignore client-updates;

allow booting;
allow bootp;

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;

subnet 192.8.1.0 netmask 255.255.255.0 {
        range 192.8.1.50 192.8.1.250;
        option broadcast-address 192.8.1.255;
        option subnet-mask 255.255.255.0;
        option domain-name-servers 192.8.1.1;

          class "pxeclients" {
                  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
                  next-server 192.8.1.1;

                  if option arch = 00:07 {
                          filename "linux-install/BOOTX64.efi";
                  } else {
                          filename "linux-install/pxelinux.0";
                  }
          }


  }
  • “0x00″ for X86-bios
  • “0x06″ for UEFI ia32
  • “0x07″ for UEFI x64

我還沒有實際試過.
最近給他試了一下,的確是可行的.重點如下:

if option arch = 00:07 {
   filename "linux-install/BOOTX64.efi";
} else {
   filename "linux-install/pxelinux.0";
}

主要是用 if else 的判斷句,決定開機是要用 UEFI 的 BOOTX64.efi 還是 Legacy 的 pxelinx.0

我的測試環境為 Red Hat Enterprise Linux Server release 6.0 (Santiago) + dhcp-4.1.1-12.P1.el6.x86_64

5 個網友的想法 “EFI + Legacy PXE Boot

  1. 自動參照通知: IPV6 PXE boot – Benjr.tw

  2. Legacy PXE boot 是讓本機,以包在NIC 的 boot ROM裡的UNDI,或BIOS裡LOM的 UNDI driver (低階語言寫成的LAN driver) 來做 NIC或LOM的初始設定工作。而且執行的PXE Base code也是包在NIC 的 boot ROM裡的、或是BIOS裡LOM binary裡的。這是因應從前各NIC廠商各有各的 LAN driver 功能與PXE動作的產物,又不得不使用uEFI BIOS的妥協辦法。BIOS的本機控制看似一致了,但是網路功能能如舊時代各行其是。

    Native EFI 才是使用包在BIOS裡的 LAN driver 和 Tiano或uEFI裡標準的 PXE base code來執行 PXE preboot 工作。BIOS的本機控制與網路行為表現都一致了,而且在uEFI shell執行網路相關 uEFI comand 命令,就像在Linux shell 或 Window CMD 裡一樣有很高的 一致性。

  3. 自動參照通知: Ubuntu Legacy + EFI PXE | Benjr.tw

  4. 自動參照通知: uEFI PXE Boot | Benjr.tw

  5. 自動參照通知: services | Benjr.tw

發表迴響