GRUB - загрузчик системы Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:grub [2014/03/17 15:49]
wiki:grub [2017/03/27 02:04] (текущий)
[Особые случаи]
Строка 1: Строка 1:
 ====== GRUB - загрузчик системы ====== ====== GRUB - загрузчик системы ======
-{{http://​resq.ntaxa.com/​img/​oil-0.11/​128x128/​apps/​grub.png?​150 }} {{ wiki:​grub:​grub.png?​300|GRUB}}**GRUB** (**GR**and **U**nified **B**ootloader((Основной Единый Загрузчик))) — программа-загрузчик операционных систем.\\ ​+ {{ wiki:​grub:​grub.png?​300|GRUB}}**GRUB** (**GR**and **U**nified **B**ootloader((Основной Единый Загрузчик))) — программа-загрузчик операционных систем.\\ ​
 **GRUB** является эталонной реализацией загрузчика,​ соответствующего [[wpru>​Multiboot_Specification|спецификации Multiboot]] и может загрузить любую совместимую с ней операционную систему. Среди них: [[Linux]], FreeBSD, Solaris и многие другие. Кроме того, **GRUB** умеет по цепочке передавать управление другому загрузчику,​ что позволяет ему загружать **Windows** (через загрузчик [[NTLDR]]), MS-DOS, OS/2 и другие системы.\\ **GRUB** является эталонной реализацией загрузчика,​ соответствующего [[wpru>​Multiboot_Specification|спецификации Multiboot]] и может загрузить любую совместимую с ней операционную систему. Среди них: [[Linux]], FreeBSD, Solaris и многие другие. Кроме того, **GRUB** умеет по цепочке передавать управление другому загрузчику,​ что позволяет ему загружать **Windows** (через загрузчик [[NTLDR]]), MS-DOS, OS/2 и другие системы.\\
 После настройки **GRUB** пользователь при включении компьютера видит список операционных систем,​ которые установлены на его компьютер и которые можно загрузить,​ выбрав подходящую и нажав <​key>​Enter</​key>​.\\ После настройки **GRUB** пользователь при включении компьютера видит список операционных систем,​ которые установлены на его компьютер и которые можно загрузить,​ выбрав подходящую и нажав <​key>​Enter</​key>​.\\
Строка 64: Строка 64:
 Пятому сверху пункту будет соответствовать значение 4, второму - 1, первому - 0. В вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню. Пятому сверху пункту будет соответствовать значение 4, второму - 1, первому - 0. В вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню.
  
-<note tip>В качестве значения можно указать ​"saved" - тогда при загрузке ​будет выбран тот пункт, который был загружен в прошлый раз.</​note> ​+<note tip>В качестве значения можно указать ​**saved**. Это позволит использовать команды grub-reboot и grub-set-default для выбора пункта меню по-умолчанию ​при ​последующих перезагрузках. Например: 
 +  * Команда ''​sudo grub-reboot 1''​ однократно выбирает второй ​пункт ​меню по-умолчанию (только для следующей ​загрузки), 
 +  * Команда ''​sudo grub-set-default 2'' ​выбирает на постоянной основе третий пункт меню по-умолчанию 
 +</​note>​
  
-Или же можно указать ​точное название ​пункта в данном случае оно должно быть именно таким, каким мы его видим в «/​boot/​grub/​grub.cfg"​. При этом значение должно указываться в кавычках. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.+Или же можно указать ​значение ​идентификатора (id), оно должно быть именно таким, каким мы его видим в «/​boot/​grub/​grub.cfg"​. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.
  
 === Пример === === Пример ===
 Если в "​grub.cfg"​ пункт меню выглядит так: Если в "​grub.cfg"​ пункт меню выглядит так:
 <​file>​ <​file>​
-menuentry ​"​Ubuntu, ​Linux 2.6.32-020632rc6-generic" ​+menuentry ​'​Example GNU/Linux distribution' ​--class gnu-linux --id example-gnu-linux ​
-        ​recordfail=1 +        ... 
-.... +     ​}
-}+
 </​file>​ </​file>​
 То значение параметра "​GRUB_DEFAULT"​ должно указываться именно в виде: То значение параметра "​GRUB_DEFAULT"​ должно указываться именно в виде:
-<​code>​GRUB_DEFAULT="​Ubuntu,​ Linux 2.6.32-020632rc6-generic"​</​code>​+<​code>​GRUB_DEFAULT=example-gnu-linux</code
 + 
 +<note important>​Ранее документацией предлагалось указывать название пункта меню загрузки (так, как он отображается в самом меню). Хотя этот способ по-прежнему работает,​ использовать его не рекомендуется,​ поскольку эти названия могут меняться,​ например,​ при обновлении ядра/​версии ОС</​note>
  
 ==== Изменение времени отображения меню ==== ==== Изменение времени отображения меню ====
Строка 102: Строка 106:
   * Применяем изменения командой:​   * Применяем изменения командой:​
 <​code>​sudo update-grub</​code>​ <​code>​sudo update-grub</​code>​
 +==== Убираем подменю ====
 +Чтобы раскрыть все меню используем такой параметр:​
 +<​code>​GRUB_DISABLE_SUBMENU="​y"</​code>​ Это бывает нужно если хотим загружаться не с первой строчки.
  
 ==== Особые случаи ==== ==== Особые случаи ====
-Поведение меню отличается от заданного переменными GRUB_TIMEOUT и GRUB_HIDDEN_TIMEOUT когда предыдущая загрузка не завершилась успехом или предыдущаяя загрузка происходила в режиме восстановления. Подробно это описано далее, в разделе "​Защита от зацикливания на перезагрузке"​.+Поведение меню отличается от заданного переменными GRUB_TIMEOUT и GRUB_HIDDEN_TIMEOUT когда предыдущая загрузка не завершилась успехом или предыдущаяя загрузка происходила в режиме восстановления. Подробно это описано далее, в разделе "​Защита от зацикливания на перезагрузке"​. ​Полную справку по параметрам файла настроек можно дав команду:​ <​code>​info -f grub -n '​Simple configuration'</​code>​
 ==== Изменение стандартных параметров загрузки ядра ==== ==== Изменение стандартных параметров загрузки ядра ====
 Иногда бывает необходимо загружать ядро системы с какими-либо особыми параметрами (например,​ для корректной работы специфического оборудования). В этом случае весьма полезен будет параметр "​GRUB_CMDLINE_LINUX_DEFAULT"​ он отвечает за те параметры,​ с которыми запускаются ядра при загрузке. ​ Иногда бывает необходимо загружать ядро системы с какими-либо особыми параметрами (например,​ для корректной работы специфического оборудования). В этом случае весьма полезен будет параметр "​GRUB_CMDLINE_LINUX_DEFAULT"​ он отвечает за те параметры,​ с которыми запускаются ядра при загрузке. ​
Строка 281: Строка 288:
 Настроив свой файл, сохраните его <​key>​Ctrl+S</​key>​ и закройте. ​ Настроив свой файл, сохраните его <​key>​Ctrl+S</​key>​ и закройте. ​
  
-Теперь необходимо добавить дополнительное меню. Для этого в файле "/etc/default/​40_custom"​ добавим запись такого вида:+Теперь необходимо добавить дополнительное меню. Для этого в файле "/etc/grub.d/​40_custom"​ добавим запись такого вида:
 <​code>​ <​code>​
 menuentry "​Название меню"​{ menuentry "​Название меню"​{
Строка 348: Строка 355:
 ==== А что если отключить?​ ==== ==== А что если отключить?​ ====
 Собственно сами случаи,​ когда циклится загрузка - не так и часты, если машина работает без графики то там вообще мало чему падать на этапе загрузки,​ да еще так, что бы система вышла на перезагрузку. Разве что совсем кривой прикладной софт встроенный в процесс загрузки...\\ ​ Собственно сами случаи,​ когда циклится загрузка - не так и часты, если машина работает без графики то там вообще мало чему падать на этапе загрузки,​ да еще так, что бы система вышла на перезагрузку. Разве что совсем кривой прикладной софт встроенный в процесс загрузки...\\ ​
-Гораздо чаще загрузка прерывается из за внешних условий - например пропадает питание,​ или кто-то сбрасывает систему.+Гораздо чаще загрузка прерывается из за внешних условий - например пропадает питание,​ или кто-то сбрасывает ​грубо ​систему.
 ==== Отключаем... ==== ==== Отключаем... ====
 == Как это работает == == Как это работает ==