arm64架构 统信UOS搭建PXE无盘启动Linux系统(麒麟桌面为例) 搞了好久搞得头疼哎
1、准备服务器UOS服务器
准备服务IP 这里是192.168.1.100
1.1、安装程序
shell
yum install -y dhcp tftp tftp-server xinetd nfs-utils rpcbind
2、修改配置
2.1、修改dhcpd.conf
shell
vi /etc/dhcp/dhcpd.conf
conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
#(DHCP-DNS互动)
ddns-update-style none;
#(忽略客户端更新)
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option space PXE;
option client-system-arch code 93 = unsigned integer 16;
allow booting;
allow bootp;
option root-path "192.168.1.100:/data/share/html/workstation/";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.239;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.100;
if option client-system-arch = 00:07 or option client-system-arch = 00:09 {
filename "efi/grub_kl.efi";
} elsif option client-system-arch = 00:0B {
filename "efi/grubnetaa64.efi";
}
}
2.2、修改tftp配置
shell
vi /etc/xinetd.d/tftp
conf
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
2.3、修改nfs
3、启动、开启启动和重启
shell
#启动
systemctl start dhcpd
systemctl start xinetd
systemctl start tftp
systemctl start nfs-server
systemctl start rpcbind
#开机启动
systemctl enable dhcpd
systemctl enable xinetd
systemctl enable tftp
systemctl enable nfs-server
systemctl enable rpcbind
#重启
systemctl restart dhcpd
systemctl restart xinetd
systemctl restart tftp
systemctl restart nfs-server
systemctl restart rpcbind
4、系统准备
shell
## 虚拟机安装麒麟系统然后把系统放到/data/system下
rsync -Pa / /data/system --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/* --exclude=/data/*
5、配置启动菜单
shell
cd /var/lib/tftpboot/
mkdir efi
vi efi/grub.cfg
efi
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set is_preload=true
###grub-password begin
###grub-password end
set have_grubenv=true
load_env
set timeout="1"
font=$prefix/fonts/unicode.pf2
insmod font
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/01_sw_settings ###
### END /etc/grub.d/01_sw_settings ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/06_ubuntukylin_theme ###
insmod part_gpt
insmod ext2
insmod gfxmenu
insmod png
export theme
insmod gzio
### END /etc/grub.d/06_ubuntukylin_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Kylin V10 SP1 5.4.18-85-generic' --unrestricted --class kylin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0701d1e8-c29c-4bad-b96a-e02af022085f' {
set gfxpayload=keep
echo 'Loading Linux menuentry 5.4.18-85-generic ...'
linux /vmlinuz boot=nfs netboot=nfs nfsroot=192.168.1.100:/data/system rootwait rw locale=zh_CN KEYBOARDTYPE=pc KEYTABLE=us ignore_uuid quiet splash ip=dhcp audit=0 live
initrd /initrd.lz
}
5.1、initrd.lz 和vmlinuz地址
shell
# initrd.lz地址
mkdir /kylin/data/
mount Kylin-Desktop-V10-SP1-General-Release-2303-ARM64.iso /kylin/data/
cp /kylin/data/casper/initrd.lz /var/lib/tftpboot/
# vmlinuz地址,TODO 在虚拟机系统上执行
sudo cp /boot/vmlinuz-`uname -r` ~/vmlinuz
#然后在把vmlinuz 放到192.168.1.100服务器下 /var/lib/tftpboot/下 重启tftp
systemctl restart tftp
6、客户端
设置boot
boot Manage 设置UEFI PXEv4启动