目录
构建pxe服务器环境
1.dhcp
1) 安装dhcp服务
apt-get install isc-dhcp-server
2) 配置dhcp服务
/etc/dhcp/dhcpd.conf:
option domain-name-servers 114.114.114.114;
subnet 192.168.77.0 netmask 255.255.255.0 {
range 192.168.77.50 192.168.77.150;
option routers 192.168.77.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.77.255;
next-server 192.168.77.176;#nfs服务态ip
}
host intel-i9-board {
hardware ethernet 00:F1:F5:2B:81:7F;
fixed-address 192.168.77.87;#机器ip
filename "x86/grub-efi-bootx64.efi";
}
/etc/default/isc-dhcp-server:(复制ip a的网口)
INTERFACESv4="ens33"
3 启动dhcp服务
sudo systemctl restart isc-dhcp-server
2.nfs
1) 安装nfs服务
apt-get install -y nfs-kernel-server
2) 创建nfs共享目录
mkdir /nfs
chmod 777 /nfs
3) 配置nfs服务(/etc/exports)
/nfs *(rw,sync,no_root_squash,no_subtree_check)
4) 启动nfs服务
systemctl restart nfs-kernel-server
3.tftp
1) 安装tftp服务
apt-get install tftpd-hpa
2) 创建tftp目录
mkdir /tftpboot
3) 配置tftp服务(/etc/default/tftpd-hpa)
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
4) 启动tftp服务
sudo systemctl restart tftpd-hpa
准备pxe客户端启动所需文件
0.构建x86目录
mkdir /tftpboot/x86
1.grub-efi-bootx86.efi
cp /path/to/grub-efi-bootx86.efi /tftpboot/x86/
注意:yocto编译生成的grub-efi-bootx86.efi是有问题的
2.grub.cfg
# Automatically created by OE
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
default=boot
timeout=10
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
menuentry "Net Boot" {
echo "Loading Linux..."
linux (tftp)/x86/bzImage netboot=nfs root=/dev/nfs nfsroot=192.168.77.176:/nfs/,v3,proto=tcp rw ip=dhcp rootwait
}
注意:一定不要加initrd (tftp)/x86/initrd
3.bzImage
cp /path/to/build_dir//tmp/deploy/images/intel-corei7-64/bzImage /tftpboot/x86/
4.准备nfs共享文件系统
sudo tar xzf /path/to/build_dir/tmp/deploy/images/intel-corei7-64/xxx.tar.gz -C /nfs
ls /nfs应为
配置pxe客户端
BIOS设置启动首选项为网络启动
配置内核选项
应打开一下选项:
Network File Systems
NFS Client Support