Ubuntu

如何通過 PXE 將核心參數傳遞給類似 Ubuntu 的作業系統安裝程序 ISO?

  • January 2, 2014

我的處境很艱難,我需要將QuantaStor(基於 Ubuntu - hiss)設備遠端安裝到具有有限帶外訪問功能的硬體上。

目標系統是HP ProLiant DL180 G6 伺服器,它具有完全許可的Lights-Out LO100i遠端 KVM。這是與 ILO3 或 ILO4 管理處理器相比的一大進步。該硬體的挑戰在於LO100i 的虛擬媒體功能不可靠。隨著 Java 版本的發展,這個 ILO 變得不那麼有用了。現在,我無法通過遠端媒體啟動系統,儘管該功能在過去執行良好

所以我的下一步是嘗試使用 QuantaStor ISO 映像 PXE 引導該伺服器。奇怪的是,關於如何通過 PXE 直接引導 ISO 映像而無需連結引導載入程序等,有許多相互矛盾的說法。經過一些實驗,我發現我可以memdisk通過 PXE 伺服器引導 ISO。我在這個環境中控制了DNS和DHCP,所以我走的是修改/etc/dhcpd.conf配置文件以反映的標準路線:

# Begin temporary PXE boot
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 172.30.27.5;
filename "/pxelinux.0";
# End temporary PXE boot

對於我的 PXE 配置,我設置/tftpboot/pxelinux.cfg/default為:

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

MENU TITLE PXE Menu

LABEL QuantaStor
       MENU LABEL QuantaStor
       KERNEL memdisk
       APPEND iso initrd=images/osn_quantastor_v3.8.2.5441.iso raw

這些功能一起使我能夠讓系統開始引導 ISO。不幸的是,遠端 KVM 的控制台產生了以下亂碼影片輸出:

在此處輸入圖像描述

設備的安裝螢幕如下所示:

在此處輸入圖像描述

幾次重新啟動並經過一些基礎研究後,我發現 LO100 遠端 KVM與一些Supermicro IPMI 板共享此幀緩衝區症狀。解決方法是傳遞給引導參數。這是 Ubuntu 獨有的(嘆氣)。vga16fb.modeset=0

如何將此語句放入 PXE 引導的 ISO 的參數行中?

我應該在哪裡添加聲明?

嘗試在“追加”行中/tftpboot/pxelinux.cfg/default這樣做似乎沒有幫助。F6Ubuntu 提示建議通過在 ISO 啟動螢幕上按來添加該行。那時我的遠端 KVM 出現亂碼,我無法手動添加它。

有任何想法嗎?


更新:

我提取了 ISO 並修改了 isolinux.cfg 文件以更改安裝程序在核心 APPEND 行上的幀緩衝區支持。系統啟動並且安裝程序似乎可以工作…除了我現在收到有關 CDROM 的錯誤。我假設我的 PXE 方法不正確。

在這種情況下使用 ISO over PXE 的正確方法是什麼?

在此處輸入圖像描述

在此設置中,使用所需參數更改appendPXELINUX 肯定無濟於事,因為引導磁碟有自己的 ISOLINUX 處理核心引導。

解決此問題的兩種方法。

更簡單的選擇:提取 ISO,使用所需的引導參數修改isolinux/isolinux.cfg文件的append行,重新打包 ISO。將 PXELINUX 連結到修改後的 ISO。

更複雜(但可能更好,因為它刪除了連結)選項:而不是使用 memdisk 引導到 ISO,直接以與 ISO 的 ISOLINUX 相同的方式引導。

**編輯:**在 ISO 中引導到作業系統的更清晰的步驟:

  • 將 ISO 提取到/tftpboot/quantastore
  • preseed/quantastor.seed將提取的 ISO 中的文件複製到 PXE 伺服器上執行的 HTTP 服務的 Web 根目錄,以便在http://172.30.27.5/quantastor.seed
  • 更改您的pxelinux.cfg/default文件以直接引導至 ISO 的提取內容。刪除目前LABEL QuantaStor並替換為:
LABEL QuantaStor
 menu label QuantaStor
 kernel quantastor/install/vmlinuz
 append preseed/url=http://172.30.27.5/quantastor.seed locale=en_US.UTF-8 keyboard-configuration/layoutcode=us initrd=quantastor/install/initrd.gz ramdisk_size=16384 nodmraid acpi=off root=/dev/ram vga16fb.modeset=0 rw quiet

這應該可以在大多數情況下成功安裝,但是 QuantaStor 在安裝結束時執行的命令將失敗,因為它們正在直接查找/cdrom. 從quantastor.seed文件中:

d-i preseed/late_command string mkdir -p /target/lib/plymouth/themes/quantastor; \
chroot /target echo "creating package dirs, setting up splash screens" >> /var/log/qs_install.log; \
mkdir /target/qs-pkgs; \
mkdir -p /target/qs-pkgs/drivers; \
mkdir -p /target/opt/osnexus/quantastor/raid-tools; \
cp /cdrom/finisher/raid-tools/* /target/opt/osnexus/quantastor/raid-tools; \
cp /cdrom/finisher/deb/*.deb /target/qs-pkgs; \
cp /cdrom/finisher/qs_preseed.sh /target/qs-pkgs; \
cp /cdrom/finisher/drivers/* /target/qs-pkgs/drivers; \
cp /cdrom/finisher/splash/* /target/lib/plymouth/themes/quantastor; \
cp /cdrom/finisher/osnexus.gpg /target/qs-pkgs; \
cp /cdrom/finisher/osnexus.list /target/etc/apt/sources.list.d/osnexus.list; \
cp /cdrom/finisher/rc.local /target/etc/rc.local; \
cp /cdrom/finisher/qs_runonce.sh /target/etc/qs_runonce.sh; \
chroot /target /qs-pkgs/qs_preseed.sh

可能只是在第一次安裝完成後手動執行這些東西(刪除這些/target東西)——如果它在其他地方工作,我們可以調整這些命令來放置它們的東西,而不依賴於驅動器中的 CD。

引用自:https://serverfault.com/questions/564520