服务器上安装的是Ubuntu22.04,因为某些原因需要图形界面,决定安装默认的桌面环境(GNOME),使用命令 tasksel 选择相应的桌面环境并安装,连接VNC并重启服务器之后发现无法进入桌面环境,但使用SSH客户端可以正常连接到服务器,由此可以判断系统已经启动成功且网络连接正常。通过VNC查看启动过程的输出信息,就连续遇到两个问题:
第一个问题:网络配置失败
首先遇到的问题是系统卡在网络配置的环节,提示“A start job is running for hait for Network to be Configured (1min 40s / no)”,之前已经尝试通过SSH方式可以正常进入系统且网络是连通的,否则也不可能连接上SSH。出现这个问题就有莫名其妙了,通过查找相关资料才发问题,是因为新版的Ubuntu在网络接口配置方式有所改变的原因。网络配置实际是正确的,只所以上网正常,但启动时又卡在网络配置环节,是因为图形配置管理软件并未接管网络配置,桌面环境无法检测到网络的状态,系统会认为网络连接异常,就一直卡在这里。
新版的系统里使用netplan来配置网络,默认配置目录在/etc/netplan/*.yaml,配置文件一般是/etc/netplan/01-netcfg.yaml,
想要使用图形配置管理软件来接管网络配置,需要将配置文件中的标签renderer设置为NetworkManager,该标签支持networkd和NetworkManager两种渲染器,我的服务器上默认配置是networkd。
至此找到了问题,在安装了桌面环境的情况下,又需要让图形配置管理软件来接管网络配置的情况下,可以通过编辑配置文件/etc/netplan/01-netcfg.yaml中的renderer标签来解决这个问题,将renderer的值设置为NetworkManager即可:
vi /etc/netplan/01-netcfg.yaml
network: version: 2 renderer: NetworkManager ethernets: ......
重启服务器,没有再提示网络配置错误的问题,这个问题到这里解决了。
第二个问题:GNOME显示器管理出错
第一个问题解决后,重启服务器又卡在了GNOME显示管理器上,提示“A start job is runing for GNOME Display Manager(1min 40s / no)”,然后就黑屏,一个光标在屏幕左上角闪烁,无法进入桌面,怀疑是显卡驱动问题,准备禁用显卡驱动启动或删除不必要的驱动,结果在检查GRUB时发现GRUB_CMDLINE_LINUX_DEFAULT的默认值是nomodeset,看到这里明白了,nomodeset参数的作用就是不加载图形驱动的方式启动内核,服务在没有特殊需求的情况下,一般都是直接进入命令行模式,但安装桌面环境后,该参数没有更改,导致系统启动时没加载图形驱动引起的,所以修改一下GRUB就好,通过修复模式或SSH以命令行方式进入系统,使用 vi 命令修改配置文件 /etc/default/grub
sudo vi /etc//grub
修改GRUB_CMDLINE_LINUX_DEFAULT的值,将“nomodeset”修改为“quiet splash”
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration'GRUB_DEFAULT=0GRUB_TIMEOUT_STYLE=hidden GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" #此项配置修改成“quiet splash” GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" ......
更新GRUB引导加载程序配置
sudo update-grub #更新GRUB引导加载程序配置
重启服务器,正常进入桌面环境。
至此,问题解决。记录解决过程以方便以后查阅。