内核参数 - Arch Linux 中文维基
主页
维基
ArchWiki
论坛
AUR
[archlinuxcn] 仓库
下载
跳转到内容
为避免本站因各种原因无法访问,建议用户安装
arch-wiki-docs-zh-cn
CNRepo
或者
arch-wiki-docs-zh-tw
CNRepo
离线文档包备用,也可尝试使用经由Cloudflare CDN的替代版本
aw.lilydjwg.me
来自 Arch Linux 中文维基
翻译状态:
本文(或部分内容)译自
Kernel parameters
,最近一次同步于 2025-01-16,若英文版本有所
更改
,则您可以帮助同步与
翻译
更改的内容。
您可以在
ArchWiki 的对应页面
找到本文翻译的
原始
修订历史。
本文可能与英文原文存在出入。
相关文章
Kernel
共有三种办法向内核传递参数以控制其行为:
在编译内核时:在内核的
config
文件中。详见
内核#编译
在内核启动时:通过命令行参数(通常通过启动管理器设置,或在
统一内核镜像
中设置)。
在运行时:通过
/proc/sys/
(参见
sysctl
)和
/sys/
中的文件。
提示:
可加载模块的选项可通过
/etc/modprobe.d/
中的
.conf
文件设置。参见
内核模块#使用_/etc/modprobe.d/中的文件
不同的方式有不同的命令名称、是否可见以及设置方式。本文仅说明第二种方式(内核命令行),并记录适用 Arch linux 内核的常用参数。
大部分参数和某个子系统相关,需要在编译或加载时加入子系统,而且相关硬件需要存在。
内核命令行参数的格式为
parameter
parameter=value
,或
module.parameter=value
注意:
通过
cat /proc/cmdline
可以查看当前使用的命令行参数,验证修改是否生效。
所有内核参数均区分大小写。
启动管理器配置
编辑
编辑源代码
注意:
Arch Linux
安装镜像
UEFI
系统上使用
systemd-boot
,在
BIOS
系统上使用
Syslinux
内核参数可以在启动时临时修改,也可以永久性写到启动管理器的配置文件中,永远起作用。
下面示例:把参数
quiet
splash
加到启动管理器
GRUB
GRUB Legacy
LILO
Limine
rEFInd
Syslinux
systemd-boot
中。
GRUB
编辑
编辑源代码
在菜单出现后按
然后将它们添加至
linux
行:
linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw
quiet splash
Ctrl+x
以便用这些参数启动。
要使改变在重启后仍生效,您
可以
手动编辑
/boot/grub/grub.cfg
中的如上内容。对于初学者,建议:
编辑
/etc/default/grub
并将您的内核选项添加至
GRUB_CMDLINE_LINUX_DEFAULT
行:
GRUB_CMDLINE_LINUX_DEFAULT="
quiet splash
然后重新生成
grub.cfg
文件:
# grub-mkconfig -o /boot/grub/grub.cfg
有关配置GRUB的更多信息,请参阅
GRUB
GRUB Legacy
编辑
编辑源代码
在菜单出现后按
然后将它们添加至
kernel
行:
kernel /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw
quiet splash
以便用这些参数启动。
要使改变在重启后仍生效,编辑
/boot/grub/menu.lst
并将它们添加至
kernel
行,如上所示。
有关配置GRUB Legacy的更多信息,请参阅
GRUB Legacy
LILO
编辑
编辑源代码
将它们添加到
/etc/lilo.conf
中,使用
append
addappend
image=/boot/vmlinuz-linux
...
append="
quiet splash
有关配置LILO的更多信息,请参阅
LILO
Limine
编辑
编辑源代码
要临时添加内核参数,在启动条目选择屏幕出现时按
并修改
cmdline
行:
cmdline: root=PARTUUID=2865692b-02 zswap.enabled=0 rw rootfstype=ext4
quiet splash
要使更改永久生效,编辑位于
/boot/limine/limine.conf
的 Limine 配置文件中的
cmdline
行:
/Arch Linux ... cmdlin e: root=PARTUUID=2865692b-02 zswap.enabled=0 rw rootfstype=ext4
splash
有关配置 rEFInd 的更多信息,请参阅
rEFInd
Syslinux
编辑
编辑源代码
当出现启动选择菜单的时候,按
Tab
进入修改模式:
linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img
quiet splash
Enter
键以当前设置启动.
要将设置永久生效,编辑
/boot/syslinux/syslinux.cfg
并添加
APPEND
行:
APPEND root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw
quiet splash
更多详情请见
Syslinux
systemd-boot
编辑
编辑源代码
当启动菜单出现时 按
进入编辑界面:
initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw
quiet splash
Enter
即可按照输入的参数启动。
注意:
如果没有设置显示启动菜单, 你需要按住
Space
启动电脑来进入启动菜单 。
如果不能够从启动菜单上进行编辑,修改
/boot/loader/loader.conf
加入
editor 1
来开启编辑功能。
如果想永久加入参数,编辑
/boot/loader/entries/arch.conf
(假设你已经设置好了
EFI system partition
) 的
options
行:
options root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw
quiet splash
更多信息请参见
systemd-boot
dracut
编辑
编辑源代码
dracut
可以将内核参数嵌入 initramfs, 跳过启动加载器的配置,参考:
dracut#Kernel command line options
EFI 启动存根
编辑
编辑源代码
参阅
EFI 启动存根#Using UEFI directly
劫持 cmdline
编辑
编辑源代码
即使没有访问启动加载器的权限,也可以通过更改内核参数来启用调试(如果您有 root 权限)。这可以通过覆盖存储内核参数的
/proc/cmdline
来实现。然而,
/proc/cmdline
即使作为 root 也不可写,因此这个技巧通过使用绑定挂载来掩盖路径。
首先创建一个包含所需内核参数的文件:
/root/cmdline
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 ro console=tty1 logo.nologo debug
然后使用绑定挂载覆盖参数:
# mount -n --bind -o ro /root/cmdline /proc/cmdline
-n
选项跳过将挂载添加到
/etc/mtab
,因此即使根文件系统以只读方式挂载也能工作。您可以通过
cat /proc/cmdline
确认更改是否成功。
参数列表
编辑
编辑源代码
本表并不完整。所有选项的完整列表请参见
内核文档
参数
描述
init
运行指定的二进制文件而不是
/sbin/init
作为 init 进程。
systemd-sysvcompat
包将
/sbin/init
符号链接到
/usr/lib/systemd/systemd
以使用
systemd
。将其设置为
/bin/sh
以启动到 shell。
initrd
指定初始 ramdisk 的位置。对于 UEFI
启动管理器
EFI 启动存根
,路径必须使用反斜杠 (
) 作为路径分隔符。
cryptdevice
指定
dm-crypt
加密分区的位置以及
设备映射器
名称。
debug
启用内核调试(事件日志级别)。
lsm
设置 Linux 安全模块的初始化顺序,用于启用
AppArmor
SELinux
TOMOYO
maxcpus
SMP 内核在启动期间将启动的最大处理器数量。
mem
强制使用特定数量的内存。
netdev
网络设备参数。
nomodeset
禁用
Kernel mode setting
panic
内核崩溃后自动重启的时间。
resume
指定从
休眠
唤醒时使用的交换设备。
ro
在启动时以只读方式挂载根设备。这是
mkinitcpio
的默认值
root
根文件系统。参见
init/do_mounts.c
了解内核支持的设备名称格式。请注意,带有
udev
initramfs
支持
更多名称格式
。与
systemd#GPT 分区自动挂载
兼容的设置允许完全省略该参数,或者使用
root=gpt-auto
rootflags
根文件系统挂载选项。对于无法通过重新挂载应用的选项(例如,由
systemd-remount-fs.service(8)
应用)非常有用。例如,
XFS
根卷的
discard
选项或
Btrfs 使用子卷作为根
时的
subvol=
选项。
rw
在启动时以读写方式挂载根设备。这是内核的默认值
systemd.unit
启动到指定的
目标
video
覆盖帧缓冲视频默认值。
如果内核命令行上未明确设置
ro
rw
,内核将使用
rw
(参见
bootparam(7) § General non-device-specific boot arguments
)。然而,
mkinitcpio
使用
ro
作为默认值,覆盖内核的默认值(参见
mkinitcpio(8) § EARLY INIT ENVIRONMENT
)。启动加载器也可能有自己的配置默认值,例如,
grub-mkconfig
使用
rw
(参见
FS#36275
作为参考)。
注意:
当使用 mkinitcpio 的
fsck 钩子
(参见
[1]
)或
使用 F2FS 作为根文件系统
时,需要
rw
参见
编辑
编辑源代码
kernel-command-line(7)
省电相关内核参数
内核启动命令行参数参考
——
Linux Kernel in a Nutshell
的第 9 章,作者
Greg Kroah-Hartman
检索自“
分类
:​
内核
内核参数
添加话题