欢迎光临
我们一直在努力

使用PXE EFI引导安装RHEL7.3

Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)

IPADDR:10.10.0.123

==================

==================

传统Legacy BIOS和EFI BIOS引导区别:

对于传统Legacy BIOS,一般使用syslinux提供的pxelinux.0来引导。对于EFI BIOS,需要使用efi文件引导,一般可使用Grub2。为实现UEFI SecureBoot,大多数Linux使用shim.efi嵌套调用grub.efi来引导。

grubx64.efi和shimx64.efi有什么区别呢?在安全启动(serureboot)关闭的情况下,你可以使用grubx64.efi。如果安全启动打开则需要选择shimx64.efi。

传统Legacy BIOS引导,在pxelinux.0引导后,它会请求并加载server端tftpboot目录中,与pxelinux.0同目录下的pxelinux.cfg目录里的default文件。

Apr 17 21:21:48 localhost in.tftpd[23465]: Client ::ffff:10.10.0.133 finished pxelinux.0

Apr 17 21:21:48 localhost in.tftpd[23476]: Client ::ffff:10.10.0.133 finished pxelinux.cfg/default

Apr 17 21:21:48 localhost in.tftpd[23477]: Client ::ffff:10.10.0.133 finished boot.msg

Apr 17 21:21:48 localhost in.tftpd[23479]: Client ::ffff:10.10.0.133 finished vesamenu.c32

Apr 17 21:21:48 localhost in.tftpd[23480]: Client ::ffff:10.10.0.133 finished pxelinux.cfg/default

Apr 17 21:21:48 localhost in.tftpd[23481]: Client ::ffff:10.10.0.133 finished splash.png

Apr 17 21:21:59 localhost in.tftpd[23482]: Client ::ffff:10.10.0.133 finished vmlinuz

Apr 17 21:22:04 localhost in.tftpd[23483]: Client ::ffff:10.10.0.133 finished initrd.im

EFI BIOS引导,在shim.efi嵌套引导了grubx64.efi之后,它会请求grubx64.efi同目录下的grub.cfg配置文件(redhat7),同时加载显示引导菜单。而对于RHEL6来说,它并不支持SecureBoot,所以必须要使用grub-efi 0.97来引导,一般是BOOTX64.efi,同时它会请求同目录下的efidefault配置文件(redhat6),加载并显示引导菜单。

RHEL6对EFI支持并不好,所以RHEL6推荐使用Legacy而不是EFI模式来安装。

——–以下日志为redhat 7.3 uefi 引导日志。

Apr 17 21:16:03 localhost in.tftpd[22088]: Client ::ffff:10.10.0.131 finished uefi/shim.efi

Apr 17 21:16:03 localhost in.tftpd[22089]: Client ::ffff:10.10.0.131 finished uefi/grubx64.efi

Apr 17 21:16:03 localhost in.tftpd[22099]: Client ::ffff:10.10.0.131 finished /uefi/grub.cfg

Apr 17 21:16:03 localhost in.tftpd[22100]: Client ::ffff:10.10.0.131 finished /uefi/grub.cfg

Apr 17 21:16:03 localhost in.tftpd[22105]: Client ::ffff:10.10.0.131 finished /uefi/grub.cfg

Apr 17 21:16:03 localhost in.tftpd[22106]: Client ::ffff:10.10.0.131 finished /uefi/grub.cfg

Apr 17 21:16:03 localhost in.tftpd[22107]: Client ::ffff:10.10.0.131 finished /uefi/grub.cfg

Apr 17 21:16:09 localhost in.tftpd[22108]: Client ::ffff:10.10.0.131 finished images/vmlinuz

Apr 17 21:16:11 localhost in.tftpd[22109]: Client ::ffff:10.10.0.131 finished images/vmlinuz

Apr 17 21:16:16 localhost in.tftpd[22110]: Client ::ffff:10.10.0.131 finished images/initrd.img

=================

1.软件安装

yum -y install vsftpd dhcp xinetd* tftp-server

=================

2.准备文件:

BOOTX64.EFI  grub.cfg  grubx64.efi  initrd.img  shim.efi  vmlinuz

=================

从RHEL7光盘中提取shim.efi和grubx64.efi

cp /mnt/Packages/shim-0.9-2.el7.x86_64.rpm /tmp

cp /mnt/Packages/grub2-efi-2.02-0.44.el7.x86_64.rpm /tmp

rpm2cpio /tmp/shim-0.9-2.el7.x86_64.rpm | cpio -dimv

rpm2cpio /tmp/grub2-efi-2.02-0.44.el7.x86_64.rpm| cpio -dimv

mkdir -p /var/lib/tftpboot/uefi/

cp /tmp/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/uefi/

cp /tmp/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/uefi/

从RHEL7光盘拷贝内核文件:

cp /mnt/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/uefi/

cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/uefi/

cp /mnt/isolinux/initrd.img /var/lib/tftpboot/uefi/

//grubx64.efi和shimx64.efi有什么区别呢?在安全启动(serureboot)关闭的情况下,你可以使用grubx64.efi。如果安全启动打开则需要选择shimx64.efi

grub.cfg文件配置:

cat >> /var/lib/tftpboot/uefi/grub.cfg <<eof </eof<>

set timeout=5

menuentry ‘Install RHEL 7.3 via [UEFI] PXE+Kickstart’ {

linuxefi uefi/vmlinuz inst.repo=ftp://10.10.0.123/pub inst.ks=ftp://10.10.0.123/ks.cfg

initrdefi uefi/initrd.img

}

eof

=================

3.DHCP配置

=================

修改配置设定提供DHCP的网卡/etc/sysconfig/dhcpd: (可选)

DHCPDARGS=ens33 //根据实际需求更改!

cat>> /etc/dhcp/dhcpd.conf<<eof </eof<>

option architecture-type code 93 = unsigned integer 16;

subnet 10.10.0.0 netmask 255.255.255.0 {

range 10.10.0.124 10.10.0.254;

option routers 10.10.0.1;

class “pxeclients” {

match if substring(option vendor-class-identifier, 0, 9) = “PXEClient”;

next-server 10.10.0.123;

if option architecture-type = 00:07 or

option architecture-type = 00:09 {

filename “uefi/shim.efi”;

} else {

filename “pxelinux.0“; # tftp 目录下pxelinux的文件名

}

}

}

eof

//RHEL7以支持UEFI SecureBoot。通过TFTP把shim.efi加载后会继续嵌套加载引导同目录下的grubx64.efi,然后grub会获取同目录下的grub.cfg以显示引导菜单。

//对于EFI模式下RHEL6 PXE引导,需要dhcpd.conf指定filename “images/BOOTX64.efi”,它其实是grub 0.97。通过TFTP加载了BOOTX64.efi之后它会继续加载同目录下的efidefault引导配置文件,并显示引导菜单。

=================

4,ks.cfg文件配置

kickstart文件说明参见:https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html

=================

UEFI操作系统安装分区注意事项:

part /boot/efi –fstype=efi –size=200 #UEFI引导安装时需要,传统LEGACY引导时可屏蔽此选项

part /boot –fstype=”ext4″ –size=500 –ondisk=sda

part pv.01 –grow –size=20000 –ondisk=sda

volgroup rootvg pv.01

logvol / –fstype=”ext4″ –size=10240 –name=root –vgname=rootvg

logvol swap –fstype=”swap” –size=1024 –name=swap –vgname=rootvg

//安装完成系统,默认分区磁盘类型为GPT。

参考:

http://hmli.ustc.edu.cn/doc/linux/centos-autoinstall.htm

http://blog.sina.com.cn/s/blog_5f2e119b0102x6dd.html

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。