如何删除Grub菜单中的重复条目?

在今天更新之后,Ubuntu让我替换了一些文件,我盲目地接受了。 在更新后重新启动PC后,我在grub菜单中看到了重复的条目:

在此处输入图像描述

这是grub定制器的图像。

在此处输入图像描述

显然,Grub Customizer无法保存已编辑的信息。

有没有办法从Ubuntu 12.04 grub菜单中删除重复项并在第一个位置设置Windows 7?

虽然sudo update-grub2应该删除重复的enties,但是将Windows菜单项放在第一个位置另外做:

  1. sudo gedit /boot/grub/grub.cfg
  2. 剪切从中开始的文本部分
    ### BEGIN /etc/grub.d/30_os-prober ###
    menuentry "Windows 7...

    }
    ### END /etc/grub.d/30_os-prober ###
    就在此之前它就是害虫
    menuentry 'Ubuntu, with Linux..

  3. 保存文件并重新启动。

  4. 每次grub-pc软件包更新或内核更新发生时,您必须执行步骤(1-4)以将Windows菜单项保留在第一位。

永久修复:

 sudo mv /etc/grub.d/30_os-prober /etc/grub.d/07_os-prober 

即使在更新之后,Windows也将处于领先地位

我想你已经得到了帮助。 但是为了防止新手需要一种简单的方法来改变grub菜单的顺序甚至删除(小心这里!!)条目,在linux中有一个很好的GUI方式,使用grub-customizer

转到终端并键入:

 sudo add-apt-repository ppstrong texta:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer 

然后查找新安装的grub定制器,启动它,你可以在列表中向上/向下移动windows或ubuntu。

您还可以删除旧的未使用的内核包,这有效地删除了grub条目并释放了硬盘空间。 为此,您需要检查使用以下内容安装的内核:

  sudo dpkg -l | grep linux-image 

然后你可以使用以下方法删除内核映像:

  sudo apt-get remove linux-image-version_number 

其中version_number是您要删除的内核版本。 我建议您保留至少两个内核版本,以防出现问题。

我刚刚从11.04升级到12.04 LTS。

虽然我无法在任何地方找到/etc/grub.d/的“预期”列表,但是从我可以访问的另一台计算机上看,原始的11.04条目是:

 $ ls /etc/grub.d/ 00_header 10_linux 20_memtest86+ 40_custom README 05_debian_theme 20_linux_xen 30_os-prober 41_custom 

在更新的PC上,更新后,我有:

 $ ls /etc/grub.d/ 00_header 10_os-prober 30_memtest86+ 40_custom 05_debian_theme 20_linux 30_os-prober 41_custom 10_linux 20_linux_xen 30_uefi-firmware README 

显然,我在那里得到了一些重复的条目 – 所以甚至没有运行sudo update-grub2因为@Samik建议在这种情况下不会删除重复的条目。

这种情况的答案显然是删除重复的_os-prober_linux条目, 然后运行sudo update-grub2