在VMware里装Ubuntu,ISO加载完,进度条走完,安装界面一弹出来,我人就傻在原地——弹出的窗口比整个屏幕还大一圈,右下角的【下一步】按钮稳稳地停在显示区外面,鼠标怎么推都够不着。把虚拟机窗口拉到最大也没用,桌面分辨率上不去,窗口就永远比你屏幕大。老笔记本实体机装也一样,分辨率低到一定程度,Ubuntu安装器就会超出可视区域,看起来就像装到一半卡死。
这个情况太常见了,几乎每周都能在社区里看到有人发的截图:Ubuntu安装界面下面缺了一截,【继续】或者【下一步】按钮就是点不到。很多人以为是ISO镜像有问题,又重新下载了一遍,结果还是一样。其实问题根本不在这,而是安装器的显示环境没对齐。我接下来把排查思路和解法一条条捋清楚,你在虚拟机里或者老电脑上遇到同样情况时,照着操作就能过。
1. 为什么屏幕一小,Ubuntu安装器就"卡死"在下一步
1.1 安装界面卡住的三层原因
先说结论:这不是Ubuntu安装器坏了,也不是系统卡住,纯粹是窗口比屏幕大,按钮落在可视区外面了。
具体拆开看,有三个层面会叠加造成这个问题。
第一层是物理屏幕和虚拟机窗口本身太小。这个最直接。虚拟机窗口只有800x600,那虚拟显卡输出的画面顶天就是这么大,安装器窗口一弹出来,自然就溢出了。实体机上如果笔记本分辨率低,比如1366x768的老机器,同时缩放比例还拉到125%,实际可用像素算下来可能连1024x768都不到,安装器也会溢出。
第二层是显示驱动和EDID信息异常。Ubuntu安装程序是图形界面的,它在启动时会读取显示器发送的EDID数据,判断这块屏幕支持哪些分辨率。如果EDID信息没读到,或者虚拟机里的显卡没有增强驱动,系统就只能用最保守的安全分辨率——常见的就是800x600甚至640x480。在这个分辨率下,Ubuntu安装器的窗口会占满甚至超出整个屏幕。注意,这里说的800x600不是系统里能手动调的那几个选项,而是显卡驱动根本没有加载好。
第三层是窗口管理器和安装器之间的尺寸协商问题。Ubuntu桌面的安装器(Ubiquity)是一个普通图形窗口,它按自己内部布局的需求计算出窗口高度。当窗口高度大于屏幕可用高度时,GNOME的窗口管理器并不会自动帮你把窗口缩到屏幕以内,而是让窗口保持完整尺寸,超出部分就超出了。于是按钮被排在窗口底部,整个底部就消失在屏幕外。
1.2 先分清虚拟机窗口太小和系统分辨率太低
排查这个问题的第一步,是判断到底属于哪种情况。方法很简单:在安装界面按键盘上的 Ctrl+Alt+T 打开终端,然后执行:
bash复制xrandr
看输出里的当前分辨率。如果是800x600或者640x480,而且可用列表里几乎没有别的选项,那说明是显示驱动和EDID识别的问题。如果当前分辨率已经是1280x800甚至更高,但安装窗口还是超出屏幕,那就是窗口和屏幕尺寸关系的问题,这种一般发生在虚拟机没开自动适应窗口、或者宿主屏幕实在太小的时候。
这两种情况对应的解决方案不一样:前者要改GRUB启动参数、加载驱动,后者只需要拖窗口、调窗口尺寸或者用键盘导航就能救急。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 最快救急:三个不重装、不改文件的点击技巧
如果你只是想把这一次安装走完,不太想折腾配置文件,下面三个手法是最快能见效的。我按从简单到麻烦排个序。
2.1 把窗口拉满或者全屏,先把按钮逼出来
在虚拟机里装Ubuntu最常见的原因就是VMware或VirtualBox窗口没有跟随虚拟机分辨率自动放大。这时候操作很直接:把虚拟机窗口最大化,然后让虚拟机的显示输出跟随窗口尺寸。
VMware的路径是:View(视图) -> Autofit Guest(自动适应客户机)。这个选项会把虚拟机的分辨率强行调整到跟当前窗口一样大。如果已经进入安装界面但选项灰着,先点击窗口内部,再按一次 Ctrl+Alt+Enter 切换全屏,再切回来,一般就激活了。
VirtualBox的操作类似:View(视图) -> Virtual Screen 1(虚拟屏幕1) -> Resize to 1280x800(调整为1280x800),或者在菜单栏直接按 Host+C 切全屏(Host键默认是右Ctrl)。切全屏后虚拟机屏幕尺寸就等于物理屏幕尺寸了,窗口溢出的概率会小很多。
我这里说句实在话:如果你是在物理机上装Ubuntu,这一步没用,因为你没法把物理屏幕拉大。物理机请直接跳到2.2和2.3。
2.2 按住Alt键拖动窗口:把被推出屏幕的界面拖回来
这是X11窗口环境下非常实用的一招:按住 Alt键,然后在窗口内的任意位置按住鼠标左键拖动,就可以拖动整个窗口,即使窗口标题栏已经在屏幕外面也没关系。
原理很简单,X11窗口协议支持通过Alt键直接移动窗口,不需要点击标题栏。GNOME桌面默认就支持这个操作。
实际操作步骤:
- 鼠标点击安装窗口内任何空白区域,确保窗口是当前激活窗口。
- 按住键盘左下角或右下角的 Alt键 不放。
- 按住鼠标左键,往左上方向拖。
- 整个窗口会跟着移动,直到露出右下角的按钮。
这个方法的局限在于:如果安装窗口已经是最大化状态,Alt拖动是没用的。但Ubuntu安装器窗口一般不是最大化,只是一个很大的普通窗口,所以大多时候能解决。
另外补充一个小技巧:如果拖动后按钮还是太靠边,可以用鼠标滚轮配合方向键微调窗口位置,再不行就多拖几次,把窗口中下部分拖到屏幕中间来。
2.3 纯键盘Tab导航:完全不用鼠标也能走完安装流程
Alt拖动也搞不定的时候,还有最后的保底方案——键盘。
Ubuntu安装器(Ubiquity)是基于Qt的界面,所有按钮都支持键盘焦点导航。操作方式:
- 在安装界面内用鼠标点击任意位置,确保窗口获得焦点。
- 按 Tab 键,焦点会在各个控件之间按顺序移动。
- 被聚焦的按钮会有一个高亮边框或背景变化,仔细看屏幕,找到当前焦点落在哪个按钮上。
- 按 Enter 相当于点击该按钮。
- 按 Shift+Tab 可以往回移动焦点。
这个方式的局限性是屏幕上看不见焦点在哪,可能聚焦到一个隐藏按钮上。但大多数时候安装器的第一个重点控件就是【下一步】或者【继续】按钮,按两三次Tab就能到。我在一次640x480分辨率的机器上装Ubuntu 18.04,整个过程全靠Tab+Enter走完,虽然慢但确实能通。
提示:Tab导航跟窗口大小无关,只要窗口有焦点,键盘事件就能触达按钮。这是你完全不改任何配置的情况下,最稳妥的救急手段。
3. 从根上解决:用GRUB启动参数给安装器指定合适分辨率
救急手法适合一次性的安装过程,但如果你发现自己要在多台小屏幕机器上装Ubuntu,或者不太想用Tab盲点,那还是从启动参数层面解决更彻底。GRUB启动参数可以在系统启动的最早期就告诉内核和显示驱动:按什么分辨率来输出画面。
3.1 临时修改启动项:GRUB界面按e
用U盘启动Ubuntu安装程序时,第一个出现的界面不是安装器,而是GRUB菜单。菜单上有几个选项,比如"Try Ubuntu"和"Install Ubuntu",底下还有一栏英文提示,大意是按e编辑启动项。
操作步骤:
- 光标移到 Install Ubuntu(或者"Try Ubuntu",看你想进安装还是先体验)。
- 按 e 进入启动项编辑界面。
- 找到以
linux开头的那一行,这一行通常很长,包含quiet splash之类的参数。 - 在行末加一个空格,然后输入你要加的显示参数。
- 按 Ctrl+X 启动。
这个过程说起来简单,有个细节要注意:GRUB界面的分辨率可能也很低,字会比较大或者比较模糊,但不影响操作,因为GRUB本身是纯文本界面,方向键和回车都能正常工作。就看清楚行末在哪里、回车后能不能选中正确的启动项。
3.2 三类关键参数:video=、nomodeset、安全图形模式
临时编辑启动项时,常用的参数有三类,作用完全不同:
| 参数 | 作用 | 适用场景 | 副作用 |
|---|---|---|---|
video=1280x800 |
让内核直接设置指定分辨率 | 显示器EDID信息没被正确识别,分辨率选项少 | 如果分辨率不受显示器支持,可能黑屏 |
nomodeset |
禁用内核模式设置,显卡驱动接管显示输出 | 显卡驱动加载异常、黑屏、花屏 | 分辨率很低、界面粗糙、无法调亮度 |
vga=791 |
走老式帧缓冲模式,设置文本/简单图形分辨率 | 特别老的机器、显卡兼容性极差 | 不推荐,现代Ubuntu上效果有限 |
这三者我用过一次真实案例说明。有一台13寸老笔记本,显示器EDID数据老化得厉害,系统只能读到640x480,安装器直接铺满整个屏幕,按钮完全在屏幕外。我在GRUB里加了 video=1024x768@60,重启后安装界面分辨率变成了1024x768,窗口正好在屏幕范围内,【下一步】一下就点到了。
如果加了 video= 参数后屏幕直接黑了,说明这个分辨率显示器不支持。重新启动,回到GRUB界面再按e,把参数删掉,换成更保守的值比如 video=800x600,或者直接用下面的 nomodeset。
3.3 永久生效:修改/etc/default/grub并update-grub
临时修改的启动参数只在这一次启动生效,重启U盘又变回去。如果你希望参数永久生效(包括装好的系统以后启动都用这个分辨率),要改配置文件。
先进入装好的Ubuntu系统(或者用Try Ubuntu模式),打开终端执行:
bash复制sudo nano /etc/default/grub
找到这一行:
bash复制GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改成:
bash复制GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=1280x800"
如果你想用nomodeset,就改成:
bash复制GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
保存退出后执行:
bash复制sudo update-grub
这个命令会把配置写入GRUB的实际启动脚本,下次开机就自动带着参数启动了。
这里有个容易踩的坑:如果你的系统是UEFI引导,而且已经在用 grub-efi,执行 update-grub 时会提示 grub.cfg 被重新生成,不用担心。但如果你的机器同时装了Windows和Ubuntu,改GRUB参数时要注意别动了 GRUB_DEFAULT 等选项,只改 GRUB_CMDLINE_LINUX_DEFAULT 这一行就够了。
提示:无法确定该用哪个分辨率救急时,最保险的底色方案是
nomodeset。它不会让你的屏幕变大,但能让界面稳定显示,不再出现窗口溢出的局面。装好系统后,先把显卡驱动和虚拟机增强工具装上,再移除这个参数恢复正常分辨率。
4. 如果还是装不上:换安装路径绕开图形界面
GRUB参数折腾了一圈还是不行,或者你觉得打参数太麻烦,那就别跟图形安装器死磕了。Ubuntu的安装系统其实提供了好几条路,你可以绕开图形界面,把系统先装上再说。
4.1 优先选"最小安装":降低安装器负担
这个方案的提升有限,先说清楚:选择"Minimal installation"不会改变安装器窗口尺寸,但它会减少后续要处理的软件包数量,降低安装过程中对显卡和系统资源的占用。在老显卡或低配机器上,安装器可能出现"卡顿到界面点不动"的情况,这跟"窗口溢出"是两码事。如果你是卡顿型问题,选最小安装有时能缓解。选完以后照常用前面说的Tab或者拖窗口继续。
4.2 Ubuntu Server版:全程文本界面,跟分辨率彻底无关
如果你的机器屏幕实在太小,连640x480都费劲,那我强烈建议换个思路:下载Ubuntu Server版ISO来装。Server版的安装器是文本界面,整个安装过程不需要图形输出,任何分辨率下都能正常显示字符,安装完以后就是一个纯命令行系统。
安装完成后,如果你想回到图形桌面,执行:
bash复制sudo apt update
sudo apt install ubuntu-desktop
装完重启,就会进入GNOME桌面。这套流程我实测过很多次,好处是安装过程零图形依赖,坏处是下载Server版ISO多了一步,而且装完桌面版后显卡驱动还是要自己再处理一次。但对比"图形安装器永远点不到下一步"来说,这已经是极大省心了。
4.3 已有系统时用远程方式装,这条路更稳
如果你手上已经有一台能正常启动的Linux机器,或者目标机器可以通过网线连到另一台电脑,那还可以走远程安装的路子。
最实用的场景是:机器启动后自动SSH连接,你在另一台电脑上通过SSH进去操作。不过Ubuntu默认不带SSH服务端,所以需要先用最小环境启动,再手动开启SSH。流程大致是:
bash复制sudo apt update
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
然后从另一台电脑 ssh 用户名@目标IP 进去,后续的安装操作全在远程终端里执行。
这个方案对完全没接触过服务器的人可能有点门槛,但如果你正是卡在"图形安装器点不下去"又实在需要装系统的场景,远程SSH是一台不会因为屏幕太小而失败的安装通道。
5. 装上只是第一步:把显示环境调顺,避免再次卡在下一步
系统装好了,最难的关卡过了,但显示环境不调顺的话,下次进系统可能又会碰到分辨率不对、窗口溢出、按钮点不到之类的问题。装完系统后的这一轮配置,才是让整个环境彻底稳定的关键。
5.1 虚拟机装好后先装增强工具
在VMware里装完Ubuntu之后,第一件事是安装open-vm-tools:
bash复制sudo apt update
sudo apt install open-vm-tools open-vm-tools-desktop
装完重启,虚拟机分辨率就能跟随窗口大小自动调整,之前困扰你的"窗口多大屏幕多大"的问题直接消失。VirtualBox同理:
bash复制sudo apt install virtualbox-guest-utils virtualbox-guest-dkms
这个操作很多人忽略。我见过不少人在虚拟机里装完Ubuntu,发现桌面分辨率固定在800x600,菜单栏还点不到,以为系统有问题,其实只是没装增强工具。装了之后,分辨率自动变成跟宿主窗口一致,体验完全不一样。
5.2 物理机先搞定显卡驱动和缩放
实体机上装完Ubuntu,如果分辨率上不去,大概率是显卡驱动没驱动起来。Intel和AMD的核显/独显在Ubuntu里通常自动加载开源驱动,问题不大。NVIDIA显卡是重灾区,老卡尤其明显。
先看看当前用的是不是开源驱动:
bash复制lspci | grep -i vga
如果是NVIDIA卡,而且系统里能用 sudo ubuntu-drivers autoinstall 自动装驱动,优先用这个命令:
bash复制sudo ubuntu-drivers autoinstall
sudo reboot
装好驱动后,进入 设置 -> 显示器(Displays),把分辨率和缩放比例调到位。注意:小屏幕笔记本(比如1366x768)如果默认缩放是125%,实际可用像素会变少,桌面窗口容易溢出。这种情况下把缩放改成100%,再用快捷键 Super+上箭头 把窗口最大化,界面就会舒服很多。
5.3 常见的两个显示坑:Wayland会话与xrandr调整
两个坑值得单独说。
第一个是Wayland会话。Ubuntu 22.04之后默认登录进的是GNOME Wayland会话,Wayland对窗口拖动的限制比X11严格得多——前面讲的Alt+拖动窗口在Wayland下可能失效。如果装完系统后发现窗口又出现位置问题,可以在登录界面(GDM)点齿轮图标,选择"Ubuntu on Xorg",切回X11会话。X11下各种窗口操作兼容性最好。
第二个是 xrandr 手动调整分辨率。如果你进系统后屏幕分辨率仍然不是你想要的,可以用xrandr直接设置。先列出所有显示输出:
bash复制xrandr
找到你的显示器名称,虚拟机里一般是 Virtual1,物理机一般是 eDP-1 或 HDMI-1,然后设置分辨率:
bash复制xrandr --output Virtual1 --mode 1920x1080
设置完立即生效,但重启后会还原。想永久生效,可以把这条命令写进启动脚本,或者直接写在 /etc/profile 里。实测这个命令在虚拟机里比在物理机上更常用,因为虚拟机的显示输出名称不稳定,切换VMware或VirtualBox版本后名称会变。
说回到开头那个场景。在VMware里装Ubuntu屏幕太小点不到【下一步】,我现在遇到这种问题,第一选择是直接进GRUB菜单选"Safe graphics mode",然后Tab键导航把安装流程点完。装好系统后启动,先装open-vm-tools,再重启,分辨率自动恢复,整个过程不超过二十分钟。如果你现在正卡在安装界面,别急着删ISO重下,按这套路一步步来,基本都能顺利装上。
