zypper in tftp xinetd dhcp nfs-kernel-server
vi /etc/dhcpd.conf
option domain-name "gbca.cn";
option domain-name-servers 202.96.64.68, 114.114.114.114;
option routers 192.168.11.99;
ddns-update-style none;
default-lease-time 14400;
option arch code 93 = unsigned integer 16; # RFC4578
subnet 192.168.11.0 netmask 255.255.255.0 {
next-server 192.168.11.131;
range 192.168.11.200 192.168.11.220;
default-lease-time 14400;
max-lease-time 172800;
if option arch = 00:07 or option arch = 00:09 {
filename "/EFI/x86/grub.efi";
}
else if option arch = 00:0b {
filename "/EFI/aarch64/bootaa64.efi";
}
else {
filename "/BIOS/x86/pxelinux.0";
}
}
执行 systemctl restart dhcpd 重启动 DHCP 服务器。注意括号。
vi /etc/xinetd.d/tftp 文件内容如果没有就增加,如已经存在了 不用更改退出就可以。
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
flags = IPv6 IPv4
user = root
server = /usr/sbin/in.tftpd
server_args = -u tftp -s /srv/tftpboot
# per_source = 11
# cps = 100 2
disable = no
}
准备结构
在 /srv/tftpboot 中创建一个结构以支持各种选项。
mkdir -p /srv/tftpboot/BIOS/x86
mkdir -p /srv/tftpboot/EFI/x86/boot
mkdir -p /srv/tftpboot/EFI/aarch64/boot //ARM架构
mkdir -p /srv/install/x86/sles12/sp5/cd1
mount /dev/cdrom /srv/install/x86/sles12/sp5/cd1 这种方式不行,引导后停住了,继续讯问文件位置
用于 x86 的 BIOS 文件
将 pxelinux.0 复制到 TFTP 文件夹并为配置文件准备一个子文件夹。
cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/BIOS/x86/
mkdir /srv/tftpboot/BIOS/x86/pxelinux.cfg
vi /srv/tftpboot/BIOS/x86/pxelinux.cfg/default
default install
# hard disk
label harddisk
localboot -2
# install
label install
kernel linux
append initrd=initrd install=nfs://192.168.11.131:/srv/install/x86/sles12/sp5/cd1/SLE-12-SP5-Server-DVD-x86_64-GM-DVD1.iso
display message
implicit 0
prompt 1
timeout 5
将 x86 BIOS 和 UEFI 引导所需的 kernel
、initrd
和 message
文件复制到相应的位置。
root #
cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/
root #
cp -a linux initrd message /srv/tftpboot/BIOS/x86/
执行 systemctl restart nfsserver 重启动 nfs 服务器
配置以上就可以使用了。