文章总结: 本文详细介绍了Ubuntu26.04桌面版无人值守安装镜像的定制方法,通过对比服务器版差异,提供完整的autoinstall.yaml配置文件示例,包含密码加密避坑、root账户解锁、GDM3自动登录配置等关键技术要点。实测显示自动化部署可节省300MB内存和3GB磁盘空间,虽然自动登录功能需手动完善,但整体实现了桌面系统的全自动安装。 综合评分: 85 文章分类: 解决方案,技术标准,云安全
拒绝点点点!手把手教你定制Ubuntu 26.04桌面版无人值守镜像,还有隐藏福利
原创
衡水铁头哥 衡水铁头哥
铁军哥
2026年5月1日 07:45 北京
在小说阅读器读本章
去阅读
上次,我们展示了Ubuntu 26.04 LTS服务器版本的全自动无人值守安装镜像制作方法(拒绝手搓系统!Ubuntu 26.04自动安装实战:让电脑自己“卷”起来),相比于手动安装(仅占752MB内存!Ubuntu 26.04 Server版上手:这才是服务器该有的样子!),省事省力省心,虚拟机创建完成之后,只需要执行开机动作,十多分钟就能自动换完成安装。
但是,也有粉丝关心桌面版本,要知道Ubuntu 26.04 LTS桌面版本的安装步骤比较复杂(Ubuntu 26.04桌面版部署),是否也能支持全自动无人值守安装呢?
正所谓民有所呼、我有所应。今天,我们就来给Ubuntu 26.04 Desktop版本也安排上自动驾驶。毕竟,能让代码干的活,咱们绝不出第二身汗。
首先,我们需要明确Desktop版本与Server版本的差异。从字面理解,Desktop版本相比Server版本,主要多了Subiquity和GNOME桌面环境,核心功能基本一致,但会占用更多的内存资源。如果内存不足,会导致SquashFS解压失败并崩溃,这也是官方推荐内存大于6 GB的原因。而且,我们也测试过给Server版本的Ubuntu安装远程桌面(如何通过MSTSC连接Ubuntu的远程桌面?)。
此外,就是一些配置上的差异,例如Desktop版本支持自动登录,同时对root账户限制更多,等等。
那这样的话,我们就可以以Server版本的自动配置文件autoinstall.yaml为蓝本,然后进行调整就可以了。
同样的,我们先回顾一下Desktop版本的部署过程。
语言、可访问性、键盘布局、网络、安装Ubuntu这些都不用管。
第6步,安装类型默认是【交互式安装】,我们现在已经在使用【由自动安装文件自动化】了,正常来讲,我们都不会看到这个页面。
还有后面的应用程序默认也是【默认集合】,推荐的专有软件默认也是没有选择。
磁盘的使用方式跟我们在Server版本中使用的保持一致。
第11步,设置账户信息这里,出现了第一个差异点。注意这里的【登录时需要密码】,默认就是未勾选的,勾选之后等于启用自动登录。
但是,桌面版的自动登录高度依赖/etc/gdm3/custom.conf这个配置文件,单纯使用自动安装配置文件无法配置生效,需要使用late-commands,搭配sed或者cat命令进行强制替换以完成配置。
剩下的,还有选择时区和安装确认,是不是感觉逻辑上也没有什么差异?那我们就直接看一下关键注意事项 (Precautions)
1、密码与特殊字符加密容易踩坑。password字段必须是预先生成的密文Hash,但是当密码包含特殊字符时,极易触发Bash的历史扩展或变量解析,导致生成的Hash错误,最终引发新系统登录失败。要解决这个问题,只要在使用openssl passwd命令式,使用单引号包裹密码就可以了。
2、Desktop版本在安装完后,通常会强制锁定root账户,我们之前的自动配置文件autoinstall.yaml,仅包含了SSH的配置。在Desktop版本中,需要在runcmd阶段,使用最高权重的数组指令格式强行修改shadow文件。
autoinstall: runcmd: - [ bash, -c, "echo 'root:tt@2025.' | chpasswd" ] - [ bash, -c, "sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config" ] - [ bash, -c, "systemctl restart ssh" ] - | if [ -f /etc/gdm3/custom.conf ]; then sed -i 's/# AutomaticLoginEnable = true/AutomaticLoginEnable = true/' /etc/gdm3/custom.conf sed -i 's/# AutomaticLogin = user1/AutomaticLogin = tt/' /etc/gdm3/custom.conf fi
3、Desktop版本的Cloud-init默认会寻找名为CIDATA的卷,我们需要在内核参数中指定s=/cdrom/,强制它去光盘根目录寻找,从而不受卷标格式限制。
把前面这些自动配置参数整合到一起,就得到了自动配置所需的autoinstall.yaml文件了。
#cloud-configautoinstall: version: 1 identity: hostname: tt-server username: tt realname: "tt" password: "$1$XdP.XBYr$yXkHTxen28g3t74wNJ6N40" autologin-user: tt storage: layout: name: direct network: network: version: 2 ethernets: main_interface: match: name: "en*" dhcp4: true apt: primary: - arches: [default] uri: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ packages: - openssh-server - openvpn - wireguard timezone: "Asia/Shanghai" kernel-crash-dumps: enabled: false user-data: runcmd: - [ bash, -c, "echo 'root:tt@2025.' | chpasswd" ] - [ bash, -c, "sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config" ] - [ bash, -c, "systemctl restart ssh" ] - | if [ -f /etc/gdm3/custom.conf ]; then sed -i 's/# AutomaticLoginEnable = true/AutomaticLoginEnable = true/' /etc/gdm3/custom.conf sed -i 's/# AutomaticLogin = user1/AutomaticLogin = tt/' /etc/gdm3/custom.conf fi late-commands: - curtin in-target -- sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"/' /etc/default/grub - curtin in-target -- update-grub
最后,将这个文件拷贝到安装镜像的根目录下,有了这个自动化的灵魂,你就能跟我一样实现Ubuntu系统的自动化部署了。
当然,我们也可以在Ubuntu 26.04 Server版里面,使用KVM嵌套部署一台Desktop版系统(手搓KVM虚拟化!Ubuntu 26.04 + KVM 7.0.0,告别VMware的低成本玩法)。
virt-install \ --name ubuntu_2604_desktop \ --ram 8192 \ --vcpus 8 \ --disk path=/var/lib/libvirt/images/vm/target.qcow2,size=50 \ --cdrom /var/lib/libvirt/images/iso/ubuntu-26.04-desktop-auto.iso \ --graphics vnc,listen=0.0.0.0 \ --video virtio \ --boot cdrom,hd \ --events on_reboot=restart \ --noautoconsole
然后,我们使用virsh console连接到虚拟机,等待安装完成就可以了。
这个Desktop版本的安装时间整体偏长,差不多要半个小时,跟我双层嵌套虚拟化肯定也有关系。
等待系统重启完成,先连接命令行看一下。
可以看到,账户密码、软件包安装这些都没有问题,在没有登录桌面的情况下,内存占用也只有909 MB。
再通过VNC连接桌面看一下。
这里就是我前面提到的,自动登录暂时还不太好使,需要手工去设置里面开启一下。
进入桌面之后,我们会发现,使用自动化脚本部署的Desktop系统,竟然出现了手工部署没出现的LibreOfficeWriter这个软件,难道这个自动化部署还有一点点差异?
登录桌面之后,再次从命令行检查资源状态。
可以看到,现在root账户登录也是没有问题的,内存用量来到了1286 MB,相比之前手工部署的系统,内存用量更少,差了300多兆。
而且,已用空间只有12 GB,相比手工部署的15 GB,我们能用的软件更多了,使用的磁盘空间反而更少了,难道这就是自动化部署的隐藏福利?
最后,我们再次测试通过SSH远程登录root账户,一切顺利。
实测证明,Desktop版的自动化安装虽然时间稍长,但跑完之后你会发现:系统更轻量了,磁盘空间更省了,这简直就是自动化部署赠送的隐藏彩蛋。
虽然目前自动登录还有那么一点小脾气,但瑕不掩瑜。如果你在实操中找到了完美解决GDM3自动登录的锦囊妙计,欢迎在评论区不吝赐教!
***推荐阅读***
我们的WireGuard管理系统支持手机电脑了!全平台终端配置,支持扫码连接,一键搞定
保姆级教程:一条命令部署OpenVPN管理系统V4版,支持Win/Mac/安卓/iOS全平台接入
成本省下99.7%!用40元的腾讯云服务器自建IPsecVPN,成功对接企业级飞塔防火墙
别再乱选VPN了!实测数据告诉你:为什么L2TP是个“坑”
SRv6部署第一坑:为什么配置了Locator却Ping不通?
嫌一键部署不过瘾?带你手搓Hermes智能体,主打一个通透
Hyper-V别开!VMware 25H2安装避坑指南,附Hermes新动向
H3C CAS实战:CVM纳管CVK的相爱相杀,这波操作太秀了!
VPP转发性能从10G暴增至24G?揭秘OpenEuler虚拟机的极限压榨术
NVUE不支持OSPFv3?别慌!教你一招搞定SRv6地基
手机也能跑DeepSeek-R1/Qwen3了:零成本搭建AI推理平台
2048卡昇腾910C集群算力集群交付工程手册
2048卡H100算力中心100G无阻塞存储网建设方案
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:铁军哥 衡水铁头哥 衡水铁头哥《拒绝点点点!手把手教你定制Ubuntu 26.04桌面版无人值守镜像,还有隐藏福利》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论