☰
Ubuntu安装界面显示不全?用nomodeset按GRUB参数轻松解决
2026/9/25 10:09:03 网站建设 项目流程

1. 安装向导超出屏幕:问题远比你想象的常见

要说折腾Linux这些年,装系统翻车最难受的不是分区时删错盘,也不是装完进不了桌面,反而是那种“一切都很正常、就差临门一脚”的憋屈。我第一次在笔记本上装Ubuntu 20.04时遇到的情况就是这个:引导U盘启动、选择Try Ubuntu或Install Ubuntu都顺利,进入安装界面后却发现——安装窗口的上半部分和下半部分都超出了屏幕边界,中间倒是能看见,可“继续”和“下一步”按钮死活找不到。

屏幕是15.6英寸1366x768的普通笔记本,按理说这种分辨率完全够用,可安装器默认把Live环境拉到了一个极端的显示模式。窗口上方的“欢迎”标题能看见一半,“选择键盘布局”的列表能看见一半,最关键的按钮区域完全在视野之外。那时候我还没有接触过Alt键拖窗的技巧,试着拖动窗口发现安装向导根本拖不动——这是GNOME环境里默认不可移动的对话框窗口,鼠标按住标题栏只能在我们能看到的那一小块区域里来回蹭,放大镜也用了,窗口缩放也试了,都是徒劳。

很多人说“Ubuntu安装界面显示不完整,八成是显卡问题”,这个结论方向是对的,但不够具体。真实情况是:Ubuntu 20.04的安装器跑在LiveCD环境里,系统内核在启动阶段没能正确识别显示器的物理分辨率,导致它以超出屏幕支持的显示参数输出了图像。这个机制在台式机、笔记本、双系统、虚拟机等几乎所有场景下都可能触发,但表现方式各不相同——有的屏幕是图标和文字极大、整个桌面被放大到屏幕上只露出四分之一,有的是画面闪烁、花屏,有的则是像我当时那样窗口超界按钮不可见。

不过先别急着崩溃,这类问题几乎都有固定解法。这篇文章我把当时踩过的坑、试过的参数、走过的弯路全部梳理一遍。核心思路就一个:在系统真正加载图形环境之前,强制它使用一套保守、兼容的显示模式,或者绕开对显卡驱动和EDID信息的依赖。只要你理解了这几条参数的作用原理,不仅能解决安装界面显示不完整,连装完系统后分辨率不对、开机花屏、双系统GRUB菜单显示异常这类相关问题也能一并处理掉。

先说好适用范围:我这边基于Ubuntu 20.04 Focal Fossa,但同样的思路对22.04、22.10基本通用,对Debian系、基于Ubuntu的衍生版也有效,只是在参数名称和默认行为上略有差别。下面我把原理、步骤、参数表格、以及装完系统后的收尾工作一起讲清楚。

2. 追根问底:LiveCD环境里分辨率为什么会失控

2.1 安装器和显卡驱动的“半身不遂”

得先搞清楚一个底层事实:Ubuntu桌面的LiveCD镜像是一个精简运行环境,它不会预装你机器的专有显卡驱动。Intel核显靠着内核自带的i915驱动还能凑合干活;AMD稍微麻烦一点但开源驱动支持也还行;NVIDIA独立显卡及部分老型号在Live环境下加载的是开源nouveau驱动,它和现代桌面环境、GDM登录管理器、Wayland/Xorg的兼容性并不完美。

分辨率失控的根源通常出在以下三个环节:

  1. 显示器EDID信息读取失败。显示器和显卡之间有一条I2C通道传EDID数据,里面写有显示器支持的分辨率清单。如果BIOS/UEFI阶段没把这个数据传透,或者内核视频子系统没能正确解析,系统就会退回一个“最保险”的模式——往往要么是1024x768@60Hz这类保守值,要么相反地极端拉到一个很高的模式,窗口UI超出显示区域。

  2. nouveau/uvesafb对高分辨率模式支持不到位。LiveCD的引导参数里如果带了splash或默认的uvesafb设置,系统会尝试在最早阶段就切换到某种分辨率。这个阶段显卡驱动的初始化还没完成,切换失败就表现为花屏、黑屏、只显示左上角四分之一画面。

  3. GNOME桌面没有正确应用缩放策略。安装向导在GNOME下以固定尺寸窗口运行,系统认为当前的显示区域是1920x1080或者更高,可实际输出却被显示器裁剪,你说这界面能完整吗?

2.2 为什么Ubuntu 20.04这个版本特别多

我自己观察到一个规律:14.04到16.04那个年代,装系统遇到这种问题概率很低,因为老安装器直接跑在Xorg上,用的分辨率模式也比较朴素。18.04之后安装器变成了GNOME上的“小窗口”应用,窗口的尺寸和当前系统检测到的framebuffer分辨率绑定,屏幕识别错误导致的“界面显示不完整”问题就开始扎堆出现。

20.04又叠加了Wayland环境下的一些尝试和GDM显示管理器的分辨率协商逻辑,所以这类问题的搜索量大增。另外一个高频场景是双系统用户:Windows下显示一切正常,进Ubuntu安装界面突然画布截断,很多人的第一反应是屏幕硬件坏了,其实是BIOS设置里CSM(兼容性支持模块)和UEFI分辨率的传递出现了断层,导致GRUB和安装器拿不到显示器的真实能力。

2.3 关键参数:nomodeset及它的兄弟姐妹

Linux内核在启动时支持一个通用参数叫nomodeset,作用简单粗暴:禁止显卡驱动在启动早期做模式设置(mode-setting),把显示输出的控制权保留给BIOS/UEFI或内核最基本的framebuffer机制。

打个比方:正常流程是显卡驱动接管显示器后,自己决定“我给你输出1920x1080”;加了nomodeset之后,驱动乖乖退一边,系统用最保守的方式维持一个显示器肯定能接受的画面。

与nomodeset搭配出现的还有几个参数,具体适用场景我整理成了表格,后面操作步骤里你会用到。

参数名作用适用场景
nomodeset禁止内核显卡驱动做模式设置,使用BIOS/EFI提供的显示模式安装界面超界、花屏、Windows下正常但进Ubuntu花屏
vga=795强制VGA文本/图形模式,795对应1024x768x16bit老机器、老显示器、分辨率模式协商彻底失败时
video=1366x768直接指定输出分辨率知道自家显示器物理分辨率,想一步到位时
nouveau.noaccel=1禁用nouveau的硬件加速,但保留KMS模式设置NVIDIA显卡在Live环境下渲染异常但想保留图形加速能力时
acpi_osi=Linux让ACPI对Linux更友好,解决部分笔记本亮度/分辨率异常某些品牌笔记本双系统场景
gfxpayload=keep让GRUB图形模式一直保持下去,不重新切换双系统GRUB菜单和Ubuntu启动画面分辨率跳变问题

记住这些参数的定位:nomodeset是最核心、最普适的;vga和video是用特殊分辨率硬顶;nouveau.noaccel是精细化组合;acpi_osi是冷战型修补。实操中我大多数情况下只加nomodeset就解决了,只有少数机器需要组合牌。

3. 五分钟解决安装界面显示不全:改GRUB参数进入安全图形模式

3.1 完整操作步骤

在U盘启动、看到GRUB菜单(就是那个选“Try Ubuntu”和“Install Ubuntu”的紫色界面)时,按下键盘的e键进入编辑模式。这一步不是进入系统后再改配置,而是临时修改本次启动的内核引导参数,不写盘、不改文件、退出重启即恢复原样,可以放心操作。

进入编辑界面后,你会看到类似下面这样的文本:

load_video set gfxpayload=keep linux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash --- initrd /casper/initrd

用方向键把光标移到linux开头的那一行,找到quiet splash这两个关键词,在它们后面、---之前,输入一个空格,然后键入nomodeset。修改完这一行后,按Ctrl+X(部分机器是F10)启动。

如果你用的U盘是Legacy BIOS引导的,编辑方式和上面完全一致;如果是UEFI引导,也完全一致。改动生效后,系统会以“不做显卡模式设置”的状态启动Live环境,这时再看安装向导——窗口大概率乖乖回到屏幕中央,“继续”按钮也能看见了。

提示:加了nomodeset进入Live环境后,桌面可能会以较低分辨率显示,画面可能变大或略发虚,这是正常现象。安装向导的窗口显示完整才是我们要的结果,其它的等装完系统后再调整。

3.2 如果加完nomodeset还是显示不全怎么办

第一板斧无效的时候别慌,按优先级试下面几个组合。

  • 组合A:quiet splash nomodeset vga=795。这个组合专门对付老显示器或应急启动。vga=795会把显示模式强制到1024x768x16bit,画面可能偏大,但安装器窗口至少是完整的。如果机器不支持vga参数指定的值,启动时会退回默认文本模式,依然能完成安装。

  • 组合B:quiet splash nomodeset video=1366x768。如果你明确知道显示器物理分辨率,直接告诉内核“就按这个来”。注意这个值需要和显示器EDID里实际支持的模式相符,不然内核会忽略它。不确定就先用vga=795兜底。

  • 组合C:在组合A或B的基础上加nouveau.noaccel=1。这个适用于“分辨率没问题但画面渲染断裂、花屏、拖影”的情况。它保留了KMS,只是禁用了nouveau的加速,对安装流程来说稳定性高了很多。

三个组合我都实机验证过。我那台1366x768的老笔记本最稳定的是组合A,画面虽然大了一圈但窗口居中完整。另一台外接4K显示器的台式机则是组合B直接一步到位。

3.3 安装完成后的临时阶段:别急着重启去调分辨率

这里有个坑很多人会踩:成功装上系统、重启拔掉U盘进入安装好的Ubuntu,然后发现分辨率又不对了——面板和桌面图标巨大,或者窗口还是溢出。放心,这是预期内的,因为格盘安装后系统也不会自动装NVIDIA专有驱动,某些机器还在用nouveau倔强地工作。

所以装完系统进入桌面后,先别急着用sudo reboot去折腾。你要做的是重新进一次Live环境(或者直接在已装系统里做),把下面第4节的驱动步骤做完,或者至少在安装系统的第一次开机里,同样按e给GRUB临时加nomodeset参数进入桌面。不然很容易出现“辛苦装完系统,结果第一次启动就花屏黑屏”的挫败场景。

4. 装完系统之后:分辨率还是低、花屏或黑屏怎么办

4.1 从“能进桌面但分辨率低”说起

安装阶段的nomodeset参数只对本次启动有效。你重启后如果什么都不做,系统会用nouveau或核显的默认策略初始化显示,大概率能进桌面,但分辨率可能仍然不是最优值。真正要做的是装正确的显卡驱动,让系统彻底掌握屏幕的能力。

这里分几种情况:

Intel核显:开箱即用,一般不需要额外装驱动。如果分辨率不对,先检查显示器的EDID识别,更新内核或修改GRUB里的video=参数。

AMD显卡:开源驱动amdgpu已经内置在Ubuntu内核里,不用额外操作。老显卡用radeon,也是内置的。如果花屏,同样可以用nomodeset应急,但长期用还是建议装官方驱动(针对专业卡)。

NVIDIA显卡:这是大头,也是大多数人卡住的环节。

4.2 图形界面方式安装NVIDIA驱动

先打开“软件和更新”(Software & Updates),切换到Additional Drivers(附加驱动)标签。系统会自动扫描硬件环境,列出可用于当前显卡的驱动版本——通常有两个选项:一个是“Using NVIDIA driver metapackage”带具体版本号,另一个是“Using X.Org X server - Nouveau display driver”。选择版本号较高的NVIDIA专有驱动,点击“Apply Changes”,等它下载编译完成,重启。

这个方式的优点是安全可靠,缺点是对Linux不熟的人经常找不到“软件和更新”入口。在GNOME界面下,直接在活动搜索里打“software”就能找到它。

4.3 命令行方式:一条命令检测、一条命令安装

如果你偏好终端,Ubuntu 20.04里最省事的流程是:

# 先查看系统推荐哪一版驱动 sudo ubuntu-drivers devices

输出结果里每块显卡会有一行driver字段,例如nvidia-driver-535 - third-party non-free,后面还标注着recommended推荐标记。这时候直接执行:

# 自动安装推荐版本 sudo ubuntu-drivers autoinstall # 或者手动精确安装指定版本 sudo apt install nvidia-driver-535

安装完成后重启,然后验证:

nvidia-smi

出现显卡型号、驱动版本、显存使用量列表,就是安装成功的标志。早年间我还见过有人装完驱动后nvidia-smi提示“command not found”,如果遇到这种情况,先检查是不是没装nvidia-utils-535这个包,一般autoinstall会一并装好,手动指定版本时容易漏。

4.4 装完驱动黑屏、循环登录的应急路径

NVIDIA驱动安装翻车最典型的两个症状:开机黑屏只留个鼠标光标、登录界面输完密码又弹回登录界面。这两个问题本质不一样,但急救手段相通——都是先回到命令行。

开机时在GRUB菜单按e,在linux行末尾加nomodeset或nouveau.modeset=0,按Ctrl+X启动。能进系统后先卸载驱动:

sudo apt purge nvidia-driver-* sudo apt autoremove sudo reboot

回到nouveau状态恢复开机后,再决定是重新装驱动的另一种方式(比如通过NVIDIA官网.run安装包)还是检查是不是GRUB的quiet splash和驱动冲突。需要提醒的是:尽量不要用官网.run安装包直接装,除非你清楚自己在做什么。.run很容易覆盖系统已有的驱动管理机制,后面想卸载或回退都麻烦。

4.5 核显/N卡双显卡机器(Optimus)

笔记本Optimus双显卡场景里安装界面显示不全更常见,因为Linux的PRIME渲染接管逻辑在Live环境里更容易翻车。如果你刚装完系统、N卡驱动已经装好,但分辨率还是不对,可以确认下是否启用了NVIDIA的渲染模式:

prime-select query

如果输出是on-demand而不是nvidia,可以考虑切换:

sudo prime-select nvidia sudo reboot

当然,也有一部分机器切到NVIDIA模式后风扇狂转、耗电高,这种情况下保持on-demand模式,靠内屏核显输出,外接显示器接在独显口也能正常工作。

5. 不同硬件组合下的变种问题与对应解法

5.1 双系统GRUB菜单显示异常

很多人是在Windows旁边装Ubuntu时遇到的:安装完重启,GRUB菜单的文字巨大无比,或者GRUB菜单只有一半在屏幕内,选择系统后进入Ubuntu的启动过程又回到正常分辨率。这个和安装界面的超界不太一样,但根源有交集——GRUB的显示模式没有跟着UEFI固件走。

Ubuntu的GRUB默认配置是GRUB_GFXMODE=auto,在某些UEFI环境下auto解析的result不尽人意。手动固定成显示器支持的模式即可:

编辑/etc/default/grub:

sudo nano /etc/default/grub

找到以下两行(没有就新增):

GRUB_GFXMODE=1920x1080x32 GRUB_GFXPAYLOAD_LINUX=keep

然后更新GRUB:

sudo update-grub

GRUB_GFXMODE指定GRUB菜单本身的分辨率,GRUB_GFXPAYLOAD_LINUX=keep表示进入Linux内核后不要重新切换分辨率、保持GRUB已经协商好的模式。这两个参数配合能解决绝大多数“GRUB菜单巨大/裁剪/启动画面跳变”的问题。

5.2 虚拟机(VMware / VirtualBox)里的分辨率错乱

在虚拟机里装Ubuntu 20.04遇到“安装界面显示不完整”的概率其实也不低。VirtualBox默认只有VMSVGA显卡选项,某些版本和Ubuntu的Linux内核配合不好,会出现LiveCD桌面分辨率锁定在800x600或者窗口变形。VMware则相对好一些。

这种情况下,不要在虚拟机里加nomodeset硬凑,除非你只是想完成安装一步。更合理的方案是:先正常安装完成,然后在虚拟机设置里把显卡显存调大(默认16MB容易出问题,调到128MB以上),再装对应增强工具——VirtualBox装Guest Additions,VMware装open-vm-tools:

# VMware Workstation/Player 推荐直接装这个 sudo apt install open-vm-tools open-vm-tools-desktop # VirtualBox 推荐增强工具 # 先在虚拟机窗口菜单插入Guest Additions镜像,再执行 sudo /media/cdrom/VBoxLinuxAdditions.run

这两个工具里包含了VMware/VirtualBox显卡驱动和显示分辨率协商逻辑,装上后分辨率自动就能跟随窗口大小了。

5.3 尺寸比较特别的显示器(老4:3比例、超宽屏、带鱼屏)

我帮同事处理过一台戴尔老款P系列19英寸4:3的机器,屏幕分辨率最高只能到1280x1024。Ubuntu 20.04安装界面跑到1980x1080去抢画面,窗口超界到连关闭按钮都看不见。这种场景下vga=795很有用。

超宽屏(带鱼屏、21:9)则又是另一类问题:安装器窗口在系统看来应该能塞下整个屏幕,可实际渲染时左右两侧的UI元素会被裁切,因为你选的分辨率太高,显示器该有的缩放没做。这类机器建议安装阶段直接加video=2560x1080(根据显示器实际物理分辨率调整),装完驱动后再恢复默认。

5.4 嵌入式主板和MiniPC(RK3588、NUC类)

热词里还看到有人在RK3588开发板上折腾Ubuntu 20.04,这个群体的“安装界面显示不完整”问题成因更杂——很多是HDMI输出接到了显示器的特殊输入口上,导致EDID通道不通;或者开发板本身的uboot没有正确传递edid给内核。解决方法通常不是加nomodeset,而是给显示器的接口切换成另一个HDMI口试试、确认开发板的设备树里有没有包含对应显示接口的edid支持,或者用video=参数强行指定:

video=1920x1080@60

我个人不推荐在嵌入式环境里绕nomodeset多绕太久,先确认板子引导阶段能否正常显示才是关键。毕竟安装界面都溢出了,大概率是开发板固件的显示配置问题。

6. 一些实操中的通用心得与排查优先级

遇到“Ubuntu安装界面显示不完整”这类问题,我自己的排查顺序已经固定下来了,分享给大家参考:

  1. 先加nomodeset,什么都不用改,先验证这个参数是否让窗口回到屏幕内。这能快速把问题定位到显卡模式设置环节,而不是显示器硬件或接口。
  2. 确认UEFI还是Legacy启动。UEFI下分辨率协商链路不同,很多奇葩现象在Legacy下反而不出现。如果是新装的机器,优先确保磁盘分区表是GPT,启动模式是UEFI。
  3. 换一个显示输出口试,尤其是笔记本外接显示器、台式机多屏环境。有时候是某个HDMI口/转接头/线材的EDID通讯有问题,导致系统拿不到正确的显示器参数。
  4. 能安装成功才是第一大目标,安装完成后进入系统再去精细化调驱动。不要在安装界面花太多时间做完美显示。
  5. 如果频繁折腾某个参数关机重开,先检查启动U盘有没有损坏。有几次我以为是分辨率参数问题,结果其实是U盘扇区坏了,引导加载到一半就崩。

另外多说一句,Ubuntu 20.04如果装的是服务器版(text-based installer),根本没这回事;桌面版的安装器才会被分辨率问题折腾。所以生产环境直接选服务器版镜像,再装桌面组件,也是一种绕开问题的手段:

sudo apt install ubuntu-desktop

这个方案适合那些不需要官方桌面安装向导的进阶用户。当然,日常尝鲜还是直接用桌面镜像省事,遇到问题按上面的参数顺序来就是了。

7. 写在安装折腾之后的一点体会

最后说点个人经验层面的东西。其实分辨率问题本质上是“系统还没完全掌控硬件之前的那一段真空期”,显卡驱动没加载好、EDID信息没传对、GRUB和UEFI之间协商不顺利,都会导致显示异常。而nomodeset、vga=、video=这些参数就像是提前告诉内核:别逞强,先把画面稳定输出,后面交给驱动慢慢来。

我还记得当时用nomodeset参数成功进入安装界面时的那种如释重负——窗口完整了、按钮看到了,剩下的安装流程一路顺畅。后来给好几台不同型号的笔记本、台式机装20.04,几乎都是同一个套路解决的,区别仅仅是参数组合不同而已。

如果你正在装系统时碰到窗口超界、按钮找不到,不用怀疑自己的硬件坏了,也别急着重刷BIOS,先在GRUB菜单里加上nomodeset试一次。这个参数是我玩Ubuntu这些年碰到显示问题时的第一默认方案,成功率高得惊人。

如果这篇文章的过程参数能帮你把系统装上、界面完整地显示出来,那就值了。后续如果遇到装完系统后的驱动问题,也欢迎带着你的显卡型号、主板型号来交流。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询