首先要说的事为了完成这个,花费了我整整一天的时间,期间不断的try, search via google. redhat 官网的doc,centos的doc有点儿坑人。最后还是通过google完成的。
pxe server setup:
安装tftp,dhcp,vsftpd
yum install tftp-server dhcp vsftpd
tftp的配置不说了,super easy
dhcp的配置也很简单,就是filename 处不再是pxelinux.0了. 我这儿是 bootx64.efi
贴上我的配置:
-
log-facility local7;
-
allow booting;
-
allow bootp;
-
option space pxelinux;
-
option pxelinux.magic code 208 = string;
-
option pxelinux.configfile code 209 = text;
-
option pxelinux.pathprefix code 210 = text;
-
option pxelinux.reboottime code 211 = unsigned integer 32;
-
option architecture-type code 93 = unsigned integer 16;
-
subnet 10.1.1.0 netmask 255.255.255.0 {
-
range 10.1.1.10 10.1.1.200;
-
option routers 10.1.1.2;
-
-
next-server 10.1.1.3;
-
filename "bootx64.efi";
-
}
接下来是要说一下bootx64.efi是如何来的。首先要说的是redhat doc说的BOOTX64.EFI 或者grubx64.efi 或者shim.efi都是不能用的(反正我是反复都试了,都没有起作用,坑人的节奏~~,这些都是为从光驱或USB安装所准备的,用作pxe是不行的),这需要自己制作efi引导文件,要包裹一些module。
先安装module文件grub2-efi-modules
yum install -y grub2-efi-modules
制作efi引导文件
grub2-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi --modules="tftp net efinet linux part_gpt efifwsetup" -o bootx64.efi
将bootx64.efi拷到tftp的根目录:/var/lib/tftproot
mount centos 7的镜像,将EFI/BOOT/grub.cfg 也拷贝到tftp根目录
将image/pxeboot/{vmlinuz,initrd.img}拷贝到tftp根目录
修改grub.cfg
在linuxefi 后面加上(tftp)/vmlinuz
(tftp)/initrd.img
贴上我的配置:
-
set default="0"
-
-
function load_video {
-
insmod efi_gop
-
insmod efi_uga
-
insmod video_bochs
-
insmod video_cirrus
-
insmod all_video
-
}
-
-
load_video
-
set gfxpayload=keep
-
insmod net
-
insmod efinet
-
insmod tftp
-
insmod gzio
-
insmod part_gpt
-
insmod ext2
-
-
set timeout=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 (tftp)/vmlinuz inst.repo=ftp://10.1.1.3/pub/centos ip=dhcp
-
initrdefi (tftp)/initrd.img
-
}
启用服务试试:
systemctl enable xinetd dhcpd vsftpd
systemctl start xinetd dhcpd vsftpd
请忽略人头,哈哈
阅读(27718) | 评论(3) | 转发(0) |