AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 648468
Accepted
pehrs
pehrs
Asked: 2014-12-03 02:35:53 +0800 CST2014-12-03 02:35:53 +0800 CST 2014-12-03 02:35:53 +0800 CST

在 Ubuntu 中修改内核命令行

  • 772

我有许多系统需要修改内核命令行,添加一些选项。

目前,我使用以下程序进行操作:

  1. 打开 /etc/default/grub
  2. 修改 GRUB_CMDLINE_LINUX_DEFAULT,添加选项
  3. 运行更新-grub
  4. 重启

但是,我更愿意将此过程自动化作为数据包安装的一部分,并避免修改默认文件(因为这通常很脆弱)。

我想做的是:

  1. 删除文件(在 /etc/grub.d/? 中),覆盖 GRUB_CMDLINE_LINUX_DEFAULT 或类似文件
  2. 运行 update-grub 并重新启动

/etc/grub.d/* 中有一堆脚本用于构建实际的菜单配置,但是,没有明显的方式与它们交互。生成配置的脚本似乎只读取 /etc/default/grub :(

如果有办法删除文件来修改默认内核命令行,有人可以启发我吗?

ubuntu
  • 3 3 个回答
  • 3401 Views

3 个回答

  • Voted
  1. Best Answer
    Jeff Snider
    2014-12-15T15:56:15+08:002014-12-15T15:56:15+08:00
    1. 如果目录/etc/default/grub.d不存在,则创建它。
    2. 创建一个文件/etc/default/grub.d/myextraoption.cfg添加到您想要的变量(仅附加到它,并带有额外的空间。您要小心不要破坏或破坏那里的任何现有数据。):

      GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT} extra-option"
      
    3. 运行update-grub。

    你应该能够安全地在你的包中包含一个yourpackage.cfg文件,而不会有被覆盖或破坏其他东西的风险。这些.cfg文件中的任何一个都包含在主要默认文件之后,因此请注意这一点并做出相应的计划。

    您几乎肯定还需要一个 postinst 脚本在安装包时运行 update-grub,并且为了安全起见,因为它位于/etc中,您可能还应该将它包含在包的conffiles中。我认为除非完成包装的清洗,否则这将留下它,因此经销商在这方面的选择。

    作为参考,第 157 行或附近的 /usr/sbin/grub-mkconfig 是读取默认文件的内容,包括与/etc/default/grub.d/*.cfg匹配的任何内容。在我看来,这种情况正是它这样做的原因。

    我是根据 Trusty 写的。我不知道这在多远的版本中仍然适用。我刚刚检查了 Lucid,但它不存在。它在 Precise 中。

    • 6
  2. ch2500
    2014-12-11T13:08:35+08:002014-12-11T13:08:35+08:00

    除了 /etc/default/grub 之外,grub 2.02 似乎还匹配 /etc/default/grub.d/*.cfg 的源文件。

    也许这也适用于您的 Ubuntu 的任何版本。

    • 0
  3. BE77Y
    2014-12-12T04:33:16+08:002014-12-12T04:33:16+08:00

    根据grub 文档/etc/grub.d/40_custom,您可能会发现使用 ; 编辑文件很有用grub-mkconfig。

    /etc/grub.d/40_custom 对于添加整个自定义菜单条目特别有用;只需在该文件末尾键入要添加的菜单条目,确保至少前两行保持不变。

    也许您可以获取第一个条目并将其复制到该配置的末尾,然后附加您想要的选项?这应该是面向未来的,因为它基本上保留了现有配置并将您的自定义配置附加为补充菜单选项。


    编辑:我意识到您要求将其作为默认行,但以上是使用潜在破坏性较小的方法对编辑进行的折衷(并且在任何情况下,您都可以选择用于grub-mkconfig执行更大胆的任务,例如更改默认)

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve