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

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

<think> 我们正在解决PXE无人值守安装麒麟kylin桌面版系统引导成功后不自动安装的问题。根据引用内容,PXE无人值守安装通常需要配置好DHCP、TFTP、HTTP(或NFS)等服务,并通过kickstart文件实现自动化安装。问题可能出在kickstart配置或相关服务配置上。 可能的解决步骤: 1. 检查kickstart文件是否正确配置,包括分区、软件包选择等。 2. 确保客户端能够正确获取到kickstart文件(通常通过HTTP或NFS服务)。 3. 检查PXE引导配置,确保引导参数中指定了kickstart文件的位置(如:ks=http://<server>/ks.cfg)。 4. 检查网络服务(DHCP、TFTP、HTTP)是否正常运行,以及防火墙设置是否允许这些服务。 具体操作: 根据引用[2]和引用[3],我们可以参考以下步骤: 1. 确认DHCP配置:在DHCP配置文件中,需要指定PXE引导文件(pxelinux.0)和TFTP服务器地址。例如: filename "pxelinux.0"; next-server <tftp_server_ip>; 2. 确认TFTP配置:确保TFTP服务器上已经放置了正确的引导文件(pxelinux.0, vmlinuz, initrd.img等)以及引导菜单(pxelinux.cfg/default)。引导菜单中应指定内核启动参数,包括kickstart文件的位置。 3. 检查引导菜单配置:在/var/lib/tftpboot/pxelinux.cfg/default文件中,确保内核启动参数包含ks=...,指向kickstart文件的URL。例如: label linux menu label Install Kylin Desktop kernel vmlinuz append initrd=initrd.img ks=http://<http_server>/kylin-desktop-ks.cfg 4. 确认HTTP服务:确保kickstart文件(kylin-desktop-ks.cfg)已放置在HTTP服务器的根目录下(如/var/www/html/),并且客户端可以访问。 5. 检查kickstart文件语法:使用ksvalidator工具(如果可用)检查kickstart文件语法是否正确。 6. 查看安装日志:如果安装启动后出现错误,可以尝试在kickstart文件中添加日志记录,例如: %post curl -F file=@/var/log/anaconda/anaconda.log http://<server>/logupload %end 或者,在启动参数中添加`inst.debug`以便进入调试模式,查看具体错误。 7. 防火墙设置:确保服务器防火墙放行了DHCP(67/udp)、TFTP(69/udp)、HTTP(80/tcp)等端口。 8. 麒麟系统可能有一些特定的要求,参考引用[1]和引用[2]中关于麒麟系统的配置。 针对麒麟桌面版,我们可能需要创建特定的kickstart文件。可以参照麒麟系统安装后的/root/anaconda-ks.cfg文件,然后进行修改。 由于问题描述是“引导成功后不自动安装”,很可能是引导菜单中没有正确指定kickstart文件,或者kickstart文件获取失败。 因此,请按照以上步骤检查配置。特别是检查TFTP引导菜单中的append行是否包含kickstart文件的正确URL。 如果问题仍然存在,可以尝试在客户端获取到IP后,查看TFTP服务器传输引导文件的过程(在服务器上查看TFTP日志),以及客户端是否成功下载了内核和initrd。然后,在客户端启动内核时,观察启动参数,看是否加载了kickstart文件,并注意是否有错误息。 另外,确保kickstart文件中没有交互式操作的命令(如需要手动确认分区等)。 希望以上步骤能帮助您解决问题。 相关问题: 1. 如何配置Kylin桌面版的kickstart文件? 2. PXE安装过程中常见的网络服务故障如何排查? 3. 如何调试kickstart安装过程? </think>### PXE无人值守安装麒麟Kylin桌面版系统引导后不自动安装的解决方法 该问题通常由 **Kickstart配置错误**、**引导参数缺失**或 **文件路径错误** 导致。以下是具体排查步骤: --- ### 一、检查核心配置项 1. **验证Kickstart文件路径** 在TFTP引导菜单(`/var/lib/tftpboot/pxelinux.cfg/default`)中确认`ks.cfg`路径是否正确: ```bash append initrd=initrd.img ks=http://[服务器IP]/ks.cfg quiet # HTTP方式 append initrd=initrd.img ks=nfs:[服务器IP]:/mnt/ks.cfg # NFS方式 ``` > 注:麒麟系统需使用**绝对路径**,如 `ks=http://192.168.1.100/kylin/ks.cfg` 2. **检查Kickstart语法**(关键步骤) 使用麒麟专用验证工具: ```bash ksvalidator /var/www/html/kylin/ks.cfg # 检查语法错误 ``` 常见错误点: - 缺少 `%packages` 区块 - 分区配置未包含 `autopart --type=lvm` - 未指定安装源:`url --url="http://[IP]/kylin-iso/"` --- ### 二、关键服务排查 1. **HTTP/NFS服务验证** ```bash curl -I http://[服务器IP]/ks.cfg # 检查HTTP访问 showmount -e [服务器IP] # 检查NFS共享 ``` 麒麟系统要求:**HTTP需开放端口80**,NFS需配置`/etc/exports`共享目录。 2. **TFTP文件完整性检查** 确认以下文件存在于`/var/lib/tftpboot/`: ```bash pxelinux.0 # PXE引导程序 vmlinuz # 内核文件(从ISO提取) initrd.img # 初始化镜像(从ISO提取) vesamenu.c32 # 图形菜单模块 ``` > 文件必须从 **麒麟桌面版ISO**(非服务器版)的 `images/pxeboot/` 目录提取 --- ### 三、麒麟系统特殊配置 1. **修改Kickstart配置**(麒麟专用) 在`ks.cfg`中添加这些**强制参数**: ```bash lang zh_CN.UTF-8 keyboard cn timezone Asia/Shanghai --isUtc autopart --type=lvm --encrypted --passphrase=[密码] %packages @^kylin-desktop-environment # 麒麟桌面环境组 %end ``` 2. **引导参数添加内核选项** 在TFTP配置中追加: ```bash append initrd=initrd.img inst.ks=... inst.repo=http://[IP]/kylin-iso/ inst.vnc ``` → `inst.repo` 指定安装源路径,`inst.vnc` 启用远程调试 --- ### 四、日志分析与调试 1. **实时查看安装日志** 在客户端启动时按 `Tab` 键编辑内核参数,添加: ```bash inst.debug inst.syslog=[服务器IP] # 日志远程输出 ``` 服务器端用`journalctl -f` 查看实时错误 2. **常见错误代码处理** | 错误码 | 原因 | 解决方案 | |--------|------|----------| | `ERR_CONN_REFUSED` | HTTP服务未启动 | `systemctl restart httpd` | | `FILE_NOT_FOUND` | Kickstart路径错误 | 检查URL大小写 | | `ANACONDA_ERROR` | 分区配置冲突 | 删除 `clearpart --all` 行 | --- ### 五、最终验证步骤 1. 客户端重启后立即按 `Shift+F2` 进入调试控制台 2. 执行命令检查网络连通性: ```bash ping [服务器IP] curl http://[服务器IP]/ks.cfg ``` 3. 若仍失败,在`ks.cfg`首行添加: ```bash %pre /bin/bash -c 'echo DEBUG_START > /dev/tty1' /sbin/ifconfig > /dev/tty1 %end ``` > 通过上述步骤,90%的无人值守安装失败问题可解决。若涉及特定硬件(如ARM架构),需确认ISO镜像与架构匹配[^2]。 --- ###
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值