Grub 修改菜单界面 [高级]

mnm*_*mnc 5 linux grub grub2

我修改了我的 Grub 菜单。这是它现在的样子: 在此处输入图片说明

我想要的是删除有关 Grub 版本的顶级信息,甚至更好地删除所有“ GNU GRUB 版本 1.99-27.1crunchbang1 ”。

此外,最好删除有关使用箭头键在菜单内移动以及如何编辑条目的底部信息。

总结一下 - 我想去掉以红色突出显示的文本:

在此处输入图片说明

  1. 是否可以?
  2. 不修改Grub的源代码可以吗?

我必须承认我已经在网络上搜索了好几个小时如何做到这一点,但我所知道的只是如何在 grub 中进行基本修改。我会很感激任何帮助,甚至是线索旁边的提示。

Chr*_*sR. 5

您无法更改当前安装的页眉或页脚。这是因为这些函数在 Grub 的源代码中。您可以做的是从源代码编译 grub,这将使您能够访问存在这些函数的 C 文件。我将尝试提供有关如何使用来自不同 SE 的东西来做到这一点的指南。


我要提供一个警告。 在虚拟机或崩溃和烧毁环境中进行测试,以确保一切正常。这样,您就不会搞砸 Grub 安装(以防出现问题)。


1)你需要从ftp://ftp.gnu.org/gnu/grub/ 下载你想要的 Grub 风格。我建议你坚持使用 Crunchbang 使用的版本 (1.99),以防与新版本有任何冲突。您也可以通过从您的软件包来源处获取其 grub 版本的源代码来实现这一点,但这取决于您。为此,您可以执行以下操作:

mkdir ~/srccode && cd ~/srccode
sudo apt-get source grub2
Run Code Online (Sandbox Code Playgroud)

mkdir是为了帮助文件管理(即使其远离所有其他文件)。无论哪种方式,过程都会相似,但我认为后者更容易。

2)接下来,您将需要构建依赖项,并且有一个不错的小列表。您可以通过运行以下命令来安装所有这些依赖项:

sudo apt-get install build-essential bison gettext binutils flex libdevmapper-dev
python autoconf automake autogen qemu quilt
Run Code Online (Sandbox Code Playgroud)

如果使用上面的方法 2,上面的命令可以稍微缩短:

sudo apt-get install build-essential quilt
sudo apt-get build-dep grub2
Run Code Online (Sandbox Code Playgroud)

3)导出变量并设置被子:

export QUILT_PATCHES=debian/patches

export EDITOR=gedit
Run Code Online (Sandbox Code Playgroud)

4)创建补丁并编辑源

cd grub2-{version}
quilt new 99_custom-header-footer.patch
quilt edit grub-core/normal/main.c
Run Code Online (Sandbox Code Playgroud)

主文件

您要将突出显示的行更改为:

const char *msg = _(" ");
Run Code Online (Sandbox Code Playgroud)

您还需要:

quilt edit grub-core/normal/menu_text.c
Run Code Online (Sandbox Code Playgroud)

menu_text.c

并类似地更改所有突出显示的部分,以便双引号之间的所有内容都是:

(some code)..." "...(some more code)
Run Code Online (Sandbox Code Playgroud)

类似于前面的例子。

5)向您选择的神祈祷并构建 deb 包

quilt refresh
fakeroot dpkg-buildpackage
Run Code Online (Sandbox Code Playgroud)

6)献祭给你的神(我通常使用无辜者的血,但我相信一些晶体管可以)并安装你创建的包

cd ..
sudo dpkg -i grub-pc*.deb grub2-common*.deb
Run Code Online (Sandbox Code Playgroud)

7)考虑交出你的长子并重新启动你的机器。如果一切顺利,您应该会获得所需的更改。我只做过几次这样的 grub 编辑(极少数),但是这个过程(以及我提供的原始链接)与我完成它的方式相似。