Linux内核启动参数详解

yizhihongxing

Linux内核启动参数详解

作为Linux操作系统最为基础的核心,内核启动参数是我们深入系统了解与优化的必要途径。本篇文章将对Linux内核启动参数进行详细分析,力图让读者对内核启动参数有更全面的了解。

什么是内核启动参数

内核启动参数是在Linux操作系统启动时由bootloader(例如Grub)传递给内核的一组参数。这些参数用于控制内核启动过程中的各种功能和行为,包括:

  • 控制硬件的检测和初始化;
  • 控制文件系统的加载;
  • 控制内核日志输出等。

内核启动参数的配置

在Grub中,可以通过编辑/boot/grub/grub.cfg文件来修改内核启动参数。一般我们会在文件的kernel行中添加参数,例如:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        savedefault
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  8af9f18f-a7d3-4e56-912c-3a7c1dca9765
        else
          search --no-floppy --fs-uuid --set=root 8af9f18f-a7d3-4e56-912c-3a7c1dca9765
        fi
        linux   /boot/vmlinuz-4.15.0-22-generic root=UUID=8af9f18f-a7d3-4e56-912c-3a7c1dca9765 ro  quiet splash acpi_enforce_resources=lax
        initrd  /boot/initrd.img-4.15.0-22-generic
}

在上面的示例中,在linux行中我们添加了参数acpi_enforce_resources=lax,该参数的作用是让内核在检测硬件资源的时候更加宽容一些。

常用的内核启动参数

下面列出了常用的内核启动参数及其对应的功能:

  • root=:指定root文件系统的位置;
  • ro/rw:指定root文件系统的挂载方式(只读/读写);
  • init=:指定init(进程1)的位置;
  • quiet/silent:禁用内核启动信息输出;
  • splash:显示启动画面;
  • single:以单用户模式启动;
  • debug:启用内核调试信息输出;
  • noapic:禁用APIC(可编程中断控制器);
  • acpi:启用或禁用ACPI(高级配置与电源接口)。

示例

指定启动时默认的运行级别

可以通过在命令行中添加runlevel参数,来指定系统运行的默认级别。例如下面的命令将Linux系统的默认运行级别设置为3:

# kernel /boot/vmlinuz-3.2.0-4-686-pae root=/dev/hda1 ro runlevel=3

禁用ACPI

在一些老旧的电脑或硬件上,启用ACPI可能会出现一些问题,此时可以通过在命令行中添加acpi=off参数来禁用ACPI。例如下面的命令将禁用ACPI并以单用户模式启动系统:

# kernel /boot/vmlinuz-3.2.0-4-686-pae root=/dev/hda1 ro single acpi=off

结论

本文介绍了Linux内核启动参数的基本概念、配置方法和常用参数。了解和掌握这些参数对于优化和调试Linux系统非常重要,希望本文对读者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux内核启动参数详解 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • SQL Server把某个字段的数据用一条语句转换成字符串

    要将某字段的数据用 SQL Server 转换为字符串,可以用 CAST 或 CONVERT 函数来实现。具体来说,在转换时,需要指定两个参数:要转换的字段名称和转换后的数据类型。 以下是使用 CAST 函数将字段 CAST 转换为字符串的示例(假设我们要将字段 Age 转换为字符串): SELECT CAST(Age AS VARCHAR(10)) AS …

    database 2023年5月21日
    00
  • MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决

    针对 MYSQL ERROR 1045 (28000): Access denied for user (using password: YES) 问题的解决,我们可以采取以下步骤: 步骤一:确认用户名和密码是否正确 首先,我们需要确认输入的用户名和密码是否正确。可以通过以下方式检查: 在终端输入命令:mysql -u [username] -p,回车之后输…

    database 2023年5月18日
    00
  • mysql命令行如何操作

    MySQL命令行是一种用于与MySQL数据库进行交互的工具。通过使用MySQL命令行,我们可以执行几乎所有的数据库管理任务,如创建、删除和修改数据库,查询数据,管理用户帐户等。 MySQL命令行操作有以下几个步骤: 连接到MySQL服务器 使用以下命令可以连接到MySQL服务器: mysql -h <hostname> -u <userna…

    database 2023年5月22日
    00
  • redis通用缓存设计(1)

    1.缓存中的key如何设计? 为了达到唯一标识的目的,key=类名+方法名+参数 即:    目标类全名+方法名(全限定名)+参数     ————>然后用MD5转换一下 //生成key public static String getKey(ProceedingJoinPoint pjp){ StringBuilder stringB…

    Redis 2023年4月11日
    00
  • 一次排查某某云上的redis读超时经历

    一次排查某某云上的redis读超时经历 服务监控系列文章 服务监控系列视频 问题背景 最近一两天线上老是偶现的redis读超时报警,我嗅到了一丝不正常的味道,但由于业务繁忙,只是暂时将超时时间从200ms调制500ms,超时情况减少了,不过还是有发生。趁业务空闲期,于是开始着手排查。 排查思路 查阅 redis 慢查询日志 redis的慢查询阀值是10ms,…

    Redis 2023年4月10日
    00
  • linux系统中mysql数据库的导入和导出

    下面是详细的 “Linux系统中MySQL数据库的导入和导出” 教程: 导出MySQL数据库 使用 mysqldump 命令进行数据库的导出。命令语法如下: mysqldump -u <username> -p<password> <database_name> > <filename>.sql 其中: …

    database 2023年5月22日
    00
  • MySQL单表查询实例详解

    当我们在使用MySQL数据库时,单表查询是最常见的一种查询操作,也是最基本的查询。本篇文章将介绍MySQL单表查询的相关知识点以及实例应用,详细讲解如何使用MySQL进行单表查询。 什么是MySQL单表查询 MySQL单表查询指的是从单个数据表中检索数据的查询操作。该操作旨在将特定列的数据从表中选择出来并进行展示,其结果集包含表中符合条件的所有数据记录。 M…

    database 2023年5月22日
    00
  • MySQL decimal unsigned更新负数转化为0

    当MySQL decimal unsigned类型字段执行UPDATE操作时,如果UPDATE语句中的字段值为负数,会被强制转化为0。这是因为decimal unsigned类型规定了该类型的取值范围为正数。如果UPDATE语句赋值为负数,则会被截断为0。 以下是两条示例说明: 创建一个decimal unsigned类型字段的表 CREATE TABLE …

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部