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 -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秒

 

 最后,就可以快乐的启动了,并自动安装了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM