nomodeset, quiet和splash内核参数是什么意思?

内核命令行参数(也被称为启动选项)是什么意思?
当你进入Ubuntu(或者更准确地说,GRUB)选项时,你会看到像"nomodeset"、"quiet"和"splash"这样的内容。这些选项代表什么意思?
我还对其他参数感兴趣,并且希望能够看到任何内核参数的描述(比如"acpi"),但这并非必要。

3有成千上万个选项,你可以配置init、init-options、vga、systemd、dkms、modules等等等等与etc.相关的选项。 - Braiam
3请就用户投票关闭此问题过于宽泛一事不再辩驳,避免在问题中加入解释为何问题本身并非过于宽泛。正如您所见,许多用户发现该问题有趣并对其进行了投票,因此请勿以无关(与问题本身无关)的言谈毁坏这个问题。相反,请明确地表明您只想了解这三个选项,这样人们就不会再次投票关闭它了。 - kos
2为什么这个问题又被重新打开了? - Braiam
2@Braiam 现在不再是宽泛的了。我已经做了一个注释(以避免过长的问题)! - Star OS
2@StarOS,你没有做到不太宽泛:这个问题太宽泛了,因为你没有明确告诉我们你想要了解哪个具体的参数,而是让回答者们替你决定。David Foersters分享的列表已经提供了足够多的字符,可以得到大约300个答案,考虑到字符限制。为了让你的问题不太宽泛,你应该将其缩小范围 - Braiam
2@Braiam 好的,现在我确实让它不再模糊了。 - Star OS
@Braiam 我明白你的观点,这个问题有很多潜在答案,但我认为这个问题很有趣,希望它能保留下来。问题在于措辞,请看一下我的编辑和反馈。starOS,请给出你的意见,我试图提问时不排除Eduardo Cola的其他列表答案,但我对此并不确定。 - Mark Kirby
1内核参数列表的当前位置为https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt。 - Walter K
内核文档的更多信息请参阅HTML版本 - Pablo Bianchi
6个回答

这个问题中,关于nomodeset
最新的内核将视频模式设置移到了内核中。因此,在X服务器启动时,所有与硬件特定时钟频率和寄存器相关的编程都在内核中进行,而不是在X驱动程序中进行。这使得可以拥有高分辨率、外观漂亮的闪屏(启动)界面,并且从闪屏到登录界面的过渡没有闪烁。不幸的是,对于某些显卡来说,这种方法无法正常工作,导致出现黑屏。添加nomodeset参数指示内核在加载X之前不加载视频驱动程序,而是使用BIOS模式。
Unix & Linux上,关于quiet splash
这个“splash”(最终会出现在/boot/grub/grub.cfg中)会导致显示启动画面。
与此同时,您希望引导过程保持安静,否则各种消息会干扰该启动画面。
尽管在GRUB中指定了这些是影响内核或其模块加载的内核参数,而不是改变GRUB行为的东西。GRUB_CMDLINE_LINUX_DEFAULT中的重要部分是CMDLINE_LINUX。 这个答案涵盖了acpi、noapic和nolapic。
一般情况下,除非您的BIOS存在问题并且无法正确处理这些标准,或者它可能太旧以至于这些标准没有完全实施,否则不需要这些引导参数。
ACPI(高级配置和电源接口)是用于处理电源管理的标准。较旧的系统可能不完全支持ACPI,因此有时候给内核一个提示不使用它可能会有帮助。"acpi=off"
APIC(高级可编程中断控制器)是一种在较新系统上找到的功能。"local"版本称为"LAPIC"。该控制器可以设置为生成和处理中断,这是硬件用来传递消息的信号。同样,一些APIC的实现可能在较旧的系统上出现问题,因此禁用它是有用的。"noapic"和"nolapic"。
有时候APIC正在工作,但通过干扰传递的消息而减慢了速度。例如,这可能会影响音频和视频处理。因此,人们也可能出于这个原因禁用它。
附加参数可以在这里找到。

2不是七个选项,而是至少一百个选项。 - Pilot6
3@pilot6他的意思是这里的具体列表,我相当确定是这个链接:https://help.ubuntu.com/community/BootOptions?action=AttachFile&do=get&target=Boot-F6-Other.png 如果不是的话,我可以随时删除。 - Mark Kirby
1所以如果你使用 splash 而没有设置 quiet,它会显示启动画面然后在上面打印一大堆信息,对吗? - wjandrea
1@wjandrea 是的,相当隐藏了启动文本。 - Mark Kirby

这些是在启动时传递给内核的指令。在Ubuntu中,它们由GNU GRUB(GRand Unified Bootloader)管理。
- `quiet` - 这个选项告诉内核不要产生任何输出(也称为非详细模式)。如果你不使用这个选项启动,你会看到很多内核消息,比如驱动程序/模块的激活、文件系统的检查和错误。没有`quiet`参数可能在你需要找到错误时有用。
- `splash` - 这个选项用于在后台加载系统的核心部分时启动一个漂亮的“加载”屏幕。如果你禁用它并启用了`quiet`,你将得到一个空白屏幕。
- `nomodeset` - 告诉内核在系统启动并运行之前不要启动视频驱动程序。
还有很多其他的引导参数,比如:
  • 3 - 启动系统进入运行级别 3(默认为 5)。如果你添加这个参数,你将会进入一个命令行环境(运行级别 5 是需要图形界面的)。

  • init - 指示 "init" 脚本的位置。这个脚本是在类 Unix 系统中启动的第一个进程,负责启动所有其他进程。语法:init=/path/to/script


1在Ubuntu 16.04中使用systemd引导到运行级别3,++表示3,但请提供参考资料--我想了解更多信息。 - user1823664

这些不是“Ubuntu启动选项”,而是“内核启动选项”。
不可能在一个答案中描述所有的内核启动选项。许多内核模块都有一些选项,可以在grub中使用。
你可以轻松地找到nomodeset的含义。
其他选项也可以找到。

1只需使用一些明显的选项,好吗? - Star OS
2哪些是“明显的”?你可以缩小问题的范围,询问关于特定选项的情况。 - Pilot6
Pilot6:就使用我在问题中提到的示例,比如nomodesetquiet splash - Star OS
1在搜索框中输入"nomodeset"并按下回车键。你会感到惊讶。 - Pilot6

虽然只有一些在 grub 配置中常用/更改,但引导参数还有很多。
完整列表请参阅官方文档:内核的命令行参数

与微软Windows不同,Ubuntu提供了这些操作系统内核标志,允许最终用户调整操作系统与硬件的交互方式。在安装Ubuntu时,会运行各种脚本来探测您的硬件,以确定如何最佳配置操作系统。例如:当自动决策不足时,笔记本电脑可能会启动时出现空白屏幕,因此这些标志使最终用户能够手动进行调整,以纠正操作系统配置,以更好地匹配您的硬件。

2不,我在问像“nomodeset”和“quiet splash”这样的东西是什么意思。 - Star OS
1这些是操作系统内核配置调整,以使Ubuntu能够处理您特定的硬件。 - Scott Stensland
选项并不总是与硬件相关,比如“闪屏或静音”。 - Pilot6
@markkirby 同时错过了所提出问题的要点。 - Braiam

抱歉,但您可以检查一下,“splash”不是内核选项,就像您所看到的那样,它在内核参数列表中没有列出来。 我想这是因为“splash”和“nosplash”是由Plymuth读取的,而不是由内核本身读取的,但我对此并不确定。 还要注意,“nosplash”与仅删除“splash”选项是不同的。 对于一个只能在恢复模式下工作的英特尔集成显卡(Ubuntu 20.04)经过更新后,“nosplash”选项拯救了我的生命,而仅仅删除“splash”根本没有起作用... 很遗憾,这些参数没有文档记录...