PXE自動化安裝openEuler 21.03
先吐槽一下,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 -ysystem-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秒
最後,就可以快樂的啟動了,並自動安裝了