如何编辑我的Grub引导加载程序条目(隐藏,重命名,删除)? 最好是手动完成,而不是用程序

所以基本上我有一个漂亮的淹没Grub引导程序,旧的Linux版本,3个操作系统和memtests。 我想要的只是离开操作系统。 我需要知道如何手动完成它,我需要有人告诉我在发布新内核时我应该注意什么。 提前致谢。

使用grub-customizer: https : //launchpad.net/grub-customizer

这是一个GUI,允许您隐藏不需要的grub条目。

重新访问GRUB2的博客文章将为您提供有关如何手动编辑GRUB2配置文件的详细说明。 如果您检查系列中的其他post(通过过滤Category = GRUB),您还将找到有关删除旧内核以及新内核作为更新到达时会发生什么的信息。 post包括对许多相关网站的引用。

您应该清理不需要的内核,而不是直接编辑grub文件。

从这开始:

 dpkg -l | grep linux-image 

update-grub脚本只为它在/boot找到的所有内容创建条目,据我所知,所以通过apt-get remove删除旧的linux-image(和linux-headers)包将清理/启动并因此清理你的grub配置。

这是实现它的“正确”方式,因此在将来发布新内核时不需要特殊操作,你只需要在某些时候再次清理:)

配置GRUB v2

配置文件是/boot/grub/grub.cfg,但不应直接编辑它。 该文件由grub v2的update-grub(8)生成,基于:

/etc/grub.d/中的脚本片段

配置文件/ etc / default / grub

要配置grub“v2”,您应该编辑/ etc / default / grub,然后运行update-grub。 通过修改/etc/grub.d/中的片段来实现高级配置。

取自Debian配置 。

在终端中运行sudo update-grub ,以包含任何“遗忘”的启动选项。

如果您不喜欢命令行,可以打开终端,运行sudo nautilus并以root身份使用文件资源管理器。 ;)

然后,仍然在终端中,转到存储grub配置文件的文件夹。 通常sudo cd /boot/grub应该可以解决问题,否则通过搜索grub.cfg找到你的grub配置文件并更改文件夹。

GUI:单击DEVICES-> COMPUTER-> boot-> grub或搜索DEVICES-> COMPUTER for file。

找到文件夹并打开文件夹后,运行sudo cp grub.cfg grubOldXX.cfg ,其中XX是您选择的序列号。

GUI:复制粘贴grub.cfg

然后,运行sudo gedit grub.cfg

GUI:右键单击grub.cfg并选择EDIT

编辑出您不想要的条目,并根据需要更改引导顺序和默认引导选项(这很简单)。 每个菜单条目前面都有术语menuentry 。 从menuentry一直删除所有内容,包括第一个结束花括号}

保存您的文件并退出GEDIT。

重要提示:与grub混淆是一种极有可能导致灾难性错误的活动。 如果您的配置文件搞砸了,您的计算机可能无法启动。

永远都有一张带有Ubuntu版本的DVD(无论什么版本)。 如果遇到问题,您可以随时从DVD或其他可移动介质启动,并且由于您保存了原始(工作)版本的副本,因此重命名文件将grubOldXX.cfg重新命名为grub.cfg

根据您的grub版本,您可以使用StartUpManager应用程序来维护您的grub菜单。 其Advanced选项卡设置允许选择/取消选择Memtest / Recovery启动条目以及内核版本的数量。 使用grub2时,“ AppearanceAdvanced选项卡目前包含的条目较少,并且完全安装Grub 2时不存在Security选项卡。” (见这里 ,“Grub 2 Note”)。

在此处输入图像描述

我在我的Mac上安装Kali并使用rEfind作为grub loader.But将grub挂载到错误的/dev/sdaX ,所以最后我得到了2个grub条目,1个没有工作,导致我进行了grub救援。

在尝试所有命令删除它失败后,我转到Mac实用程序管理器删除无法正常工作的biogrub分区。 沃拉,现在只剩下可行的了。

可能需要去终端输入update-grub

使用gedit编辑位于/boot/grubgrub.cfg文件。

删除不工作的那个。 例如,有两个条目位于不同的分区/dev/sda3/dev/sda4 。 你必须从menuentry删除} (这意味着关闭)。

然后按保存并瞧。

 ### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows 7 (loader) (on /dev/sda4)' --class windows --class os $menuentry_id_option 'osprober-chain-BABCA4EEBCA4A67B' { insmod part_msdos insmod ntfs set root='hd0,msdos4' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 BABCA4EEBCA4A67B else search --no-floppy --fs-uuid --set=root BABCA4EEBCA4A67B fi chainloader +1 } menuentry 'Windows 7 (loader) (on /dev/sda3)' --class windows --class os $menuentry_id_option 'osprober-chain-BABCA4EEBCA4A67B' { insmod part_msdos insmod ntfs set root='hd0,msdos4' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 BABCA4EEBCA4A67B else search --no-floppy --fs-uuid --set=root BABCA4EEBCA4A67B fi chainloader +1 } ### END /etc/grub.d/30_os-prober ### 

我删除了/dev/sda3 ,删除后会看起来像这样

 ### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows 7 (loader) (on /dev/sda4)' --class windows --class os $menuentry_id_option 'osprober-chain-BABCA4EEBCA4A67B' { insmod part_msdos insmod ntfs set root='hd0,msdos4' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 BABCA4EEBCA4A67B else search --no-floppy --fs-uuid --set=root BABCA4EEBCA4A67B fi chainloader +1 } ### END /etc/grub.d/30_os-prober ###