PXE无人值守安装统信UOS1060桌面版系统

这次介绍统信1060系统的pxe安装,介绍完后pxe的部署也算是告一段落了,后期看缘分介绍windows的部署(WDS)。

镜像准备

直接官网下载,按照自己的平台芯片下载对应的镜像【uos-desktop-20-professional-1060-arm64.iso】

下载后将镜像文件解压到/uos_folder/目录下
mkdir -p /uos_folder
mkdir -p /mnt/tmp
mount /home/uos-desktop-20-professional-1060-arm64.iso /mnt/tmp
cp -r /mnt/tmp /uos_folder/uos_arm_1060

tftp内核准备

mkdir -p /var/lib/tftpboot/boot/uos_arm_1060/
cp /mnt/tmp/live/vmlinuz /var/lib/tftpboot/boot/uos_arm_1060/
cp /mnt/tmp/live/initrd.img /var/lib/tftpboot/boot/uos_arm_1060/
umount  /mnt/tmp

NBP准备

同样是arm系统,可以使用之前kylin的NBP file就可以了,同架构都是通用的,放好之后改一下dhcp策略就行了。

DHCP OPTION SET

grub文件准备

vi /var/lib/tftp/grub/grub.cfg
###
default=autoinstall
timeout=5
timeout_style=menu
d=autoinstall

menuentry "Auto - uos_arm_1060 - Installer"  {
    echo "Start install  uos_arm_1060"
    echo "Loading Kernel..."
    linux /boot/uos_arm_1060/vmlinuz console=tty boot=live netboot=nfs nfsroot=xx.xx.xx.xx:/uos_folder/uos_arm_1060/ components union=overlay locales=zh_CN.UTF-8 livecd-installer ubiquity/reboot=true --
    echo "Loading Ram Disk..."
    initrd /boot/uos_arm_1060/initrd.img
}


###

NFS服务准备

我的服务搭建在ubuntu上,可以直接使用命令安装,并为开启挂载点

sudo apt update
sudo apt install nfs-kernel-server -y
# 指定挂载点,并赋予权限
sudo vi /etc/exports
/uos_folder  *(rw,sync,no_subtree_check,no_root_squash)  

#注1:/nfs/rootfs  要共享的目录
#注2:*  所有主机都可以共享该目录
#注3:(rw,sync,no_subtree_check,no_root_squash)  访问该目录的主机拥有的权限
# rw                具有读写权限
# sync              文件同步写入到内存和硬盘
# no_subtree_check  不检查子目录权限  子目录与顶层目录具有相同的权限
# no_root_squash    如果客户端是root的话,那么他对这个共享目录具有root的权限

无人值守流程文件准备

统信系统使用setting.ini获取参数进行自定义安装,需要把该文件放到光盘根目录的oem文件夹内,同时在oem文件夹内可以加入hooks文件夹,写入以job为后缀的shell脚本,以便于自动部署时执行。但是从1050版本开始,增加了sign验证,官方不再支持个人去自定义装机流程了,新增了oem.suqashfs格式的文件,setting.ini和job文件都被包到里面,但是还是可以有办法解决的,有需要具体了解的可以私聊(有偿),这里提供一下配置文件。
settings.ini:

[General]
apt_source_deb = "deb https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free"
apt_source_deb_src = "#deb-src https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free"
finish_action = reboot
check_mode_action = reboot
systemd_check_mode = true
system_info_default_username = test
system_info_default_password = abcd@1234
system_info_default_hostname = test-PC
skip_system_info_page = true
skip_select_language_page_on_first_boot = true
timezone_default = Asia/Beijing
select_language_default_locale=zh_CN
skip_timezone_page = true
system_info_default_keyboard_layout = us
system_info_default_keyboard_layout_variant =
skip_system_keyboard_page = true
DI_LOCALE=zh_CN
DI_LAYOUT = us
DI_LAYOUT_VARIANT = 
DI_FULLDISK_MODE = true
partition_do_auto_part = true
skip_partition_page = true
skip_select_language_page = true
system_check_mode = true
DI_INSTALL_MODE="auto-install"
DI_HOSTNAME=test
DI_USERNAME=test
DI_PASSWORD=abcd@1234
DI_HOSTNAME_AUTO_SUFFIX_CONFIG = "-PC"
DI_REBOOT_AFTER_SETUP = true

03_custom_set.job

#!/bin/bash
# 我手边arm的电脑显卡不持支5.10,所以把这个移除了
mkdir -p /boot/temp
mv /boot/*5.10.0* /boot/temp 

echo -e "test    ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers

# 由于不支持普通用户自定义安装,虽然方法都定义好了,但是没有使用,所以只能在自定义流程里把步骤补全
mkdir -p /var/lib/AccountsService/deepin/users && touch /var/lib/AccountsService/deepin/users/test
. "/usr/share/deepin-installer/tools/scripts/init_environment.sh"
. "/usr/share/deepin-installer//tools/functions/default_funcs.sh"
. "/usr/share/deepin-installer//tools/functions/bootloader_funcs.sh"
. "/usr/share/deepin-installer//tools/functions/logs_funcs.sh"
. "/usr/share/deepin-installer//tools/functions/xrandr.sh"
file_name=/usr/share/deepin-installer//tools/functions/setup_system_funcs.sh
if [ -e "${file_name}" ];then
	. "${file_name}"
	## 准备定制用户
	prepare_customize_user
	# 定制用户
	customize_user
	# 设置用户
	setup_username
	# 设置密码
	setup_password
	# 设置主机名
	setup_hostname
	#auto login
	setup_lightdm_auto_login test
	update_apt_sources_list
	setup_bootloader_arm64
fi
# 自定义脚本执行
wget -O /home/uos-custom.sh http://xx.xx.xx.xx/uos-custom.sh
chmod +x /root/uos-custom.sh
sudo bash /home/uos-custom.sh

以上就完成了统信系统的部署,可以直接开始安装。