Windows 10 和 Ubuntu 14.04 的 Grub 菜单

Windows 10 和 Ubuntu 14.04 的 Grub 菜单

我已成功安装并运行 Ubuntu 14.04 和 Windows 10。但是,我无法正确显示 grub 菜单,我尝试使用启动修复多次。除了 grub,我还通过 Windows 10 进行了启动修复。

Ubuntu 根本无法在我的系统上检测到 Windows 10,但它仍然在启动菜单中列出 Windows 恢复环境(两次),如果我选择其中一个,则两个都可以正常启动到 Windows 10。

为什么有两个相同的条目执行并标准启动 Windows 10,但却说这是恢复?我怎样才能摆脱这些条目,只留下一个写着“Windows 10”的条目?

答案1

从此处复制条目:

sudo cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
gedit /boot/grub/grub.cfg

将 Windows 启动节复制到并编辑,使其仅包含您想要的条目/描述:

gksudo gedit /etc/grub.d/40_custom

然后做:

sudo update-grub

一旦手动输入有效,请关闭 os-prober,方法是将以下行添加到 /etc/default/grub 配置文件中,以使 grub 不再自动添加条目。如果您添加了另一个系统并希望它找到它,您可以再次使用 false 将其打开。

gksudo gedit /etc/default/grub

GRUB_DISABLE_OS_PROBER=true

sudo update-grub

https://help.ubuntu.com/community/MaintenanceFreeCustomGrub2Screen

答案2

我修改了 grub“os-prober”脚本,以允许用户定义菜单项的名称替换。首先,在 /etc/grub.d/30_os-prober 中找到以下代码:

if [ -z "${LONGNAME}" ] ; then
  LONGNAME="${LABEL}"
fi

在该代码之后添加以下内容:

# Begin patch
if [ "x${GRUB_OS_PROBER_RENAME_LIST}" != "x" ]; then
  for RENAME in ${GRUB_OS_PROBER_RENAME_LIST} ; do
    SRCNAME="`echo ${RENAME} | cut -d ':' -f 1 | tr '^' ' '`"
    DSTNAME="`echo ${RENAME} | cut -d ':' -f 2 | tr '^' ' '`"
    if [ "${LONGNAME}" = "${SRCNAME}" ]; then
      LONGNAME="${DSTNAME}"
      echo "Renamed '${SRCNAME}' to '${DSTNAME}' by user request." >&2
    fi
  done
fi
# End patch

然后,在 /etc/default/grub 中添加要使用的重命名规则。这可以放在文件中的任何位置:

# Rename list for OS's detected by os-prober. This is a space-separated
# list of rename mappings. A rename mapping is a colon-separated pair
# of strings, where each string has its spaces converted to ^ characters.
# The first string is the name of the OS reported by os-prober, and the
# second string is the replacement used by update-grub. This variable
# requires a change to /etc/grub.d/30_os-prober.
export GRUB_OS_PROBER_RENAME_LIST="Windows^Recovery^Environment^(loader):Windows^10"

最后,更新你的 grub:

sudo update-grub

如果它正常工作,update-grub 输出将告诉您重命名的内容,并且您的启动菜单也应该更新。

为了摆脱额外的 Windows 菜单项,我使用了GRUB_OS_PROBER_SKIP_LIST/etc/default/grub 中的功能。

答案3

这取决于您进行了哪种分区。首先运行sudo update-grub。如果这不起作用,您可以编辑文件grub.cfg以仅包含一个名为“Windows 10”或任何您想要的窗口条目,但不要删除任何 Ubuntu 条目。

sudo gedit /boot/grub/grub.cfg

小心!做任何事情之前请先阅读在线教程。

相关内容