何为 grub 背景( splash )?
grub 背景( splash )只不过是一张图像,在 linux 系统启动的时候显示为背景。你可能知道 grub (grand unified bootloader 的简写) 是主流 linux 发行版中广泛使用的启动装载程序bootloader。以 redhat 为例,你会发现它在系统启动之时显示为空白或者是一个黑色背景。
grub 背景( splash )的相关定义在 <code>grub.conf</code> 文件中,并且 splash 背景图像应该存储在 <code>/boot</code> 分区中。如果你觉得默认的空白屏相当无趣,同时又想按照自己的意愿来修改它,那么赶紧阅读下方的每个步骤吧。
<a target="_blank"></a>
imagemagick (仅在命令行中使用) 或者 gimp (gui 中使用)
一个样例图像
首先然我们来使用 gui 来进行操作吧,这里我们使用 gimp 来作为图像编辑器。
步骤 1、 使用 gimp 打开图像 (路径为:应用applications --> 图像graphics -->gimp 程序gnu image manipulation program)
步骤 2、 现在我们需要按实际情况将图像缩放到 640x480 大小。为此,需要点击 图像image --> 缩放图像scale image。记住,要如下图参数进行设置。修改宽度为 640,高度为 480。其他保持不变。

缩放 image
点击 缩放scale按钮
步骤 3、 然后,我们需要索引图像,让它仅使用 14 色。为此,点击 图像image --> 模式mode --> 索引indexed。点选 生成最优调色板generate optimum palette 选项,并设置颜色最大值maximum number of colors 为 14 (如下)。
最优调色板限制为 14 色
点击 转换convert按钮
步骤 4、 保存文件。这里以文件名为 “uxtechno.xpm” 来保存。
保存图像文件
步骤 5、 以 zip 方式压缩文件。为此,转到文件的保存位置 --> 右击并选择压缩compress 选项,选择 gzip 方法来压缩。
步骤 6、 现在复制或移动 "uxtechno.xpm.gz" 到 <code>/boot/grub/uxtechno.xpm.gz</code>。
步骤 7、 这一步,打开 <code>/boot/grub/grub.conf</code> 文件编辑 <code>splashimage</code> 参数如下,并保存文件。
最后,文件的内容应该是像这样的:
<code># grub.conf</code>
<code>generated by anaconda</code>
<code>#</code>
<code># note that you do not have to rerun grub after making changes to this file</code>
<code># notice: you have a /boot partition. this means</code>
<code>that # all kernel and initrd paths are relative to /boot/, eg. # root</code>
<code>(hd0,0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd</code>
<code>/initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5</code>
<code>splashimage=(hd0,0)/grub/uxtechno.xpm.gz</code>
<code>hiddenmenu</code>
<code>title red hat enterprise linux (2.6.32-220.el6.x86_64)</code>
<code>root (hd0,0)</code>
<code>kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=uuid=1d8c5075-1a5b-4fdc-ba15-0458b65c6012 rd_no_luks rd_no_lvm lang=en_us.utf-8 rd_no_md quiet sysfont=latarcyrheb-sun16 rhgb</code>
<code>crashkernel=auto keyboardtype=pc keytable=us rd_no_dm initrd</code>
<code>/initramfs-2.6.32-220.el6.x86_64.img</code>
当你重启服务器之后,你讲看到如下效果的 splash 背景图像:
如果说你是命令行的超级粉丝,那就使用如下方法吧。
步骤 1、 开始之前,我们需要修改图像的像素分辨率。为此,我们还需要在 linux 系统上安装好 imagemagick。在 centos / rhel 上使用如下命令来进行交叉检查。
<code># rpm -qa|grep -i imagemagick</code>
如果命令没有返回输出 (即空白),这意味这你的系统上还没有安装 imagemagick。你必须运行下面的命令来安装它。
<code># yum install imagemagick</code>
安装好了重新复核一下,你会得到类似如下的输出:
<code></code>
<code>imagemagick-6.5.4.7-5.el6.x86_64</code>
然后,继续接下来的配置。这里我使用 uxtechno 的 logo 来做 splash 背景图像。
步骤 2、 使用如下命令来转换像素深度。
<code># convert -depth 8 -colors 14 -resize 640x480 uxtechno_logo.jpg uxtechno_logo.xpm</code>
上述选项的意义如下:
最大使用 14 色
分辨率为 640x480
使用 xpm 格式
步骤 3、 以 zip 方式压缩文件。
<code># gzip uxtechno_logo.xpm</code>
步骤 4、 复制文件到 <code>/boot</code> 分区。
<code># cp uxtechno_logo.xpm.gz /boot/grub/</code>
步骤 5、 在 <code>/boot/grub/grub.conf</code> 文件中修改 <code>splashimage</code> 参数如下,并保存文件。
<code>splashimage=(hd0,0)/grub/uxtechno_logo.xpm</code>
步骤 6、 最后,使用 <code>reboot</code> 命令重启服务器。启动界面将显示使用 gui 方式第 7 步中的图像。
原文发布时间为:2017-03-14
本文来自云栖社区合作伙伴“linux中国”