拒绝点点点!手把手教你定制Ubuntu26.04桌面版无人值守镜像,还有隐藏福利

admin 2026-05-02 05:42:37 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细介绍了Ubuntu26.04桌面版无人值守安装镜像的定制方法,通过对比服务器版差异,提供完整的autoinstall.yaml配置文件示例,包含密码加密避坑、root账户解锁、GDM3自动登录配置等关键技术要点。实测显示自动化部署可节省300MB内存和3GB磁盘空间,虽然自动登录功能需手动完善,但整体实现了桌面系统的全自动安装。 综合评分: 85 文章分类: 解决方案,技术标准,云安全


cover_image

拒绝点点点!手把手教你定制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桌面版无人值守镜像,还有隐藏福利》

GhostBits详解 网络安全文章

GhostBits详解

文章总结: 本文详细介绍了GhostBits的概念及其在各种场景下的应用,包括fastjson和jackson的bypass方法、BCELbypass、tomc
评论:0   参与:  0