在我的研究中,有两种方法可以做到这一点:
Hack10_linux脚本/etc/grub.d/并插入文本引导菜单项的生成代码
好处:
缺点:
使用指定脚本添加自定义 grub menuentry /etc/grub.d
好处:
缺点:
在这短短的一步中,我将继续,method #2因为它在这里最容易解释,我们将仅为您使用的最新内核映像创建文本引导菜单项。
您需要的第一件事是已经为最新内核生成的菜单项。我们将复制并使用它作为我们自定义菜单项的基础,并稍作改动。为此,您需要查看您的/boot/grub/grub.cfg文件。找到指向 Ubuntu 上最新内核的第一个 menuentry 节。如果您使用其他 Linux 发行版进行双重引导,请格外注意,以免将其与他们的菜单项混淆。
找到后,复制整个 menuentry 节并将其粘贴到/etc/grub.d/40_custom文件中。它可能看起来像下面的一个。让我们以此为例:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a4e6d610-122e-42e2-8497-39eae02816e8' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 a4e6d610-122e-42e2-8497-39eae02816e8
else
search --no-floppy --fs-uuid --set=root a4e6d610-122e-42e2-8497-39eae02816e8
fi
linux /boot/vmlinuz-3.8.0-31-generic root=UUID=a4e6d610-122e-42e2-8497-39eae02816e8 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.8.0-31-generic
}
Run Code Online (Sandbox Code Playgroud)
现在,在保存文件之前,您需要在此节中编辑以下几项内容:
menuentry一行更改为“Ubuntu(文本模式)”linux。
在行尾替换/boot/vmlinuz-3.8.0-31-generic为/vmlinuzgrub 引导参数linux。替换quiet splash为textinitrd。替换/boot/initrd.img-3.8.0-31-generic为/initrd.img我们在vmlinuz和initrd行中进行替换的原因是利用放置在 / 中的符号链接,它指向/bootdir 中的最新版本,以便我们的自定义菜单项可以始终指向最新的内核,并且在以下情况下不需要更改引入了一个新内核。
就是这样。执行sudo update-grub以生成自定义菜单,您就完成了。
| 归档时间: |
|
| 查看次数: |
18696 次 |
| 最近记录: |