Как установить время ожидания grub и загрузочную запись grub по умолчанию?


191

В Ubuntu 12.04 (или выше), как мне установить время GRUB и операционную систему по умолчанию (которую я вижу во время загрузки), поскольку у меня двойная загрузка Windows (7/8) и Ubuntu (12.04 или выше)?


Можете ли вы дать больше информации. Что вы имеете в виду под «временем grub» и какова ваша ОС по умолчанию. В вашем меню Grub какие линии?
Жюльен Чау

1
Время загрузки означает время обратного отсчета, когда мне нужно выбрать ОС на стартовом экране BIOS. Извините, но я не знаю точно, как называется это меню выбора ОС, поэтому я опубликовал его как время загрузки.
Метеоры

Ответы:


227
  • Нажмите Alt+ F2, введите gksudo gedit /etc/default/grubнажмите Enterи введите свой пароль.
  • Вы увидите следующее содержимое:

    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 = ""
    
  • Вы можете изменить значение по умолчанию с 0 на любое число, соответствующее записи в меню загрузки Grub (первая запись - 0, вторая - 1 и т. Д.)

  • Вы можете изменить «скрытый тайм-аут» (без меню); а также отобразить обратный отсчет ( GRUB_HIDDEN_TIMEOUT_QUIET=false)
  • Вы можете заставить меню grub отображаться, закомментировав две GRUB_HIDDENстроки #в начале строки
  • И установить тайм-аут меню Grub (по умолчанию 10 секунд)

  • Внесите изменения, нажмите Ctrl+ Sдля сохранения и Ctrl+ Qдля выхода

  • Важно : откройте терминал с Ctrl+ Alt+ Tи введите sudo update-grubизменения, которые вы только что сделали
  • Перезагрузитесь, и вы увидите изменения времени ожидания / записи по умолчанию

Связанный вопрос:


Спасибо @Raja, но главное отличие - grub / grub2. Если бы у вас был правильный grub2, я бы с радостью отредактировал ваш ответ вместо того, чтобы сделать другой :)
ish

Спасибо, ваш ответ сработал, но не могли бы вы объяснить мне второй и третий пункт (скрытый тайм-аут и скрытые строки grub), для чего они предназначены.
метеоры

2
Пожалуйста, не рекомендуйте никому изменять параметр grub по умолчанию, устанавливая произвольный индекс. Это ужасно не интуитивно понятно и может привести к катастрофе. Пользователь может ввести неправильный код или он может измениться во время обновления, что приведет к неожиданному поведению.
Cerin

2
Это требует обновления, связанного с двойными уровнями текущего меню grub.
Ханну

1
@ Что ты тогда предлагаешь?
phil294

30

Если вы прочитаете файл, который вы редактируете в приведенном выше примере (/ etc / default / grub), вы заметите, что самые первые две строки инструктируют вас запускать update-grubпосле внесения изменений, чтобы обновить фактический файл, который читает grub " получить его инструкции "(/boot/grub/grub.cfg). Обратите внимание, что вы должны sudoсначала запустить его с помощью команды, так как вам нужны привилегии root для запуска команды (именно поэтому на приведенном выше плакате сказано, что нужно набирать sudo update-grub). Это приведет к тому, что сделанные вами изменения будут записаны в /boot/grub/grub.cfg. Очень ближайшие пару линий сказать вам , что вы можете прочитать полную документацию опций в этом файле (опять же , / и т.д. / по умолчанию / GRUB), набрав info -f grub -n 'Simple configuration'.

Тем не менее, установите GRUB_TIMEOUT в -1, если вы хотите, чтобы «время загрузки» было неопределенным. Другими словами, он никогда не загрузится автоматически. Вам придется сделать выбор.

Наконец, чтобы ответить на ваш вопрос, вот описание этих "скрытых линий" прямо из вышеуказанной документации:

GRUB_HIDDEN_TIMEOUT
    Wait this many seconds for a key to be pressed before displaying
    the menu.  If no key is pressed during that time, boot
    immediately.  Unset by default.

GRUB_HIDDEN_TIMEOUT_QUIET
    In conjunction with `GRUB_HIDDEN_TIMEOUT', set this to `true' to
    suppress the verbose countdown while waiting for a key to be
    pressed before displaying the menu.  Unset by default.

Надеюсь, это поможет!


14

Вы можете использовать приложение под названием Grub Customizer . Это намного проще.

Вы можете установить его:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Об этом есть статья How-To Geek , Как легко настроить загрузочное меню Linux GRUB 2 . Кроме того, на форумах Ubuntu есть решенная тема « Изменение порядка загрузки в GRUB 2», в которой упоминается этот инструмент.

Вот несколько снимков экрана этого программного обеспечения:

screen_1

screen_2

screen_3


1
Это требует обновления, связанного с двойными уровнями текущего меню grub.
Ханну

5

Я следовал за первым ответом, но, похоже, нужно обновить, если у вас двойная загрузка с Windows 7 Pro и Ubuntu 16.04. Также убедитесь, что безопасная загрузка отключена в BIOS.

а) Сначала он говорит использовать Alt+, F2когда я думаю, что он хочет использовать, чтобы открыть окно терминала. В моем случае это Ctrl+ Alt+ T.

б) В первой записи команда не устанавливается по умолчанию в Ubuntu 16.04 . Чтобы обойти это, сделайте следующее в Терминале:gksudo gedit /etc/default/grubgksudo

sudo -iи нажмите Enterи введите свой пароль, а затем Enterснова.

затем введите:

gedit /etc/default/grubи нажмите Enter.

c) Теперь вы увидите меню смены grub, как показано в ответе 1. Следуйте его ответу, пока он не доберется до Ctrl+, Sчтобы сохранить изменения. Это не работает в Ubuntu 16.04, но вы должны увидеть кнопку сохранения в правом верхнем углу экрана. Нажмите на это.

г) Ctrl+ Qвыйти.

д) следующий тип sudo update-grubиEnter

е) Тип exit. Вам нужно сделать это дважды.

г) перезагрузка

Я обнаружил, что на моем компьютере после нескольких входов в систему процесс загрузки не отображал экран grub при запуске, и поэтому я не мог войти в Ubuntu, так как я установил Windows как загрузку по умолчанию с 7-секундной задержкой на случай, если я захочу получить в Ubuntu.

Чтобы исправить эту проблему, вам нужно войти в Windows.

  1. Нажмите на меню «Пуск» и введите CMDв поле поиска.

  2. Щелкните правой кнопкой мыши на строке CMD, которая должна быть в верхней части экрана, созданного правой кнопкой мыши.

  3. Нажмите на запуск от имени администратора .

  4. В командной строке введите bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi. Эта запись приводит к регистрации меню grub с помощью менеджера загрузки Windows. (Благодарю: Grub не отображается при запуске Windows 8.1 Ubuntu 13.10 с двойной загрузкой )

  5. Наконец, я перезагрузился обратно в окна.

Надеюсь, это поможет.


Можете ли вы дать ссылку на «проиллюстрировано в ответе 1» - я не смог найти то, что вы имели в виду.
Том Хейл,

Также «Я последовал за первым ответом». В качестве примера вы можете отформатировать мой "Credit to:". Отличный первый пост. Добро пожаловать в AskUbuntu.
Том Хейл,

У меня был странный разрыв X-окна при запуске графических приложений, таких как gedit как sudo. Вместо этого я предлагаю использовать текстовый редактор, такой как nano.
Артур Такка

2
Alt+F2ярлык единства для запуска команды в фоновом режиме. В открывшемся меню вы можете ввести любую команду, как в терминале. Но поскольку он не открывает терминал, вы не увидите никакого вывода терминала и не сможете взаимодействовать с терминалом. Вот почему вы обычно используете его для таких вещей, как запуск программы с графическим интерфейсом, например gedit. Также вы не можете использовать sudo, так как вам нужен терминал для этого. Вот почему они используют gksudo(графический интерфейс sudo). Если вы выполняете команды в терминале, вы можете просто использовать нормальное, sudoкак это: sudo gedit /etc/default/grubнет необходимости sudo -i.
Себастьян,

@Sebastian Для запуска графического приложения, sudo -Hлучше , то есть sudo -H gedit /etc/default/grub.
wjandrea

2

Использование записи по умолчанию на основе числа поразило меня с момента ее появления в GRUB. Это действительно плохая идея. Как насчет обновления ядра и автоматической переконфигурации grub? Как насчет неосведомленных пользователей, которые предпочитают запись в конце списка? Обновления будут нарушать эту конфигурацию по умолчанию на основе номеров.

Вместо этого используйте опцию SAVED, чтобы запомнить последнюю выбранную запись:

GRUB_DEFAULT=SAVED
GRUB_SAVEDEFAULT=TRUE

Затем примените GRUB с

sudo update-grub

1
Не большая проблема, но это не объясняет, как и где вносить эти изменения. Вы можете ссылаться на другой ответ, который делает.
wjandrea

1

Это не работает для меня 16.04 тоже.

Но я исправил это, изменив файл /boot/grub/grub.cfg

sudo vim /etc/default/grub

редактировать Grub

sudo update-grub
sudo chmod u+w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg

изменить значение тайм-аута

###segment in /boot/grub/grub.cfg:
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  #set timeout=10 # comment this original
  set timeout=0 # add this
fi

sudo chmod -w /boot/grub/grub.cfg
reboot

0

Это можно легко сделать без каких-либо кодов. Просто следуйте этим шагам.

  1. Открытая файловая система.
  2. Откройте /etcпапку.
  3. Откройте defaultпапку.
  4. Найдите grubфайл и откройте его с помощью leafpad(или любого другого текстового редактора).
  5. Установите GRUB_TIMEOUTдля своей потребности и сохраните его.
  6. Теперь откройте терминал и введите update-grub.
  7. Перезагрузите вашу систему.

Вот и все.


0

Я думаю, у вас есть такая строка: GRUB_TIMEOUT_STYLE = скрыто

Измените его на GRUB_TIMEOUT_STYLE = меню

И прокомментируйте все строки, касающиеся скрытых функций.

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