先吐槽一下,openEuler目前還是挺難用的,在PXE過程中發現了幾個bug,導致無法使用其搭建PXE服務器,最后不得不借助CentOS7.4,希望官方能盡快修復。
安裝環境介紹:華為5720交換機一台,華為5300 v5存儲一台,服務器五台,其中有兩台需要安裝openEuler 21.03。
步驟1:DHCP服務器
在本實驗中,交換機擔任了DHCP Server的角色,具體配置如下:
ip pool RH
gateway-list 192.168.100.254
network 192.168.100.0 mask 255.255.255.0
excluded-ip-address 192.168.100.226 192.168.100.253
lease day 3 hour 0 minute 0
next-server 192.168.121.188 #######TFTP服務器地址,在本環境中,TFTP服務器是由win10上使用了一個小軟件實現的,因此這個地址為win10的地址
bootfile pxelinux.0 #######linux提供的網絡啟動BootLoader,這也是openEuler的第一個bug,詳見:https://gitee.com/openeuler/kernel/issues/I4OMOV
步驟2:BootLoader文件准備
由於上步驟中提到的bug,因此在獲取pxelinux.0文件時,不得不重新安裝了一個CentOS7,完成安裝並配置yum源后,使用以下命令安裝了syslinux:
yum install -y syslinux
安裝完成后,在/usr/share/syslinux目錄中,找到pxelinux.0文件(注意:這個目錄下還有個叫做pexlinux.0的文件,眼睛睜大一點,不要看錯),將這個文件拷貝到win10下待用。
步驟3:TFTP服務器搭建
在環境中的服務器全部要用來使用,因此,我直接在win10上使用Tftpd32這個軟件作為TFTP服務器了,配置比較簡單,在E盤中創建了一個tftproot目錄,然后將這個目錄設置為根目錄,就OK了。

步驟4:將相關文件放到tftproot文件夾下
相關文件主要由兩個,一個是步驟二中生成的pxelinux.0,第二個是操作系統iso文件中isolinux的全部文件
openEuler的第二個bug就發生在isolinux全部文件中,建議同樣使用CentOS7的全部文件,因為如果使用了openEuler的文件,服務器啟動后,后報錯:vesamenu.c32:not a COM32R image
注意:在拷貝isolinx文件下的文件時,不要直接拷貝整個目錄,而是進入該目錄,拷貝所有文件到tftproot下,拷貝完成后,tftproot的文件如下:

然后在該目錄下,創建一個文件夾pxelinux.cfg,然后將isolinux.cfg復制到該目錄下,並將其重命名為default,具體如下:

最終tftproot下的文件為:

這時候就可以啟動服務器測試了,啟動后,看到的是CentOS的啟動菜單,因為所有的文件都是來來自於CentOS,所有需要編輯default文件。
步驟五:編輯default文件
使用記事本或者寫字板打開default文件,添加以下內容:
label linux
menu label ^Install openEuler 21.03
kernel /openEuler/vmlinuz
append initrd=/openEuler/initrd.img

然后保存退出
步驟六:准備openEuler的內核文件和驅動文件
在步驟五中,指定了兩個文件——vmlinuxz和initrd.img,這兩個文件一個是內核文件,一個是驅動文件,他們存放在openEuler iso鏡像文件的images目錄下的pxeboot目錄下,在tftproot目錄下新創建一個openEuler的文件夾,將這兩個文件拷貝到這個文件夾下,這樣就可以啟動openEuler的安裝程序了,最后看到的效果如下:

菜單中,還是有centos7的信息,由於我的需求已經基本完成了,所以也就懶的改了。
步驟七:制作無人值守文件(kickstart文件)
在CentOS中,將openEuler 21.03的iso文件掛載到/mnt目錄下,並手動指定yum源:
[development]
name=local
baseurl=file:///mnt
enable=1
gpgcheck=0
注意:這里名稱必須設置為[development]
在centos中安裝system-config-kickstart:yum install -y system-config-kickstart
安裝完成以后使用命令system-config-kickstart開始創建ks文件,大部分都比較簡單,重點如下圖:

無論選擇哪種方式,鏈接和目錄名一定要填對,可以自己在win10上測試一下,同時,目錄下的文件必須要有可讀的權限,后面在做ftp的時候截圖證明。
ks文件做完以后,先保存在本地,后面會同時上傳到ftp服務器中。
步驟八:制作ftp服務器
我這里使用的是華為存儲做ftp服務器,過程不講了,目錄如下:

其中ks文件夾中放的是步驟七制作的ks文件,openEuler文件夾中放的是openEuler光盤解壓后的文件,具體如下:

所有文件的權限必須是所有用戶可讀,因為我這里是臨時環境,所以比較粗暴,直接全部設置為777了:

步驟九:修改default文件
重新編輯以下步驟五中的default文件,在原先的基礎上設置一下ks文件的路徑:
label openEuler
menu label ^Install openEuler 21.03
menu default
kernel /openEuler/vmlinuz
append initrd=/openEuler/initrd.img ks=ftp://192.168.xx.xx/ks/ks1.cfg
並將超時時間設置的短一點,比如設置成6秒

最后,就可以快樂的啟動了,並自動安裝了
