Как скрыть меню GRUB, отображаемое в начале загрузки?


42

Я прекратил двойную загрузку и больше не хочу выбирать ОС. Я хочу загрузить Ubuntu 12.04 напрямую, не видя меню GRUB.

Как я могу этого достичь?


Если вы остановили двойную загрузку, возможно, вы перестали использовать другую ОС. Почему вы не можете удалить другую ОС, чтобы Ubuntu могла нормально загружаться?
karthick87


если какой-либо из этих ответов «ответил» на ваш вопрос, примите один из них :)
blade19899

@ Давид6: Я не вижу, как один из этих дубликатов этого вопроса. Я думаю, что речь идет о сокрытии меню Grub во время тайм-аута.
Октябрь

Извините, вторая ссылка должна была быть: askubuntu.com/questions/66070/… Сюда входит, как: Скрыть меню Grub2 и использовать опцию меню по умолчанию
david6

Ответы:


33

Вы можете просто изменить настройки grub.

введите в терминале

sudo -H gedit /etc/default/grub

вам нужно изменить это

Изменить GRUB_HIDDEN_TIMEOUT_QUIET=falseна

GRUB_HIDDEN_TIMEOUT_QUIET=true

Сохраните файл и выйдите

Тип sudo update-grub

Если вы не получили желаемый результат, посмотрите эту ошибку .


7
в настоящее время оно изменено на True, но я все еще вижу меню grub ...
Алекс Пулос

Я на 12.04, и я попробовал это, но он уже сказал "правда", и он все еще обнаруживается. Единственные другие ОС, которые у меня есть, - это отказоустойчивые и Memtest - вот и все. Я уже удалил свой раздел Windows и обновил grub, и меню все еще отображается.
Алекс Пулос

@AlexPoulos посмотрите на эту ссылку
hingev

2
Сработал для меня, изменив время ожидания на 0, а затем сделав его тихим. Спасибо
king_julien

23

Я решил эту проблему, отключив ОС Prober. Я сделал это, потому что в /boot/grub/grub.cfgчасти, сгенерированной шаблоном /etc/grub.d/30_os-prober, было переопределение «тайм-аута» на 10 и «стиля» на меню.

Отредактируйте /etc/default/grubи добавьте эту строку:

GRUB_DISABLE_OS_PROBER=true

Надеюсь, вы найдете это полезным!

Кстати, мой полный / etc / default / grub:

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR= [...]
GRUB_DISABLE_OS_PROBER=true
GRUB_RECORDFAIL_TIMEOUT=0

Удачного кодирования


2
это сработало для меня, но заставило исчезнуть все остальные параметры загрузки, кроме варианта по умолчанию ...
открывается как

1
@opensas Если меню выбора не отображается, как вы узнаете, какие параметры загрузки «появляются» на нем? Если вы хотите отключить меню, зачем вам использовать параметры загрузки по умолчанию?
Кайл Стрэнд,

если вы пропустите часть 'GRUB_TIMEOUT_STYLE = hidden', то обратный отсчет будет виден, но ничего больше, если вы не прервете его. Это позволяет вам войти в меню и изменить настройки загрузки, даже сделав его менее очевидным.
камнедробилка

Если кто-то хочет видеть меню загрузки после удержания клавиши Shift, GRUB_TIMEOUT должен быть установлен больше нуля (скажем, GRUB_TIMEOUT = 5). В противном случае другие параметры загрузки (скажем, Windows) не могут быть активированы при необходимости.
user3804598

В Ubuntu 18.04 LTS GRUB_RECORDFAIL_TIMEOUT=0это единственное изменение, /etc/default/grubкоторое устраняет 30-секундный тайм-аут (и меню загрузчика GRUB в целом), что кажется ошибкой: bugs.launchpad.net/ubuntu/+source/grub2/+bug/1814403/ комментарии / 4 . Кроме того, sudo update-grubдолжны быть выполнены, чтобы изменения вступили в силу, что не упоминается в Ответе. Обратите внимание, что устанавливать это значение 0не рекомендуется (см. Ссылку, приведенную выше), если только машина не является виртуальной машиной для разработки или аналогичной.
Бен Джонсон

11

Я испробовал все эти советы, которые они не сработали, и в итоге сократил время ожидания до нуля следующим образом:

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

запустить sudo update-grubпосле изменения значений
niksmac

Мне то же. Я запустил "update-grub" - не работал.
Робин Уинслоу

1
Это то, что мой / etc / default / grub, но я все еще получаю 10 секундный обратный отсчет с отображением меню grub.
zorkerz

8

Вам нужно отредактировать файл, /etc/default/grubчтобы не показывать меню grub.

По умолчанию записи в этих файлах выглядят так.

GRUB_DEFAULT = 0
# GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = ложь
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск"
GRUB_CMDLINE_LINUX = ""
  • Уберите #отметку со второй строки и
  • Измените строку GRUB_HIDDEN_TIMEOUT_QUIET=falseна GRUB_HIDDEN_TIMEOUT_QUIET=true.

После внесения изменений необходимая часть файла будет выглядеть так

GRUB_DEFAULT = 0
GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = TRUE
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск"
GRUB_CMDLINE_LINUX = ""
  • Затем запустите sudo update-grubкоманду в терминале и перезагрузитесь, чтобы увидеть результат.

3
У меня была эта конфигурация, но все равно появляется меню grub.

1
С этим параметром update-grub возвращает: «Предупреждение: установка GRUB_TIMEOUT в ненулевое значение, когда GRUB_HIDDEN_TIMEOUT больше не поддерживается», и я все еще получаю 10-секундный обратный отсчет при отображении меню grub. Установка GRUB_TIMEOUT в 0 также возвращает те же результаты.
zorkerz

@zorkerz, какую версию Ubuntu вы используете?
Анвар

Ксениал Ксерус, но 15.10 имел такое же поведение
zorkerz

5

У меня была такая же проблема, и ни один из советов здесь не сработал! Единственным способом было изменить /boot/grub/grub.cfg вручную. В какой-то момент этого файла он делает тайм-аут до 10! Так что, просто прокомментируйте эти строки

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

Но вы никогда не сможете снова выполнить update-grub, иначе он вернется к тому же файлу, а время ожидания снова станет равным 10! Сохраните файл (в vi вам нужно будет принудительно запустить его, даже если вы su!). Перезагрузите компьютер, и он будет работать нормально!


Интересно, а почему бы и нет if [ "${timeout}" = 10 ]; then set timeout=0 fi ? Или просто полностью удалить оператор if и просто оставить set timeout=0?
Старейшина Гик

Это помещено туда из шаблона, который можно отключить (пробел ОС, как упомянуто в ответе Агустина). Вам не нужно вручную редактировать grub.cfg.
Нил Трафт

это сработало для меня в 14.04
Каламалка Малыш

3

если вы хотите удалить загрузочную запись, просто введите:

sudo update-grub

Если это не сработает, установите менеджер запуска, вот так:

sudo apt-get install startupmanager


со стартап-менеджером вы можете

  1. выбрать с записью для загрузки,
  2. выберите разрешение и сколько времени ждать перед загрузкой,
  3. Вы также можете выбрать 0 для автоматической загрузки загрузки по умолчанию

бург, но он забирает себе храбрость
Черный блок

извините за опечатку. это должно быть sudo update-grub, я отредактировал ответ
blade19899

Единственная проблема с этим заключается в том, что у меня не так много вариантов версии Startup-менеджера - Imgur
Alex Poulos

1
Я на 12.04, и я попробовал это, но он уже сказал "правда", и он все еще обнаруживается. Единственные другие ОС, которые у меня есть, - это отказоустойчивые и Memtest - вот и все. Я уже удалил свой раздел Windows и обновил grub, и меню все еще отображается
Alex Poulos

рядом с «тайм-аут в секундах» есть поле с номером 10, переименуйте его в номер 0
blade19899

3

Как и Агустин , я обнаружил, что моя проблема связана с ОС Prober. Делая на шаг лучше, чем его решение, я нашел эту суть , которая позволит вам иметь свои ОС, но при этом будет скрывать меню. Вам просто нужно загрузить эти два файла, поместить их в /etc/grub.dи дать им те же права доступа, что и другим шаблонам в этом каталоге.

Если вы когда-нибудь захотите получить доступ к вашей ОС не по умолчанию, просто удерживайте нажатой клавишу shift при загрузке. Это покажет меню.


это определенно кажется мне ошибкой. кто-нибудь сообщал об этом ???
открывается как

Правда ... может быть, я когда-нибудь об этом узнаю. Понятия не имею, есть ли уже там.
Нил Трэфт

3

Я нашел простое решение проблемы.

  echo "
  set timeout_style=hidden
  set timeout=2" | sudo tee --append /etc/grub.d/40_custom 

И обновить Grub. Он перезапишет настройки времени ожидания в grub.cfg, поэтому не имеет значения, что у вас в / etc / default / grub. Таким образом, у меня есть скрытое меню, которое может быть вызвано смещением на 2 секунды.


Этот подход сработал для меня (grub 2.02 ~ beta3-4ubuntu7, установленный Ubuntu 17.10), когда ни одно из других решений, предложенных на этой странице, не сработало (действительно неудачно, что я протестировал это последнее: /). Благодарность!
pchaigno

2

Добавьте следующую строку в /etc/default/grub:

GRUB_FORCE_HIDDEN_MENU="true"

2

Я видел много людей, которые говорили, что предлагаемые ответы не работают для них. Я попробовал несколько вариантов, и этот работал для меня :

Отредактируйте /etc/grub.d/00_header и найдите:

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1

Измените это на ...

if [ "\${recordfail}" = 1 ]; then
  set timeout=10

И запустить update-grub.


2

для всех вас, у которых есть слово splash в строке cmd, но жесткое кодирование 0 для тайм-аута не будет работать,

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

Попробуйте удалить всплеск слова из второй последней строки, обновить и перезагрузить, вуаля, без меню :)

hth, krex


2

это заняло у меня некоторое время, но это окупилось, это была смесь моих собственных раскопок и ответов выше, сначала убедитесь, что вы /etc/default/grubи /usr/grub/default/grubте же. затем запустите gksu gedit /etc/grub.d/30_os-proberв верхней части две строки, которые нам нужны, но чтобы найти их, выполните поиск стайка и измените эту строку на скрытую, а затем найдите строку тайм-аута, которая должна быть такой, как при timeout = 0установке значения 10 удалить эту часть из if в конец файла, убедитесь, что Вы удаляете конец файла или ваш пьяный, и ваша конфигурация grub должна регистрировать что-то вроде этого, это моё, например:

устанавливает загрузку по умолчанию для Windows 8.1 Pro

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

устанавливает пять секунд, чтобы нажать shift, чтобы я мог загрузиться в Ubuntu

GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true

Основное исправление ошибки на всякий случай

GRUB_TIMEOUT=0

устанавливает стиль на скрытый

GRUB_TIMEOUT_STYLE=hidden

Ubuntu по умолчанию

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

1
  • Настроить grub через sudo nano /etc/default/grub
  • Введите конец файла:
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0
  • Сохранить изменения CTRL+S
  • Выход CTRL+X
  • Обновить меню grub sudo update-grub

0

Попробуйте это на свой страх и риск и только в крайнем случае!

Я пытался редактировать /etc/default/grubи запустить sudo update-grubбезрезультатно.

Закончилось редактирование /boot/grub/grub.cfgвручную, в частности,

...
### END /etc/grub.d/00_header ###

set timeout=0
saved_entry="Ubuntu"
save_env saved_entry

### BEGIN /etc/grub.d/05_debian_theme ###
...

-1
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="lsb_release -i -s 2> /dev/null || echo Debian"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Set this if you hide grubmenu at boot! hidden-timeout has to be 0-10
# NOT recommend with dual-boot systems
# Type ESC/ENTER at boot to make grub-menu visible again! 
# in this case hidden-timeout has to be 3-10
GRUB_DISABLE_OS_PROBER=true

решает проблему! s.grub2 @ubuntuusers! ;-)

Также можно сделать grub-меню снова видимым во время загрузки!

ВАЖНО, если у вас есть сбой и вы хотите загрузить старое (и стабильное) ядро!

(Протестировано с Linux Mint 17.3 Rosa, основанной на Ubuntu 14.04)


4
Пожалуйста, не повторяйте предыдущие ответы .
Дэвид Фёрстер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.