Eu modifiquei o script "os-prober" do grub para permitir substituições de nomes definidos pelo usuário para entradas de menu. Primeiro, encontre o seguinte código em /etc/grub.d/30_os-prober:
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Depois desse código, adicione isto:
# 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
Em seguida, em / etc / default / grub, adicione as regras de renomeação que você deseja usar. Isso pode ir a qualquer lugar no arquivo:
# 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"
Por fim, atualize seu grub:
sudo update-grub
Se funcionar corretamente, a saída update-grub informará o que foi renomeado e o menu de inicialização também deverá ser atualizado.
Para se livrar da entrada extra do menu do Windows, eu usei o GRUB_OS_PROBER_SKIP_LIST em / etc / default / grub.