В этой статье показано, как легко изменить время ожидания GRUB в Linux. Прочитав эту статью, вы узнаете, как отредактировать тайм-аут Grub за несколько шагов.
Перед запуском, если при загрузке компьютера GRUB не отображается, перейдите к разделу Что делать, если меню GRUB не отображается.
Изменение тайм-аута GRUB в Linux:
Для начала отредактируйте файл конфигурации GRUB. Вы можете использовать команду ниже, чтобы отредактировать его с помощью текстового редактора nano.
sudo nano /etc/default/grub
Найдите строку, содержащую «GRUB TIMEOUT=5», как показано на следующем снимке экрана; в нашем случае (Debian) это вторая строка без комментариев.
Это строка, которую нужно отредактировать, чтобы изменить время ожидания GRUB; просто замените значение по умолчанию 5 другим значением; например, чтобы изменить время ожидания с 5 до 10 секунд, отредактируйте следующую строку.
После редактирования строки выйдите из nano с сохранением изменений, нажав Ctrl + X и update-grub, чтобы применить изменения, чтобы обновить Grub, выполните команду ниже.
sudo update-grub
Теперь, когда вы перезагрузите компьютер, вы увидите новый тайм-аут.
Что делать, если меню GRUB не появляется:
Если меню GRUB не отображается при загрузке компьютера, возможно, оно скрыто. Если вы используете устаревшую версию BIOS, вы можете отобразить ее, нажав несколько раз клавишу Shift при загрузке. Если вы используете UEFI, нажмите Esc. Это покажет меню GRUB один раз.
На нашем устройстве Ubuntu при проверке файла конфигурации GRUB /etc/default/grub дополнительная строка скрывает меню GRUB. Чтобы постоянно отображать меню GRUB, следующая строка:
GRUB_TIMEOUT_STYLE=hidden
Необходимо изменить, как показано на скриншоте ниже, на:
GRUB_TIMEOUT_STYLE=menu
Затем вы можете отредактировать ранее упомянутую строку, чтобы изменить время ожидания. Например, чтобы изменить время ожидания с 5 до 10 секунд, отредактируйте следующую строку.
И измените его на:
GRUB_TIMEOUT=10
Затем закройте nano с сохранением изменений ( Ctrl + X ).
Теперь вам нужен GRUB, чтобы применить сделанные вами изменения. Для этого вам необходимо обновить GRUB. Чтобы обновить GRUB, выполните следующую команду.
sudo update-grub
При перезагрузке меню GRUB будет оставаться в течение 10 секунд или числа, которое вы указали в строке, содержащей GRUB_TIMEOUT =.
Как видите, теперь GRUB дает 10 секунд на выбор варианта или загрузку автоматически.
Что такое GRUB и как он работает:
GRUB (Grand Unified Bootloader) – это загрузчик, который позволяет пользователю выбирать ядро, ОС или режим загрузки. Поскольку BIOS не распознает файловые системы, эта задача передается загрузчику, который загружает файлы в ОЗУ.
Grub – это первая программа, которая запускается, когда пользователь включает свой компьютер. Задача загрузчика – загрузить правильную операционную систему или ядро до инициализации системы.
В этом случае загрузчик или GRUB находится в MBR (Master Boot Record). MBR – это сектор жесткого диска или раздела, содержащий информацию о файловых системах и разделах, а также о загрузчике. Grub также совместим с системами BSD (FreeBSD, NetBSD, OpenBSD); другие ядра поддерживаются через цепную загрузку.
Дополнительную информацию о GRUB можно получить по адресу https://www.gnu.org/software/grub/ или https://www.gnu.org/software/grub/manual/grub/grub.html.
Вывод:
Как видите, любой пользовательский уровень Linux может легко изменить время ожидания GRUB. Управлять GRUB довольно просто, и самая распространенная ошибка – забыть обновить его после изменений. Другими известными загрузчиками являются BURG (новый универсальный загрузчик от GRUB), LILO (загрузчик Linux) и Syslinux.
Мы надеемся, что эта статья, объясняющая, как изменить время ожидания GRUB в Linux, была полезной.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Большинство решений, которые мы предлагаем в этой статье, могут быть реализованы любым пользователем, независимо от его уровня знаний о Linux, а некоторые требуют небольших финансовых вложений.

Содержание
- Замените жесткий диск на SSD
- Уменьшить время ожидания GRUB
- Проверить время загрузки процессов
- Установить ожидающие обновления
- Используйте проприетарные драйверы
- Проверьте приложения, которые запускаются
- Сократите время загрузки с помощью Preload
- Расширенное управление питанием в Linux
- Используйте легкий дистрибутив
- Lubuntu
- Linux Mint
Замените жесткий диск на SSD
Первый метод, который мы показываем вам для ускорения загрузки Linux и который также действителен для любой другой настольной операционной системы, заключается в замене механического жесткого диска (HDD) твердотельным диском (SSD). Механические жесткие диски, как следует из названия, используют дискообразный механизм, на котором размещена игла, отвечающая за считывание всей информации. Работа очень похожа на работу поворотного стола.
Однако твердотельные накопители хранят всю информацию в запоминающем устройстве, аналогичном картам памяти, поэтому скорость как чтения, так и записи намного превосходят механические приводы . Если наши потребности в пространстве не очень высоки и мы полагаемся на платформу облачного хранилища, мы можем купить твердотельный накопитель емкостью 256 ГБ чуть менее чем за 30 евро.
Уменьшить время ожидания GRUB
Если мы используем Linux и Windows на одном компьютере, через несколько секунд после запуска компьютера первое, что появляется, — это GRUB, селектор загрузки, который позволяет нам выбрать, какую операционную систему мы хотим использовать на компьютере в любое время. Если мы не выберем какую-либо операционную систему, через определенное время, 10 секунд, автоматически запустится версия Linux, которую мы установили на компьютер.
Если мы обычно нажимаем кнопку питания на нашем компьютере и начинаем что-то делать, пока он загружается, ожидая, пока GRUB автоматически загрузит Linux по истечении установленного времени, мы можем сократить это время до 2 секунд , Например. Чтобы изменить время ожидания GRUB, мы будем использовать команду
sudo nano /etc/default/grub
Мы вводим пароль нашей учетной записи и изменяем GRUB_TIMEOUT раздел, чтобы установить количество секунд, которое требуется для запуска выбранной операционной системы. Наконец, мы сохраняем изменения.
Далее нам нужно обновить загрузку с изменениями, которые мы внесли в GRUB. Для этого мы будем использовать следующую команду в Ubuntu и дистрибутивы Debian
sudo update-grub
Проверить время загрузки процессов
Другой метод, который мы можем использовать для проверки времени загрузки процессов, которые запускаются при запуске Linux, это анализировать время их загрузки с помощью системд. Если мы не обладаем высокими познаниями в Linux или не знаем, чему соответствует каждый процесс, лучше не трогать этот раздел.
Для анализа времени выполнения процессов воспользуемся командой
systemd-analyze blame
Если мы хотим отключить любой из этих процессов, мы будем использовать команду
systemctl disable nombredelservicio
Установить ожидающие обновления
В зависимости от дистрибутива Linux, который мы используем, количество доступных для установки обновлений может быть более или менее частым, как и обновления установленных приложений, хотя это не зависит от самого дистрибутива. Каждое новое обновление включает ряд улучшений, направленных на улучшение производительности и стабильности компьютера, поэтому их установка на компьютер практически обязательна.
Чтобы проверить, есть ли у нас ожидающие обновления для установки, для обоих дистрибутивов Linux, которые мы используем, мы открываем приложение «Обновление программного обеспечения».
Используйте проприетарные драйверы
С некоторых пор количество производителей, которые также делают ставку на Linux, значительно увеличилось, и в настоящее время нет необходимости обращаться к сообществу, чтобы в полной мере воспользоваться, например, нашей видеокартой. Непатентованные драйверы не так хорошо оптимизированы, как разработанные производителем, поэтому всякий раз, когда у нас есть возможность, мы должны установить их, если мы хотим сократить как время загрузки, так и общую работу дистрибутива.
Чтобы проверить, включает ли какой-либо компонент нашего оборудования возможность использование проприетарных драйверов производителя , мы будем использовать приложение «Программное обеспечение и обновления», а затем на вкладке «Дополнительные драйверы».
Проверьте приложения, которые запускаются
Приложения, которые запускаются при загрузке операционной системы, — это проблема, которую мы всегда найдем в любой операционной системе, будь то мобильная или настольная. Все процессы, необходимые для запуска операционной системы, включены разработчиком операционной системы. Однако по мере того, как мы устанавливаем приложения, некоторые из них автоматически включаются в автозагрузку компьютера, продлевая агонию запуска компьютера.
Чтобы удалить приложения, которые запускаются автоматически каждый раз, когда мы загружаем Linux, мы должны получить доступ к параметрам конфигурации и открыть приложение «Приложения» при запуске. В появившемся окне мы должны выбрать приложения, которые мы хотим удалить, а затем нажать кнопку «Удалить».
Если название приложения звучит для нас незнакомо, то лучше его не удалять, так как это может быть программный компонент, необходимый для корректной работы компьютера. Если мы их удалим, наш дистрибутив Linux может работать нестабильно и не запускаться должным образом.
Сократите время загрузки с помощью Preload
Если мы не только хотим сократить время, необходимое для запуска компьютера, но также хотим сократить время, необходимое для запуска приложений, мы можем использовать предварительную загрузку. Preload хранит двоичные файлы приложений в Оперативная память в фоновом режиме, так что когда нам нужно открыть приложение, оно уже частично загружено в память и время запуска сокращается.
Чтобы воспользоваться этой функцией, первое, что мы должны сделать, это установить ее с помощью команды и перезагрузить компьютер, чтобы она начала работать. С нашей стороны делать абсолютно нечего.
sudo apt-get install preload
Еще одно решение, которое мы показываем вам для оптимизации работы Linux в целом, — это использование Linux Advanced Power Management, с помощью которого мы можем оптимизировать работу оборудования чтобы он адаптировался к типу оборудования, на котором мы его используем (ноутбук или настольный компьютер). С помощью этого приложения мы также можем оптимизировать работу устройства хранения, так что никогда не помешает попробовать.
Чтобы установить это приложение, мы идем в терминал и добавляем репозиторий, где он находится
sudo add-apt-repository ppa:linrunner/tlp
И обновляем список включенных в линукс
sudo apt-get update
мы устанавливаем это
sudo apt-get install tlp tlp-rdw
И мы запускаем его в работу
sudo tlp start
Используйте легкий дистрибутив
Если после проверки методов, которые мы показали вам в этой статье, мы не можем значительно уменьшить время запуска в линуксе, а наш компьютер особо не выделяется своей современностью, самое простое решение — использовать легкий дистрибутив линукса.
Эти типы дистрибутивов не включают в себя те же приложения и функции, которые доступны в самых последних версиях Ubuntu или Debian, однако они включают все необходимое, чтобы без проблем работать с этой операционной системой.
Lubuntu
Одним из самых популярных легковесных дистрибутивов является Lubuntu, дистрибутив, который, как можно понять из его названия, основан на Ubuntu. Он включает в себя большое количество предустановленных приложений для бесперебойной работы и использует рабочий стол LXQt, который потребляет меньше ресурсов, чем GNOME. Мы можем загрузить этот дистрибутив через его веб-сайт, щелкнув следующее ссылке .
Linux Mint
Еще одна интересная альтернатива, которую мы должны рассмотреть, если мы ищем легкий дистрибутив Linux, мы находим его в Linux Mint, дистрибутиве с дизайном, похожим на Windows XP, который также основан на Ubuntu. включает основные приложения чтобы иметь возможность работать. Мы можем загрузить Linux Mint через следующие ссылке .
Содержание

GRUB является эталонной реализацией загрузчика, соответствующего спецификации Multiboot и может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.
После настройки GRUB пользователь при включении компьютера видит список операционных систем, которые установлены на его компьютер и которые можно загрузить, выбрав подходящую и нажав Enter.
GRUB позволяет пользователю при загрузке задавать произвольные параметры и передавать их в ядро Multiboot-совместимой ОС для дальнейшей обработки.
GRUB — самый популярный загрузчик в мире Linux и является загрузчиком по умолчанию в большинстве известных дистрибутивов.
Здесь и далее в иных статьях под названием программы GRUB подразумевается GRUB 2, который используется в операционных системах семейства Ubuntu начиная с версии 9.10, до него использовался GRUB первой версии, сейчас известный как GRUB Legacy. GRUB 2 полностью переписан с нуля и не имеет ничего общего с GRUB Legacy, разработка которого была остановлена в пользу более совершенного и мощного GRUB.
Первые шаги
При первом сравнении GRUB со старым GRUB Legacy самым весомым различием оказывается измененная структура файлов конфигурации.
Настройка GRUB производится теперь принципиально иным способом — основным файлом конфигурации является «/boot/grub/grub.cfg«. Однако же, не торопитесь править его так, как привыкли это делать с «menu.lst» в GRUB Legacy. При внимательном прочтении мы видим в начале файла «grub.cfg» такие строки:
# # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub #
И об этом нас предупреждают не просто так. Ведь «grub.cfg» генерируется автоматически с использованием нескольких скриптов. Поэтому после следующего обновления GRUB ваш «grub.cfg» будет создан заново, и все ваши правки будут утрачены.
Кроме файла «grub.cfg», отвечающего за загрузочное меню, имеются файл «/etc/default/grub» и папка «/etc/grub.d«. Рассмотрим их подробнее.
/etc/default/grub
Данный файл содержит в себе основные настройки для GRUB. Через него, собственно, они и изменяются. Для наглядности ниже приводится примерное содержимое этого файла:
GRUB_DEFAULT=6 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT="2" GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true"
Файл представляет из себя набор опций в понятном формате ОПЦИЯ=ЗНАЧЕНИЕ.
Наиболее часто встречающаяся потребность при настройке GRUB — изменение стандартного пункта загрузки и/или времени показа меню. Рассмотрим же, как это делается.
Изменение стандартного пункта загрузки
По умолчанию стандартный пункт (выделенный при показе меню) — верхний в списке. После установки Ubuntu она окажется наверху, а Windows, например, будет последним пунктом.
Значением «GRUB_DEFAULT» является номер пункта меню, который должен быть выбран стандартным. Чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. Есть два варианта:
-
Просмотреть содержимое «/boot/grub/grub.cfg» и сосчитать, какой по счету окажется нужная запись;
-
Перезагрузиться и более наглядно посмотреть меню загрузки.
Нумерация пунктов меню начинается с нуля. Значение по умолчанию — 0, поэтому и выбирается первый пункт.
Пятому сверху пункту будет соответствовать значение 4, второму — 1, первому — 0. В вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню.
В качестве значения можно указать saved. Это позволит использовать команды grub-reboot и grub-set-default для выбора пункта меню по-умолчанию при последующих перезагрузках. Например:
-
Команда
sudo grub-reboot 1однократно выбирает второй пункт меню по-умолчанию (только для следующей загрузки), -
Команда
sudo grub-set-default 2выбирает на постоянной основе третий пункт меню по-умолчанию.
Или же можно указать значение идентификатора (id), оно должно быть именно таким, каким мы его видим в «/boot/grub/grub.cfg«. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.
Пример
Если в «grub.cfg» пункт меню выглядит так:
menuentry 'Example GNU/Linux distribution' --class gnu-linux --id example-gnu-linux {
...
}
То значение параметра «GRUB_DEFAULT» должно указываться именно в виде:
GRUB_DEFAULT=example-gnu-linux
Ранее документацией предлагалось указывать название пункта меню загрузки (так, как он отображается в самом меню). Хотя этот способ по-прежнему работает, использовать его не рекомендуется, поскольку эти названия могут меняться, например, при обновлении ядра/версии ОС
Изменение времени отображения меню
По умолчанию меню загрузки отображается 10 секунд (при наличии других установленных ОС, если система одна — GRUB по умолчанию не отображается и сразу начинает загрузку), после чего загружается стандартный пункт, если раньше не нажат Enter или не выбран другой пункт, что останавливает таймер. За эту задержку отвечает параметр «GRUB_TIMEOUT», значение задается в секундах.
Если поставить значение «-1», то меню будет отображаться до тех пор, пока пользователь не выберет какой-либо пункт
Обратите внимание, что цифра указывается в кавычках. В нашем примере это значение — 2, то есть меню отображается две секунды.
«Скрытое» меню
В случае, если на компьютере установлена только Ubuntu, меню загрузки по умолчанию не будет отображаться, а GRUB будет загружать вас напрямую в систему. Однако же, иногда может возникнуть необходимость загрузиться с другим ядром или же запустить проверку памяти. Для этого предусмотрено «скрытое меню» за него отвечает параметр «GRUB_HIDDEN_TIMEOUT».
В случае, когда установлены другие ОС, этот параметр закомментирован (# в начале строки). Данное значение позволит приостановит загрузку на заданное количество секунд, давая пользователю возможность вызвать меню загрузки, нажав Esc.
Если значение установлено в 0, то задержки не будет, однако вызвать меню можно, удерживая при загрузке Shift
Параметр «GRUB_HIDDEN_TIMEOUT_QUIET» отвечает за отображение таймера во время паузы. Если его значение «true» таймер отображаться не будет, а со значением «false» будет.
Чтобы GRUB отображал меню со списком установленных операционных систем, без нажатия клавиш вызова меню (например Shift или Esc) необходимо:
-
Открыть файл /etc/default/grub для редактирования:
sudo gedit /etc/default/grub
-
Выставить время до автоматической загрузки выделенной системы/ядра (например 10 секунд):
GRUB_TIMEOUT="10"
-
Чтобы меню GRUB отображалось, необходимо закомментировать следующую строчку (значком #):
#GRUB_HIDDEN_TIMEOUT=0
-
Применяем изменения командой:
sudo update-grub
Убираем подменю
Чтобы раскрыть все меню используем такой параметр:
GRUB_DISABLE_SUBMENU="y"
Это бывает нужно если хотим загружаться не с первой строчки.
Особые случаи
Поведение меню отличается от заданного переменными GRUB_TIMEOUT и GRUB_HIDDEN_TIMEOUT когда предыдущая загрузка не завершилась успехом или предыдущаяя загрузка происходила в режиме восстановления. Подробно это описано далее, в разделе «Защита от зацикливания на перезагрузке». Полную справку по параметрам файла настроек можно дав команду:
info -f grub -n 'Simple configuration'
Изменение стандартных параметров загрузки ядра
Иногда бывает необходимо загружать ядро системы с какими-либо особыми параметрами (например, для корректной работы специфического оборудования). В этом случае весьма полезен будет параметр «GRUB_CMDLINE_LINUX_DEFAULT» он отвечает за те параметры, с которыми запускаются ядра при загрузке.
Его значение по умолчанию — «quiet splash»: происходит показ графической заставки при запуске системы без отображения какой-либо текстовой информации.
Вы можете добавить необходимые вам параметра запуска ядра, приведя это значение к виду «quiet splash your_param1 your_param2», то есть дописав через пробел нужные параметры.
Пример
Чтобы заменить графическую заставку во время загрузки на информацию о загрузке компонентов системы (это позволит проследить за процессом загрузки и выявить неполадки). Необходимо заменить строчку:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
На следующую:
GRUB_CMDLINE_LINUX_DEFAULT=""
/etc/grub.d
Эта папка содержит в себе скрипты, которые используются для создания файла «grub.cfg». При обновлении GRUB они находят все установленные на компьютере системы и ядра и формируют в файле «grub.cfg» меню загрузки, которое мы и видим. Два основных из них:
-
«10_linux» и «30_os-prober» отвечают за поиск Linux ядер и остальных ОС на других разделах соответственно.
-
Файл «40_custom» позволяет добавлять свои пункты загрузки. Это может быть полезно, если вы, например, хотите добавить какие-то особые варианты загрузки системы.
Файл «40_custom» должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!
Пример
Добавляем режим загрузки без графической заставки, с текстовым отображением процесса загрузки (verbose mode). Для этого мы немного отредактируем обычный пункт загрузки. допустим, он выглядит так (в «/boot/grub/grub.cfg«):
menuentry "Ubuntu, Linux 2.6.32-020632rc6-generic" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,5)
search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8
linux /boot/vmlinuz-2.6.32-020632rc6-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro quiet splash
initrd /boot/initrd.img-2.6.32-020632rc6-generic
}
Для того, чтобы сделать из этого verbose mode, нам нужно убрать опции quiet и splash и изменим название самого пункта. В итоге получаем:
echo "adding verbose mode" >&2
menuentry "Ubuntu, Linux 2.6.32.rc6 verbose-mode" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,5)
search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8
linux /boot/vmlinuz-2.6.32-020632rc6-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro
initrd /boot/initrd.img-2.6.32-020632rc6-generic
}
Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении GRUB.
Команды консоли GRUB
Чтобы попасть в консоль, нужно нажать клавишу C во время отображения меню загрузки.
ls
Довольно универсальная команда при использовании в чистом виде выдает список жестких дисков и разделов. Также она может быть использована как одноименная команда в Linux — для вывода содержимого папки. например:
ls /boot/grub
Еще одно полезное свойство комадны «ls» — она позволят получить информацию о любом разделе:
ls (hd0,5)
Команда сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).
cat
Данная команда выводит содержимое заданного файла, используется в формате:
cat /путь/имя_файла
linux
Аналог команды «kernel» в GRUB Legacy. Загружает указанное Linux-ядро:
linux файл_ядра опция1=значение опция2 опция3
Например, так:
linux /boot/vmlinuz-2.6.32-020632-generic root=/dev/sda5 single
initrd
Загружает указанный initrd-образ. Используется так:
initrd /boot/initrd.img-2.6.32-020632-generic
Обратите внимание, что версия initrd должна соответствовать версии загружаемого ядра!
chainloader
Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:
chainloader /путь/имя_файла
Для (загрузчика Windows) можно использовать:
chainloader +1 boot
root
При использовании без параметров сообщает, какой раздел сейчас используется в качестве корневого и тип файловой системы на этом разделе, также команда может быть использована для задания другого root-раздела. Раздел задается в «grub device» — формате »(hd*,*)«. например:
root (hd0,5)
После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root hd(*,*)» не всегда корректно срабатывает. более предпочтительным вариантом является «set root» (см. ниже)
set
Весьма универсальная команда для изменения различных параметров. Служит для задания значений переменных и используется в формате:
set переменная=значение
Наиболее необходимое ее применение — для задания root-раздела, например:
set root=(hd0,5)
Также с ее помощью можно, например, «на лету» изменить цвет текста в меню и консоли, что позволяет опробовать цветовую схему перед установкой ее в качестве основной. Для этого изменяем переменные «color_normal» — для обычного пункта (и текста в консоли) и «color_highlight» для выделенного пункта соответственно. Например, попробуем такой вариант:
set color_normal=magenta/green set color_highlight=light-blue/black
search
Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:
-
-u (или –fs-uuid) — поиск раздела по UUID
-
-l (или –label) — поиск по метке раздела
-
-f (или –file) — поиск по указанному файлу
-
-n (или –no-floppy) — не проверять флоппи-дисковод (чтоб не трещал)
-
-s (или –set) — установить найденный раздел в качестве значения заданной переменной.
lsfonts
Команда отобразит список загруженных в настоящий момент шрифтов.
help
При использовании в чистом виде выведет список доступных команд. В формате:
help r
Выведет справку по всем командам, начинающимся на «r».
help search
Отобразит справку по команде «search»
halt
Выключение компьютера.
reboot
Перезагрузит компьютер.
background_image
Позволяет «на лету» изменить фоновое изображение. Используется в формате:
background_image /путь/имя_файла
Дает замечательную возможность посмотреть на выбранную картинку в действии, избегая лишних перезагрузок. В сочетании с заменой цветов через set позволит довольно быстро подобрать подходящий вариант оформления.
Данная команда не заменит ваши настройки оформления, фон будет изменен лишь на текущий сеанс.
При использовании без параметров сбросит текущее фоновое изображение. Однако, заданные цвета останутся, так что если у вас черный цвет текста — на черном фоне вы его не увидите.
terminal_output.console
Позволяет переключиться на обычную черно-белую цветовую гамму. Весьма полезно при работе с консолью в том случае, если у вас установлено фоновое изображение. Картинка на фоне — это, конечно, красиво, но на некоторых участках фона может быть не виден текст.
Применение изменений
После того, как мы отредактировали и сохранили наши файлы. Нужно закончить дело, обновив файл «grub.cfg». Это довольно просто — нужно всего лишь выполнить команду:
sudo update-grub
После этого смело перезагружаемся и видим, что все работает как надо.
Нюанс с нумерацией дисков и разделов
В GRUB имеется еще одно важное отличие от старого GRUB Legacy, а именно изменилась нумерация разделов диска. Нумерация дисков идет с нуля, а нумерация разделов — с единицы!
Если в GRUB Legacy первый раздел первого диска (sda1) именовался «hd0,0». То в GRUB, первый раздел первого диска (sda1) теперь будет «hd0,1».
Создание дополнительного меню загрузки
Суть в том, что вместо уже знакомого «grub.cfg» можно загрузить свой файл настройки загрузочного меню со своей конфигурацией. Это позволяет создать дополнительное меню с другими пунктами, настройками, оформлением и т.д. Итак, создадим наш новый файл конфигурации. Создавать с нуля не будем, а скопируем «grub.cfg», дав новое имя:
sudo cp /boot/grub/{grub,custom}.cfg
Поскольку файл скопируется с правами 444, выставим ему права на запись:
sudo chmod 744 /boot/grub/custom.cfg
Теперь открываем его в любимом текстовом редакторе и изменяем:
sudo gedit /boot/grub/custom.cfg
Если вы в достаточной мере знаете структуру «grub.cfg» и понимаете, какие строки что делают, можно значительно сократить свой файл, убрав лишнее и привести его к более удобочитаемому виду.
-
set defaultзадаем пункт меню по умолчанию, указав или его номер или точное название. -
set gfxmodeздесь задается разрешение экрана в привычном формате WxH. Можно также указать глубину цвета, например «1024x768x32». можно указать несколько вариантов, при этом если первый не сможет быть установлен, будет загружен второй, если и он не сработает — третий и т.д. Например:set gfxmode=1024x768x32,1024x768x24,1024x768
-
Теперь зададим время отображения меню, для этого ищем строку
set timeout, и устанавливаем значение -1 для отключения таймера.
Для задания фонового изображения найдем строку с if background_image (подразумевается, что в вашем «grub.cfg» используется фоновое изображение. Если нет — смотрите пример файла в конце раздела). После команды background_image прописан путь к файлу картинки, поменяйте его на нужный файл.
Обратите внимание, что разрешение картинки должно соответствовать заданному выше разрешению экрана!
Строкой ниже мы можем задать цвета текста. Изменяются они так же, как и в »/etc/grub.d/05_debian_theme« (см. Настройка внешнего вида загрузчика GRUB). Можно проделать один интересный трюк: уберите строки с set color_highlight и else теперь настройка будет такой:
-
color_normalзадает цвет/фон текста сверху и снизу (версия grub и комментарии) и текста в консоли -
menu_color_normalотвечает за цвет пунктов меню и фон прямоугольника, в котором они находятся -
menu_color_higlightзадает цвет/фон выделенного пункта меню.
Закончив с настройкой, перейдем к пунктам меню, они идут ниже. Измените их, удалите ненужные и добавьте новые, пересортируйте на свой вкус.
Настроив свой файл, сохраните его Ctrl+Shift и закройте.
Теперь необходимо добавить дополнительное меню. Для этого в файле »/etc/grub.d/40_custom« добавим запись такого вида:
menuentry "Название меню"{
configfile /boot/grub/custom.cfg
}
Если ваш путь к файлу отличается — исправьте его.
Если вы используете отдельный boot-раздел, путь будет таким: »/grub/custom.cfg«.
Также учтите, что «40_custom» должен заканчиваться пустой строкой!
Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию, но перед этим проверьте новое меню на работоспособность.
Обновите свой «grub.cfg» выполнив команду:
sudo update-grub
Теперь пункт перехода в дополнительное меню появится в главном, для того чтобы выйти обратно в главное меню, достаточно нажать Esc
В качестве образца пример файла «custom.cfg» (файл урезан до необходимого минимума):
have_grubenv=true
load_env
### выбранный пункт по умолчанию
set default=0
### таймаут меню
set timeout=2
### разрешение
set gfxmode=800x600x32,800x600x24,800x600
insmod ext2
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else terminal gfxterm; fi
insmod png
### фоновое изображение
background_image /usr/share/images/grub/yellow.png
### настройка цветов
set color_normal=black/black
set menu_color_normal=green/light-blue
set menu_color_highlight=red/blue
menuentry "9.10 @ 2.6.32" {
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro quiet splash
initrd /boot/initrd.img-2.6.32-020632-generic
}
menuentry "9.10 @ 2.6.32 (recovery)" {
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro single
initrd /boot/initrd.img-2.6.32-020632-generic
}
menuentry "windooz"{
search -u AC9C75E59C75AA8A -s
chainloader +1
}
Защита от зацикливания на перезагрузке
Если загрузка ОС не закончилась успешно, или осуществлялась загрузка в режим восстановления, то при следующей загрузке — меню выбора GRUB будет выводится и ждать явного вмешательства оператора (так же, как если бы вы выставили GRUB_TIMEOUT=-1). При этом последующие аппаратные сбросы системы — не помогут проскочить меню.
Зачем это сделано
При загрузке в лог файлы пишется информация и размеры логов растут. В нормально загруженной систем работают сервисы, которые архивируют и подчищают логи. В нормально работающей системе постоянно пополнение лог-файлов не требует внимания со стороны пользователя.
Совсем иная ситуация при загрузке — никакие сервисы по очистке логов не работают (они запускаются позже) и, если, в процессе загрузки система свалится и начнет перезагружаться, то лог будет только расти. И расти он будет до тех пор пока будут повторятся перезагрузки, и будет хватать места на том разделе диска, где расположен каталог /var/log. А когда на разделе с /var/log место кончится то система зависнет уже наглухо и даже в режим восстановления ее будет не загрузить. Загрузится можно будет только с LiveCD/USB (с Live системы и надо будет лечить систему, первым делом руками зачистив логи).
Защита встроенная в GRUB не позволит системе попасть в столь тяжелое положение.
А что если…
Функция (как видно) — безусловно полезная, однако она может быть неудобной для без-клавиатурных станций — на них «зависшее» меню GRUB-а — это не преимущество, а некоторые сложности (без подключения клавиатуры такая станция, попавшая в меню GRUB, никогда не загрузится вообще).
А что если отключить?
Собственно сами случаи, когда циклится загрузка — не так и часты, если машина работает без графики то там вообще мало чему падать на этапе загрузки, да еще так, что бы система вышла на перезагрузку. Разве что совсем кривой прикладной софт встроенный в процесс загрузки…
Гораздо чаще загрузка прерывается из за внешних условий — например пропадает питание, или кто-то сбрасывает грубо систему.
Отключаем…
Как это работает
Реализовано все достаточно просто — в скрипте /boot/grub/grub.cfg переменная окружения GRUB recordfail устанавливается в ходе каждой загрузки в 1.
Скрипт /etc/init.d/grub-common запускается на финальных этапах загрузки (линки с именем S99grub-common есть в /etc/rc2.d, /etc/rc3.d, … /etc/rc5.d). grub-common сбрасывает переменную recordfail в 0.
Если скрипт /etc/init.d/grub-common не отработает, то не сброшенное значение recordfail предотвращает автоматическую загрузку, меню GRUB появляется и потребуется явное интерактивное вмешательство со стороны оператора.
Для того, что бы убрать необходимость интерактивного вмешательства в процесс загрузки нужно установить переменную GRUB_RECORDFAIL_TIMEOUT в /etc/defaul/grub в то количество секунд, которые меню GRUB-а будет ждать ввода в случае когда recordfail=1.
Сохранить изменения и обновить GRUB (sudo update-grub).
Вы должны понимать, что проделанные изменения могут привести к довольно печальным последствиям, если все-таки у вас случится ситуация, при которой зациклится перезагрузка системы.
Финт с GRUB_RECORDFAIL_TIMEOUT может не сработать в некоторых (старых) версиях GRUB. Тогда нужно редактировать /etc/grub.d/00_header. Нужно найти функцию make_timeout (), которая выглядит примерно так:
make_timeout ()
{
cat << EOF
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=${2}
fi
EOF
}
и заменить в ней строчку
set timeout=-1
на
set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
После этого финт с GRUB_RECORDFAIL_TIMEOUT заработает. Нужно сохранить изменения и обновить GRUB (sudo update-grub).
Изменения в скрипте /etc/grub.d/00_header могут быть утеряны при обновлении пакета grub-common. Но в новых версиях GRUB переменная GRUB_RECORDFAIL_TIMEOUT уже внедрена (т.е. эти изменения уже сделаны в 00_header).
Ссылки
-
Grub2 — Ubuntu Documentation (англ.)
Доброго дня всем!
Решил описать небольшую операцию по изменению времени загрузчика Grub.
Мне например не понравилось что время выбора О.С. при старте всего — 5 сек, а это значит что нужно быть на готове, и изловчившись поймать момент 
Сразу прошу прощения у всех гуру — Debian, за возможно нупский совет, но я думаю что начинающим Линуксойдам он пригодится, т.к. пригодился мне. Я сам дошел до него (вчера*) методом тыка
Итак, что нам нужно чтобы загрузчик Grub отводил нам не 5 секунд времени для выбора операционной системы?
______________________________________________________________________
В папке boot найдите папку Grub, далее в ней нужно найти файл конфигурации grub.cfg. Откроем его и найдем почти в самом начале такие строки:
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)’
search —no-floppy —fs-uuid —set b46d86ef-3d68-4593-ac8c-56387b3c4c66
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640×480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)’
search —no-floppy —fs-uuid —set b46d86ef-3d68-4593-ac8c-56387b3c4c66
set locale_dir=($root)/boot/grub/locale
set lang=ru
insmod gettext
set timeout=5
вот он таймаут, по умолчанию стоит 5 сек, ставим свое время загрузки, я поставил — 30 сек.
получается вот что*:
set timeout=30
___________________________________________________________________
Все. При повторной загрузке вам не нужно будет ловить момент, вы сможете даже налить чашку кофею за время «простоя» Gruba.
* конечно, вы можете выставить какое угодно время*
Прошу прощения если я написал что-то нехорошее.
Да и еще, чтобы отредактировать файл конфигурации загрузчика, вам нужно иметь права # рута. Т.е. вы должны редактировать файл как администратор системы но не как простой пользователь. Я сделал так: запустил терминал — запустил через — su -терминал программку nautilus — в нем открыл данный файл и отредактировал.
Как вы, вероятно, знаете, GRUB2 является загрузчиком по умолчанию для большинства операционных систем Linux.
GRUB означает GRand Unified Bootloader.
Загрузчик GRUB – это первая программа, которая запускается при старте компьютера.
Он отвечает за загрузку и передачу управления в ядро операционной системы.
И тогда ядро берет на себя ответственность и инициализирует остальную часть операционной системы.
В этом руководстве я покажу вам, как настроить параметры загрузчика GRUB2 в системе Ubuntu.
Мы можем настроить параметры, либо напрямую отредактировав файл конфигурации grub с помощью любого текстового редактора, либо с помощью любых приложений с графическим интерфейсом, таких как Grub-customizer.
Я протестировал приведенные ниже инструкции на настольных компьютерах Ubuntu 16.04 и 18.04 LTS, однако эти инструкции могут работать во всех операционных системах Linux, в которых используется загрузчик GRUB2.
Настройка параметров загрузчика GRUB2
Как я уже сказал, мы можем настроить параметры загрузчика из командной строки или графического интерфейса.
Давайте посмотрим на метод с командной строкой.
Предупреждение. Файл конфигурации по умолчанию для GRUB2 – /boot/grub/grub.cfg. Вы не должны редактировать или изменять этот файл, если вы не очень знакомы с GRUB2. Это основной файл для загрузки в ОС Linux. Если вы сделаете что-то не так с этим файлом, то у вас наверняка будет сломана система. Так что не трогайте этот файл!
Файл /boot/grub/grub.cfg автоматически создается программой grub-mkconfig с использованием шаблонов из /etc/grub.d и настроек из /etc/default/grub.
Любые изменения, внесенные вами в файл /etc/default/grub, будут отражены в GRUB2.
$ sudo cp /etc/default/grub /etc/default/grub.bak
Содержимое типичного файла grub будет выглядеть следующим образом:
Пример вывода:
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' 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="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"
Всякий раз, когда вы вносите какие-либо изменения в этот файл, вы должны выполнить следующую команду, чтобы применить изменения к GRUB2.
1. Выберите ОС по умолчанию (GRUB_DEFAULT)
Откройте файл /etc/default/grub с помощью любого текстового редактора, например, nano.
$ sudo nano /etc/default/grub
Найдите строку «GRUB_DEFAULT».
Мы можем выбрать ОС для загрузки по умолчанию, используя эту опцию.
Если вы установите значение «0», будет загружена первая операционная система в пункте меню загрузки GRUB.
Если вы установите «1», загрузится вторая ОС и так далее.
Кроме того, если в вашей системе более одной ОС, вы можете загрузить последнюю операционную систему, используя значение GRUB_DEFAULT=saved.
Всякий раз, когда вы перезагружаете систему, последняя операционная система начинает загрузку.
Обратите внимание, что вы должны добавить строку GRUB_SAVEDEFAULT = true, чтобы этот трюк работал.
Вы также можете указать имя записи операционной системы для загрузки конкретной ОС.
Например, если в меню BOOT есть запись «Lubuntu 16.04 LTS», вы можете использовать GRUB_DEFAULT = «Lubuntu 16.04 LTS» для загрузки Lubuntu по умолчанию.
Помните, что вы должны указать значение в кавычках.
Не забудьте обновить изменения, внесенные в файл grub, выполнив следующую команду:
$ sudo update-grub
2. Установите время ожидания ОС (GRUB_TIMEOUT)
По умолчанию выбранная запись из меню загрузки начнет загружаться через 10 секунд.
Вы можете увеличить или уменьшить этот тайм-аут.
Если значение равно «0», ОС по умолчанию сразу начнет загружаться.
Если значение равно «5», меню загрузки будет отображаться в течение 5 секунд, чтобы вы могли выбрать, какую ОС вы хотите загрузить при запуске системы.
3. Измените фоновое изображение GRUB
Чтобы изменить фоновое изображение GRUB, вам нужно скопировать предпочитаемое изображение в /boot/grub/location.
$ sudo cp ostechnix.png /boot/grub/
Вы также можете использовать изображения в формате JPG / JPEG.
Но GRUB поддерживает только 256 цветных форматов изображений JPG / JPEG.
Итак, лучше использовать изображения в формате PNG.
Кроме того, вы можете напрямую указать путь к файлу изображения в файле /etc/default/grub, как показано ниже:
$ sudo nano /etc/default/grub
Добавьте следующую строку:
GRUB_BACKGROUND="/home/sk/ostechnix.png"
Замените путь к изображению своим собственным.
Сделав необходимые изменения в файле GRUB, сохраните и закройте его.
Чтобы применить изменения, вы должны выполнить следующую команду:
$ sudo update-grub
Вы должны увидеть следующий вывод:
Generating grub configuration file ... Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Found background image: ostechnix.png Found linux image: /boot/vmlinuz-4.15.0-23-generic Found initrd image: /boot/initrd.img-4.15.0-23-generic Found linux image: /boot/vmlinuz-4.15.0-20-generic Found initrd image: /boot/initrd.img-4.15.0-20-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin done
Перезагрузитесь и проверьте, работают ли изменения.












