У меня Ubuntu 14.04 и Windows 10 успешно установлены и работают. Однако я не могу заставить меню grub отображаться корректно, и я несколько раз пытался использовать восстановление загрузчика. Я сделал восстановление загрузки через Windows 10 в дополнение к grub.
Ubuntu не обнаруживает Windows 10 в моей системе, хотя все еще перечисляет среду восстановления Windows (дважды) в меню загрузки, и если я выберу одно из них, оба загружаются в Windows 10 просто отлично.
Почему существуют две одинаковые записи, которые выполняют стандартную загрузку Windows 10, но говорят, что это восстановление? Как я могу избавиться от этих записей и просто получить запись с надписью «Windows 10»?
Скопируйте записи с этого:
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 путем добавления этой строки к/etc/default/grub конфигурационному файлу для получения личинки от добавляющих записей автоматически. Можно включить с ложью снова, если Вы добавляете другую систему и хотите, чтобы она нашла его.
gksudo gedit /etc/default/grub
GRUB_DISABLE_OS_PROBER=true
sudo update-grub
https://help.ubuntu.com/community/MaintenanceFreeCustomGrub2Screen
Это зависит от того, какое разделение Вы сделали. Первый показ sudo update-grub
. Если это не работает, можно отредактировать grub.cfg
файл, чтобы иметь только одну запись окон, названных "Windows 10" или независимо от того, что Вы хотите, но не удаляете ни одной из записей Ubuntu.
sudo gedit /boot/grub/grub.cfg
Быть осторожным! Прочитайте учебные руководства онлайн прежде, чем сделать что-либо.
Я изменил сценарий "тестера OS" личинки для разрешения пользовательских замен имени для записей меню. Во-первых, найдите следующий код в/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"
Наконец, обновите свою личинку:
sudo update-grub
, Если это работало правильно, вывод личинки обновления скажет Вам, что было переименовано, и Ваше меню начальной загрузки должно также быть обновлено.
Для избавлений от дополнительной записи меню Windows я использовал функция GRUB_OS_PROBER_SKIP_LIST в/etc/default/grub.
grep
и sed
. Можно легко консолидировать два к sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'
.
– David Foerster
23 January 2017 в 00:55