如何永久添加命令到 grub2

如何永久添加命令到 grub2

我有一个相当特殊的设置,在 MacBook 笔记本电脑上使用 Linux。

要关闭其中的辅助显卡,我需要将这些行添加到我的 grub 中

outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0

我通过按“e”键选择我选择的 grub 菜单选项并逐行添加行来完成此操作。然后最终启动。但正如我们所知,这不是永久的。

我真的不知道需要将它添加到哪里,以便 grub 始终将它附加到我的 Linux 启动选项中。

它似乎不属于 /etc/default/grub,因为在这里我可以向内核启动行添加内容

老实说,我害怕在我的计算机上摆弄太多的 grub,因为让它三重启动 Linux/Mac/Windows 是一件非常微妙且需要时间的事情。

有人知道应该把它添加到哪里吗?

答案1

如果将此代码添加到 /boot/grub/custom.cfg(如果文件不存在则创建该文件)那么它将在显示 grub 菜单之前执行。

我不知道这些 outb 命令到底在做什么,所以我不知道运行它们是否安全,或者运行它们是否会干扰 grub 菜单的显示,所以请您自行承担风险。

答案2

老实说,为了防止更新grub破坏您的系统,/boot/grub/custom.cfg我强烈建议您在GRUB提示时点击e编辑默认启动菜单:

如果一切顺利,通常需要改变线路,在我的例子中MBP 8 2

A。启动 USB 驱动器 -

linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---

linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper radeon.modeset=0 i915.modeset=1 i915.lvds_use_channel_mode=2 i915.lvds_use_ssc=0 ---

B.Ubuntu 应该启动并显示正常的图形屏幕。

安装完成后,重复 A从上面。

C 从刚刚安装了 Ubuntu 的硬盘启动后,从实时 USB戳,

  1. 编辑sudo vi /etc/grub.d/00_header
    • 并插入: outb 0x728 1 outb 0x710 2 outb 0x740 2 outb 0x750 0

在该行后面,搜索gfx,内容为:set gfxmode=${GRUB_GFXMODE}。代码片段摘录如下:

set gfxmode=${GRUB_GFXMODE} load_video insmod gfxterm

这个过程之后/etc/grub.d/00_header看起来应该是这样的: set gfxmode=${GRUB_GFXMODE} outb 0x728 1 outb 0x710 2 outb 0x740 2 outb 0x750 0 load_video insmod gfxterm

  1. 问题update-grub

这样,下次您运行时sudo apt update && sudo apt upgrade碰巧有grub升级,您的安装就不会搞砸了。

干杯,里瓦诺夫

相关内容