Как скрыть меню GRUB, отображаемое в начале загрузки?
Я прекратил двойную загрузку и больше не хочу выбирать ОС. Я хочу загрузить Ubuntu 12.04 напрямую, не видя меню GRUB.
Как я могу этого достичь?
22 ответа
Вы можете просто изменить настройки grub.
введите в терминале
sudo -H gedit /etc/default/grub

+ Изменить GRUB_HIDDEN_TIMEOUT_QUIET=false в
GRUB_HIDDEN_TIMEOUT_QUIET=true
Сохраните файл и выйдите
Тип sudo update-grub
Если вы не получили желаемый результат, посмотрите эту ошибку.
Я решил эту проблему, отключив ОС 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
Удачного кодирования
Я испробовал все эти советы, которые они не сработали, и в итоге сократил время ожидания до нуля следующим образом:
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=""
Вам нужно отредактировать файл на /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= верно GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="тихий всплеск" GRUB_CMDLINE_LINUX=""
- Тогда беги
sudo update-grubвведите команду в терминал и перезагрузите компьютер, чтобы увидеть результат.
У меня была такая же проблема, и ни один из советов здесь не сработал! Единственным способом было изменить /boot/grub/grub.cfg вручную. В какой-то момент этого файла он делает тайм-аут до 10! Так что, просто прокомментируйте эти строки
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
Но вы никогда не сможете снова выполнить update-grub, иначе он вернется к тому же файлу, а время ожидания снова станет равным 10! Сохраните файл (в vi вам нужно будет принудительно запустить его, даже если вы su!). Перезагрузите компьютер, и он будет работать нормально!
Я нашел простое решение проблемы.
echo "
set timeout_style=hidden
set timeout=2" | sudo tee --append /etc/grub.d/40_custom
И обновить Grub. Он перезапишет настройки времени ожидания в grub.cfg, поэтому не имеет значения, что у вас в /etc/default/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
Добавьте следующую строку в /etc/default/grub:
GRUB_FORCE_HIDDEN_MENU="true"
Если вы хотите удалить загрузочную запись, просто введите:
sudo update-grub
Если это не сработает, установите менеджер запуска, вот так:
sudo apt-get install startupmanager
со стартап-менеджером вы можете
- выбрать с записью для загрузки,
- выберите разрешение и сколько времени ждать перед загрузкой,
- Вы также можете выбрать 0 для автоматической загрузки загрузки по умолчанию
Как и Агустин, я обнаружил, что моя проблема связана с ОС Prober. Делая на шаг лучше, чем его решение, я нашел эту суть, которая позволит вам иметь свои ОС, но при этом будет скрывать меню. Вам просто нужно скачать эти два файла, поместить их в /etc/grub.dи предоставьте им те же разрешения, что и другим шаблонам в этом каталоге.
Если вы когда-нибудь захотите получить доступ к вашей ОС не по умолчанию, просто удерживайте нажатой клавишу shift при загрузке. Это покажет меню.
В идеале мы могли бы просто поставить
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
в
/etc/default/grubи покончить с этим. К сожалению, по крайней мере, на Манджаро файл
/etc/grub.d/30_os-proberотменяет эти настройки. Мы могли бы отключить этот файл, но вот лучшее решение: создать
/etc/grub.d/99_quiet с этим содержанием:
#!/bin/sh
cat <<EOF
set timeout_style=hidden
set timeout=0
EOF
(В этом файле нам даже не нужно изменять
/etc/default/grub вообще.) Сделайте его исполняемым и запустите
sudo update-grub (или
sudo grub-mkconfig -o /boot/grub/grub.cfg если на Arch).
Перезагрузка и GRUB не будут отображать меню и не будут вызывать задержки во время загрузки. Но вы все равно можете получить меню, если удерживаете Shift после включения оборудования, но до запуска GRUB.
Чтобы понять, что здесь происходит, мы должны понять, как работает конфигурация GRUB. E сть
/boot/grub/grub.cfgфайл в специальном DSL, который GRUB читает во время загрузки. Это можно написать вручную, но предпочтительно генерировать его с помощью
update-grub (т.е.
grub-mkconfig). Эта команда использует
/etc/default/grub а также
/etc/grub.d для создания
grub.cfg. В
/etc/default/grub загружается первым, чтобы установить параметры конфигурации для
update-grubдля создания файла. Затем каждый файл в
/etc/grub.dчто исполняемый выполняется, и его выход сцепляется к концу
grub.cfg.
Некоторые документы см. Здесь, но также см. Фактические сценарии оболочки в
/etc/grub.d и полученная конфигурация GRUB
/boot/grub/grub.cfg.
Для Убунту 20.04
Запустите следующую команду в
terminal. Он создаст настраиваемый файл конфигурации для grub с указанием задержки загрузки (установка тайм- аута = 0 удалила экран grub)
echo "set timeout_style=hidden
set timeout=0" | sudo tee boot/grub/custom.cfg
Здесь есть хорошее объяснение этому .
Я видел много людей, которые говорили, что предлагаемые ответы не работают для них. Я попробовал несколько вариантов, и этот работал для меня:
Отредактируйте /etc/grub.d/00_header и найдите:
if [ "\${recordfail}" = 1 ]; then
set timeout=-1
Измените это на...
if [ "\${recordfail}" = 1 ]; then
set timeout=10
И запустить update-grub.
Это заняло у меня некоторое время, но это окупилось, это была смесь моих собственных раскопок и ответов выше, сначала убедитесь, что ваш /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=""
- Настроить grub через
sudo nano /etc/default/grub - Введите конец файла:
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0
- Сохранить изменения
CTRL+S - Выход
CTRL+X - Обновить меню grub
sudo update-grub
Начиная с Ubuntu 22.10 я рекомендую это:
отредактируйте файл /etc/default/grub:
sudo nano /etc/default/grub
Убедитесь, что у вас есть эти строки:
GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=0
Сохраните и выйдите из программы обновления:
sudo update-grub
У меня есть Dell XPS Plus с Ubuntu 22.04 . Немного похоже на один из ответов выше, ни один из лучших ответов не сработал для меня. Следуя потоку здесь, я должен был изменить/etc/grub.d/00_headerфайл. Логика всегда течет черезefiветка и любые другие изменения в других файлах не работают. я должен был изменитьtimeoutзначение от 30 до 0. Затем выполнитеsudo update-grub.
if [ \$grub_platform = efi ]; then
set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
if [ x\$feature_timeout_style = xy ] ; then
set timeout_style=menu
fi
fi
Мне удалось это сделать, вот мои харчи
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -d -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
GRUB_DISABLE_OS_PROBER=true
GRUB_RECORDFAIL_TIMEOUT=0
GRUB_ENABLE_CRYPTODISK=y
Используйте эту команду для редактирования файлаsudo -H gedit /etc/default/grub
В моем случае мой/etc/default/grubфайл был в этом состоянии
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Прежде всего, я добавил строкуGRUB_HIDDEN_TIMEOUT_QUIET=trueв файл. Но оно скрывало меню grub, но запуск все равно занимал 10 секунд. Затем я изменилGRUB_TIMEOUTзначение для0и теперь это сработало.
В итоге файл выглядит так:
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Не забудьте запустить эту командуsudo update-grubв терминале каждый раз, когда вы вносите изменения и сохраняете их. В противном случае ваши изменения не будут применены.
Если настройка GRUB_TIMEOUT= в ноль /etc/default/grub не работает, где-то в /boot/grub/grub.cfg (фактический скрипт grub) время ожидания меняется. В файле, который вызывает это, закомментируйте эту строку и запустите update-grub, Сюда GRUB_TIMEOUT= применяется снова, и ваши изменения будут сохранены в ресурсах grub.cfg.
Как:
Начните методом проб и ошибок: найдите set timeout в /boot/grub/grub.cfg и измените время ожидания, перезагрузитесь (не запускайте update-grub) и проверьте, изменило ли это меню grub. Если нет, отмените последнее изменение и перейдите к следующему.
После того, как вы нашли негодную линию в grub.cfg вам нужно посмотреть, откуда это. Ищите ### BEGIN & ### END (/boot/grub/grub.cfg генерируется update-grub и исходные файлы в /etc/grub.d/). В порочном файле, например. /etc/grub.d/00_header, прокомментируйте соответствующую строку, которая устанавливает время ожидания, и запустите update-grub,
В настоящее время GRUB_TIMEOUT=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 ###
...
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)