这是一个关于如何在 kali linux 中更改 grub 背景的简单指南(实际上它是 kali linux 的 grub 启动图像)。 kali 开发团队在这方面做的不多,他们好像太忙了,所以在这篇文章中,我会对 grub 解释一二,但是不会冗长到我失去写作的激情。 那么我们开始吧……
这通常是所有人首先会遇到的一个问题,在哪里设置?有很多方法来查找 grub 设置。每个人都可能有自己的方法,但我发现 <code>update-grub</code> 是最简单的。如果在 vmware 或 virtualbox 中执行 <code>update-grub</code>,你将看到如下所示的内容:
<code>root@kali:~# update-grub</code>
<code>generating grub configuration file ...</code>
<code>found background image: /usr/share/images/desktop-base/desktop-grub.png</code>
<code>found linux image: /boot/vmlinuz-4.0.0-kali1-amd64</code>
<code>found initrd image: /boot/initrd.img-4.0.0-kali1-amd64</code>
<code>no volume groups found</code>
<code>done</code>
<code>root@kali:~#</code>
如果您是双系统,或者三系统,那么您将看到 grub 以及其他操作系统入口。然而,我们感兴趣的部分是背景图像,这是在我这里看到的(你会看到完全相同的内容):
<a target="_blank"></a>
在 grub-2.02 中,对基于 debian 的系统来说,它将按照以下顺序搜索启动背景:
<code>/etc/default/grub</code> 里的 <code>grub_background</code> 行
在 <code>/boot/grub/</code> 里找到的第一个图像(如果发现多张,将以字母顺序排序)
在 <code>/usr/share/desktop-base/grub_background.sh</code> 中指定的
在 <code>/etc/grub.d/05_debian_theme</code> 里 <code>wallpaper</code> 行列出的
现在将此信息留在这里,我们会尽快重新检查它。
在我使用 kali linux 时(因为我喜欢用它做事),会发现 kali 正在使用这里的背景图像:<code>/usr/share/images/desktop-base/desktop-grub.png</code>
为了确定,我们来检查一下这个 <code>.png</code> 文件的属性。
<code>root@kali:~# ls -l /usr/share/images/desktop-base/desktop-grub.png</code>
<code>lrwxrwxrwx 1 root root 30 oct 8 00:31 /usr/share/images/desktop-base/desktop-grub.png -> /etc/alternatives/desktop-grub</code>

change grub background in kali linux - blackmore ops -1
什么?它只是 <code>/etc/alternatives/desktop-grub</code> 的一个符号链接? 但是 <code>/etc/alternatives/desktop-grub</code> 不是图片文件。看来我也要检查一下它的属性。
<code>root@kali:~# ls -l /etc/alternatives/desktop-grub</code>
<code>lrwxrwxrwx 1 root root 44 oct 8 00:27 /etc/alternatives/desktop-grub -> /usr/share/images/desktop-base/kali-grub.png</code>
change grub background in kali linux - blackmore ops -3
好吧,真让人费解。 <code>/etc/alternatives/desktop-grub</code> 也是一个符号链接,它指向<code>/usr/share/images/desktop-base/kali-grub.png</code>,来自最初同样的文件夹。呃! 无语。 但是现在我们至少可以替换该文件并将其解决。
在替换之前,我们需要检查 <code>/usr/share/images/desktop-base/kali-grub.png</code> 的属性,以确保下载相同类型和大小的文件。
<code>root@kali:~# file /usr/share/images/desktop-base/kali-grub.png</code>
<code>/usr/share/images/desktop-base/kali-grub.png: png image data, 640 x 480, 8-bit/color rgb, non-interlaced</code>
可以确定这是一个 png 图像文件,像素尺寸为 640 x 480。
可以使用 <code>png</code>, <code>jpg</code>/<code>jpeg</code> 以及 <code>tga</code> 类型的图像文件作为 grub 2 的背景。必须符合以下规范:
<code>jpg</code>/<code>jpeg</code> 图像必须是 <code>8-bit</code> (256 色)
图像应该是非索引的,<code>rgb</code>
默认情况下,如果安装了 <code>desktop-base</code> 软件包,符合上述规范的图像将放在 <code>/usr/share/images/desktop-base/</code> 目录中。在谷歌上很容易找到类似的文件。我也找了一个。
<code>root@kali:~# file downloads/wallpaper-1.png</code>
<code>downloads/wallpaper-1.png: png image data, 640 x 480, 8-bit/color rgb, non-interlaced</code>
change grub background in kali linux - blackmore ops -6
现在我们只需简单的用新文件将 <code>/usr/share/images/desktop-base/kali-grub.png</code> 替换掉。值得注意这是最简单的方法,不需要修改 <code>grub-config</code> 文件。 如果你对 grub 很熟,建议你简单的修改 grub 的默认配置文件,然后执行 <code>update-grub</code>。
像往常一样,我会将原文件重命名为 <code>kali-grub.png.bkp</code> 进行备份。
<code>root@kali:~# mv /usr/share/images/desktop-base/kali-grub.png /usr/share/images/desktop-base/kali-grub.png.bkp</code>
change grub background in kali linux - blackmore ops -4
现在我们将下载的文件重命名为 <code>kali-grub.png</code>。
<code>root@kali:~# cp downloads/wallpaper-1.png /usr/share/images/desktop-base/kali-grub.png</code>
change grub background in kali linux - blackmore ops -5
最后执行命令 <code>update-grub</code>:
change grub background in kali linux - blackmore ops -7
下次重新启动你的 kali linux 时,你会看到 grub 背景变成了你自己的图像(grub 启动界面)。
下面是我现在正在使用的新 grub 启动背景。你呢?要不要试试这个办法?
change grub background in kali linux - blackmore ops -9
这是最简单最安全的办法,最糟的情况也不过是在 grub 看到一个蓝色的背景,但你依然可以登录后修复它们。现在如果你有信心,让我们尝试一个改变 grub 设置的更好的方法(有点复杂)。后续步骤更加有趣,而且可以在任何使用 grub 引导的 linux 上使用。
现在回忆一下 grub 在哪 4 个地方寻找启动背景图像?再看一遍:
在 <code>/etc/grub.d/05_debian_theme</code> 里 wallpaper 行列出的
那么我们再在 kali linux 上(或任意使用 grub2 的 linux系统)试一下新的选择。
所以你可以根据上述的查找优先级使用上述任一项,将 grub 背景图像改为自己的。以下是我自己系统上 <code>/etc/default/grub</code> 的内容。
<code>root@kali:~# vi /etc/default/grub</code>
按照 <code>grub_background="/root/world-map.jpg"</code> 的格式添加一行,其中 world-map.jpg 是你要作为 grub 背景的图像文件。
<code># if you change this file, run 'update-grub' afterwards to update</code>
<code># /boot/grub/grub.cfg.</code>
<code># for full documentation of the options in this file, see:</code>
<code>#&nbsp;&nbsp; info -f grub -n 'simple configuration'</code>
<code></code>
<code>grub_default=0</code>
<code>grub_timeout=15</code>
<code>grub_distributor=`lsb_release -i -s 2> /dev/null || echo debian`</code>
<code>grub_cmdline_linux_default="quiet"</code>
<code>grub_cmdline_linux="initrd=/install/gtk/initrd.gz"</code>
<code>grub_background="/root/world-map.jpg"</code>
一旦使用上述方式完成更改,务必执行 <code>update-grub</code> 命令,如下所示。
<code>found background: /root/world-map.jpg</code>
<code>found background image: /root/world-map.jpg</code>
<code>&nbsp; no volume groups found</code>
现在重启机器,你会在 grub 看到自定义的图像。
如果没有在 <code>/etc/default/grub</code> 文件中指定 <code>grub_background</code> 项,理论上 grub 应当使用在 <code>/boot/grub/</code> 文件夹找到的第一个图像文件作为背景。如果 grub 在 <code>/boot/grub/</code> 找到多个图像文件,它会按字母排序并使用第一个图像文件。
如果没有在 <code>/etc/default/grub</code> 文件中指定 <code>grub_background</code> 项,而且 <code>/boot/grub/</code> 目录下没有图像文件,grub 将会开始在 <code>/usr/share/desktop-base/grub_background.sh</code> 文件中指定的图像路径中搜索。kali linux 是在这里指定的。每个 linux 发行版都有自己的特色。
这是 grub 搜寻背景图像的最后一个位置。如果在其他部分都没有找到,它将会在这里查找。
原文发布时间为:2017-03-31
本文来自云栖社区合作伙伴“linux中国”