Як приховати меню GRUB, що відображається на початку завантаження?


42

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

Як я можу цього досягти?


Якщо ви зупинили подвійне завантаження, напевно, ви перестали використовувати іншу ОС. Чому не можна видалити іншу ОС, щоб ubuntu міг нормально завантажуватися.
karthick87


якщо хтось із цих відповідей "відповів" на ваше питання, будь ласка, прийміть одну з них :)
blade19899

@ david6: Я не бачу, як жоден із них є дублікатами цього питання. Я думаю, що це стосується приховування меню грубів під час очікування.
oKtosiTe

Вибачте, друге посилання повинно було бути: 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 ...
Alex Poulos

Я 12.04, і я спробував це, але він вже сказав "правда", і він все ще з'являється. Єдині інші ОС, які я маю, - це пошкодження безпеки та Memtest - це все. Я вже видалив свій розділ Windows і оновив grub, і меню все ще відображається.
Алекс Пулос

@AlexPoulos дивіться на це посилання
hingev

2
Для мене працювали, змінивши тайм-аут на 0, а потім увімкніть його. Спасибі
king_julien

23

Я вирішив цю проблему, відключивши ОС Prober. Я зробив це тому, що в /boot/grub/grub.cfgчастині, генерованій шаблоном /etc/grub.d/30_os-prober, було переоцінка "timeout" на 10 та "style" в меню.

Відредагуйте /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 = приховану" частину, тоді відлік видно, але нічого іншого, якщо ви не перервите його. Це дозволяє вам потрапити в меню і змінити настройки завантаження, навіть роблячи це набагато менш очевидним.
stonecrusher

Якщо ви хочете мати можливість переглянути меню завантаження після утримування клавіші Shift, GRUB_TIMEOUT повинен бути встановлений на більший за нуль (скажімо, GRUB_TIMEOUT = 5). В іншому випадку інші параметри завантаження (скажімо, Windows) при необхідності неможливо активувати.
користувач3804598

У 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не рекомендується (див. Вище цитуване посилання), якщо машина не є VM розробки чи подібним.
Бен Джонсон

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_DEFAULT = 0
# GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = хибне
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || відлуння 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 = вірно
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || відлуння 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

Але ви ніколи не можете робити оновлення-grub знову, інакше він повернеться до того ж файлу, і час очікування знову буде до 10! Збережіть файл (in vi, вам потрібно буде примушувати його, навіть якщо ви су!). Перезавантажте комп'ютер, і він буде працювати чудово!


Цікаво, чому б і ні 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

Єдине питання з цим полягає в тому, що у мене не запущена
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

для всіх вас, хто має сплеск слова в 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=""

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

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)"

встановлює п'ятисекундне вікно для натискання на зміну, щоб я міг завантажуватися в 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)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.