美文网首页
基于Cetnstos7.6的pxe安装 ---UEFI引导模式

基于Cetnstos7.6的pxe安装 ---UEFI引导模式

作者: 疯疯疯子子子 | 来源:发表于2019-07-22 18:43 被阅读0次

公司最近新购一批服务器,要求安装centos7.6操作系统。由于最新的服务器BIOS中系统引导方式为UEFI并非传统的legacy模式。由于服务器台数过多,出厂时未和服务器厂商说明。故决定研究下pxe安装 --UEFI引导模式

首先UEFI引导方式启动导致centos的启动方式发生了改变其启动流程为


POST -> 镜像的EFI/BOOT/grub.cfg -> load 镜像里的内核/images/pxeboot/vmlinuz和加载/images/pxeboot/initrd.img -> 安装界面

故原来在legacy引导方式中的pxelinux.cfg/下的default文件。系统是不会去读写的。也是不认可的。并且dhcp中filenam的文件也不再是pxelinux.0而是BOOTX64.EFI

于是通过挂载centos7的镜像,我们可以看到 镜像中的EFI/BOOT/下 有我们所需的一系列文件 {BOOTX64.EFI,grub.cfg} 。因此我们可以开始安装研究了

首先安装httpd tftp-server dhcp syslinux 这四个服务
首先对dhcp服务进行相关配置

cat >>/etc/dhcp/dhcpd.conf<<EOF 
subnet 172.16.1.0 netmask 255.255.255.0 { ## 指定网段 range 172.16.1.100 172.16.1.199; ## 地址范围
option subnet-mask 255.255.255.0; ## 分配的掩码 
default-lease-time 21600; ## 地址租约 
max-lease-time 43200; ## 最大租约 
next-server 172.16.1.201; ## 下一步找什么 (本机地址) 
filename "/BOOTX64.EFI";  ## 要下载的文件(请求下载启动文件) } 
EOF

挂载光盘并且已http的方式对外提供下载连接
从光盘的isolinux目录下的文件拷贝至/var/lib/tftpd/下
并将/EFI/BOOT/下的BOOTX64.EFI及group.cfg文件拷贝至 /var/lib/tftpd 目录下
cp /var/www/html/centos7.6/isolinux/* /var/lib/tftpd
cp /var/www/html/centos7.6/EFI/BOOT/{BOOTX64.EFI,group.cfg} /var/lib/tftpd

首先我们来看下官网的group,cfg文件

set default="1"

function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod all_video
}

load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2

set timeout=60 ###表示引导界面等待时常 默认60秒
### END /etc/grub.d/00_header ###

search --no-floppy --set=root -l 'CentOS 7 x86_64'

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
    linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
    initrdefi /images/pxeboot/initrd.img
}
menuentry 'Test this media & install CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
    linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
    initrdefi /images/pxeboot/initrd.img
}
submenu 'Troubleshooting -->' {
    menuentry 'Install CentOS 7 in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet
        initrdefi /images/pxeboot/initrd.img
    }
    menuentry 'Rescue a CentOS system' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet
        initrdefi /images/pxeboot/initrd.img
    }
}

里面的inst.stage2=hd:LABEL=CentOS\x207\x20x86_64是指向带label的hard disk,这里需要修改为url,这里我改为

set default="1"

function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod all_video
}

load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2

set timeout=5 ###表示引导界面等待时常 默认60秒
### END /etc/grub.d/00_header ###

search --no-floppy --set=root -l 'CentOS 7 x86_64'

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
    linuxefi vmlinuz inst.repo=http://192.168.39.100/centos7.6 ks=http://192.168.39.100/ks/ks.cfg quiet
    initrdefi initrd.img
}

这里没有去指定哪个网口去获取相关的ks信息。因为在centos7引导中,引导程序会将所有网口retry一遍。指定了也可以,但是还是会所有端口检查一遍。故没有用。

最后重启 httpd tftpd 以及dpch服务即可。
ks文件沿用老的ks文件即可。这里不再复述

相关文章

网友评论

      本文标题:基于Cetnstos7.6的pxe安装 ---UEFI引导模式

      本文链接:https://www.haomeiwen.com/subject/hccglctx.html