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

上次,我们展示了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-config

autoinstall:
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自动登录的锦囊妙计,欢迎在评论区不吝赐教!

声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/7862.html

铁军哥的头像铁军哥

相关推荐

添加微信
添加微信
Ai学习群
返回顶部