Os boot: GRUB — загрузчик системы | Русскоязычная документация по Ubuntu

Содержание

GRUB — загрузчик системы | Русскоязычная документация по Ubuntu

Содержание

  • GRUB — загрузчик системы

    • Первые шаги

    • /etc/default/grub

      • Изменение стандартного пункта загрузки

      • Изменение времени отображения меню

      • «Скрытое» меню

      • Убираем подменю

      • Особые случаи

      • Изменение стандартных параметров загрузки ядра

    • /etc/grub.d

    • Команды консоли GRUB

      • ls

      • cat

      • linux

      • initrd

      • chainloader

      • root

      • set

      • search

      • lsfonts

      • help

      • halt

      • reboot

      • background_image

      • terminal_output.console

    • Применение изменений

    • Нюанс с нумерацией дисков и разделов

    • Создание дополнительного меню загрузки

    • Защита от зацикливания на перезагрузке

      • Зачем это сделано

      • А что если. ..

      • А что если отключить?

      • Отключаем…

    • Ссылки

GRUB (GRand Unified Bootloader1)) — программа-загрузчик операционных систем.
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) необходимо:

sudo gedit /etc/default/grub
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).

Ссылки

  • Обсуждение статьи на форуме

  • [HOWTO] Настройка и редактирование GRUB

  • Grub Customiser — графическая программа для настройки GRUB

  • Grub2 — Ubuntu Documentation (англ. )

  • GRUB от А до Я

  • GRUB — загрузчик системы
2017/03/27 02:04
  • StartUp Manager — редактор настроек загрузки Ubuntu
2013/11/07 19:42
  • UNetbootin — создание загрузочной флешки
2015/12/04 13:50
  • Вопросы и Ответы #20
2010/04/04 21:37
  • Восстановление GRUB
2021/03/28 22:59
  • Восстановление GRUB Legacy
2009/09/23 20:11
  • Загрузка и установка системы прямо из iso-образа
2017/03/02 22:00
  • Загрузчик системы GRUB Legacy
2016/09/08 14:44
  • Настройка внешнего вида загрузчика GRUB
2013/03/20 16:54
  • Очистка загрузочного меню GRUB
2013/10/22 17:18

GRUB,
Система,
Администрирование,
HOWTO,
Индексная статья

1)

Основной Единый Загрузчик

Boot to OS/2, OS Select For DRAM > 64M

Другие идентичные по назначению опции: OS Select For DRAM > 64M.

Функция BIOS Boot to OS/2 предлагает пользователю выбрать режим загрузки компьютера, совместимый со старыми версиями операционной системы OS/2. Пользователю доступны два варианта – Yes, No (Да, Нет).

Содержание статьи

  • Принцип работы
  • Стоит ли включать опцию?

Принцип работы

Для начала разберемся с тем, что вообще представляет собой OS/2 и для чего понадобилась подобный параметр. OS/2 является операционной системой, разработанной IBM для ряда своих компьютеров в конце 1980-x гг., и разрабатывавшейся вплоть до середины 1990-х. В настоящее время операционная система OS/2 используется лишь в некоторых компьютерных сетях, а поддержка ее со стороны IBM была прекращена в середине 2000-х гг.

Поскольку в настоящее время ОС OS/2, а тем более,  ее старые версии, для которых и предназначена опция, используются довольно редко, то она не может считаться актуальной для большинства пользователей современных компьютеров и представляет большей частью лишь исторический интерес. Тем не менее, мы все же приведем краткую информацию о ней.

На момент своей разработки ОС OS/2 считалась передовой и по многим параметрам превосходила Microsoft Windows. Тем не менее, работа этой операционной системы отличалась рядом технических особенностей. В частности, в старых версиях этой операционной системы применялся метод работы с памятью, несовместимый с методами, которые используются в других операционных системах, например, в системах семейства Microsoft Windows, что приводило к неправильному определению объема оперативной памяти. Причем эта особенность обычно проявляется лишь в том случае, если в персональном компьютере установлено более 64 МБ памяти.

Таким образом, опция BIOS Boot to OS/2 предназначена для того, чтобы устранить недостаток при определении объема оперативной памяти, и операционная система OS/2 старых версий могла бы функционировать на компьютере без проблем.

Следует отметить, что начиная с версии OS/2 Warp v3.0, управление памятью в операционной системе OS/2 было приведено в соответствие с общепринятыми стандартами, и поэтому надобность в этой опции отпала. Кроме того, даже в версиях  OS/2, более старых, чем Warp v3.0, может быть установлен специальный пакет обновлений FixPacks, который также исправляет тот метод, при помощи которого операционная система работала  с оперативной  памятью.

Стоит ли включать опцию?

Ответ на этот вопрос зависит от того, какая ОС установлена на персональном компьютере. Если в этом качестве используется какая-либо операционная система семейства Microsoft Windows, то необходимо  указать значение опции No. То же самое относится и к тому случаю, если на персональном компьютере установлена ОС семейства IBM OS/2 версии Warp v3.0 или более новая, а также к тому случаю, если используется операционная система OS/2 старой версии, но при этом установлен пакет обновлений от IBM FixPacks.

Если же на персональном компьютере используется операционная система OS/2 версии более старой, чем Warp v3.0, и не установлен пакет FixPacks, то должен быть выбран вариант Yes.

Что произойдет в том случае, если все же включить данную опцию на компьютере с операционной системой Microsoft Windows или операционной системой OS/2 Warp v3. 0? В случае операционной системы OS/2 новых версий, а также исправленных при помощи пакета обновлений FixPacks, компьютер неправильно определит количество доступной оперативной памяти. В том случае, если в системе будет присутствовать 64 МБ ОЗУ или менее, то компьютеру будет доступно всего лишь 16 МБ ОЗУ. При условии наличия в компьютере памяти большего объема, чем 64 МБ, системе будет доступно всего лишь 64 МБ.

В случае включения опции в компьютере с операционной системой Microsoft Windows, помимо проблем с определением памяти в операционной системе, после загрузки операционная система будет работать с ошибками.

Порекомендуйте Друзьям статью:

Загрузка операционной системы — javatpoint

следующий →
← предыдущая

Загрузка — это процесс запуска компьютера. Это может быть инициировано аппаратно, например, нажатием кнопки или командой программного обеспечения. После включения ЦП не имеет программного обеспечения в своей оперативной памяти, поэтому некоторые процессы перед выполнением должны загрузить программное обеспечение в память. Это может быть сделано аппаратно или микропрограммно в ЦП или отдельным процессором в компьютерной системе.

Перезагрузка компьютера также называется перезагрузкой, что может быть » hard «, например, после включения электропитания ЦП, или » soft «, когда питание не отключено. В некоторых системах программная загрузка может опционально очистить ОЗУ для ноль. Жесткая и программная загрузка может быть инициирована аппаратным обеспечением, например нажатием кнопки или программной командой. Загрузка завершается, когда достигается рабочая система среды выполнения, обычно операционная система и некоторые приложения.

Процесс возврата компьютера из спящего режима не требует загрузки; однако восстановление его из состояния гибернации делает. Как минимум, некоторые встроенные системы не требуют заметной последовательности загрузки для начала работы и при включении могут запускать рабочие программы, хранящиеся в ПЗУ. Все компьютерные системы являются конечными автоматами, и перезагрузка может быть единственным способом вернуться в назначенное нулевое состояние из непреднамеренного заблокированного состояния.

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

Последовательность загрузки

Загрузка — это последовательность запуска, которая запускает операционную систему компьютера при его включении. Последовательность загрузки — это первоначальный набор операций, которые компьютер выполняет при включении. Каждый компьютер имеет последовательность загрузки.

1. Загрузчик: Компьютеры с центральным процессором могут выполнять только код, находящийся в памяти системы. Современные операционные системы, программный код и данные приложений хранятся в энергонезависимой памяти. Когда компьютер впервые включается, он первоначально должен полагаться только на код и данные, хранящиеся в энергонезависимых частях системной памяти. Операционная система во время загрузки толком не загружается, а аппаратное обеспечение компьютера не может выполнять многие сложные системные действия.

Программа, которая запускает цепную реакцию, заканчивающуюся загрузкой всей операционной системы, является загрузчиком начальной загрузки. Единственная задача загрузчика — загрузить другое программное обеспечение для запуска операционной системы.

2. Загрузочные устройства: Загрузочное устройство — это устройство, с которого загружается операционная система. Современный BIOS ПК (базовая система ввода-вывода) поддерживает загрузку с различных устройств. К ним относятся локальный жесткий диск, оптический дисковод, дисковод для гибких дисков, сетевая карта и USB-устройство. BIOS позволит пользователю настроить порядок загрузки. Если порядок загрузки установлен на:

  • CD-привод
  • Жесткий диск
  • Сеть

BIOS сначала попытается загрузиться с компакт-диска, а если это не удастся, то он попытается загрузиться с жесткого диска, а если это не удастся, то он попытается загрузиться из сети, и если это не удастся , то он вообще не запустится.

3. Последовательность загрузки: Существует стандартная последовательность загрузки, которую используют все персональные компьютеры. Сначала ЦП запускает в памяти инструкцию для BIOS. Эта инструкция содержит инструкцию перехода, которая переходит к программе запуска BIOS. Эта программа запускает самотестирование при включении питания (POST), чтобы убедиться, что устройства, на которые будет полагаться компьютер, работают правильно. Затем BIOS выполняет настроенную последовательность загрузки, пока не найдет загрузочное устройство. Как только BIOS находит загрузочное устройство, BIOS загружает загрузочный сектор и передает выполнение в загрузочный сектор. Если загрузочным устройством является жесткий диск, это будет главная загрузочная запись (MBR).

Код MBR проверяет таблицу разделов на наличие активного раздела. Если он найден, код MBR загружает загрузочный сектор этого раздела и выполняет его. Загрузочный сектор часто зависит от операционной системы, однако в большинстве операционных систем его основная функция заключается в загрузке и выполнении ядра операционной системы, которое продолжает запуск. Предположим, что активного раздела нет или загрузочный сектор активного раздела недействителен. В этом случае MBR может загрузить дополнительный загрузчик, который выберет раздел и загрузит его загрузочный сектор, который обычно загружает соответствующее ядро ​​операционной системы.

Типы загрузки

В операционной системе существует два типа загрузки.

  1. Холодная загрузка: Когда компьютер запускается в первый раз или находится в выключенном состоянии и включает кнопку питания для запуска системы, этот тип процесса запуска компьютера называется холодной загрузкой. Во время холодной загрузки система прочитает все инструкции из ПЗУ (BIOS), и операционная система будет автоматически загружена в систему. Эта загрузка занимает больше времени, чем горячая или теплая загрузка.
  2. Теплая загрузка: Горячая или горячая загрузка — это когда компьютерные системы перестают отвечать или зависают, после чего системе разрешен перезапуск во время состояния. Это также называется перезагрузкой. Причин такого состояния множество, и единственным решением является перезагрузка компьютера. Перезагрузка может потребоваться при установке нового программного или аппаратного обеспечения. Системе требуется перезагрузка для внесения изменений в конфигурацию программного или аппаратного обеспечения, а иногда системы могут вести себя ненормально или не реагировать должным образом. В таком случае система должна быть принудительно перезагружена. Чаще всего Ctrl+Alt+Del Кнопка используется для перезагрузки системы. В противном случае в некоторых системах для перезагрузки системы может быть доступна внешняя кнопка сброса.

Процесс загрузки операционной системы

Когда наш компьютер включен, он может быть запущен аппаратно, например, нажатием кнопки или программной командой, центральный процессор компьютера (ЦП) не имеет программного обеспечения в своей основной памяти, есть некоторый процесс, который должен загрузить программное обеспечение в основной памяти, прежде чем она может быть выполнена. Ниже приведены шесть шагов для описания процесса загрузки в операционной системе, например:

Шаг 1: После включения компьютерной системы BIOS (базовая система ввода-вывода) выполняет ряд действий или функциональных тестов программ, хранящихся в ПЗУ, вызываемых по POST (питание- on Self Test), который проверяет, исправны ли периферийные устройства в системе.

Шаг 2: После того, как BIOS выполнил предзагрузочные действия или тест функциональности, он считывает загрузочную последовательность из CMOS (Common Metal Oxide Semiconductor) и ищет основную загрузочную запись в первом физическом секторе загрузочного диска в соответствии с последовательностью загрузочных устройств, указанной в CMOS . Например, если последовательность загрузочных устройств:

  • Дискета
  • Жесткий диск
  • компакт-диск

Шаг 3: После этого главная загрузочная запись будет сначала искать на гибких дисках. Если не найдено, жесткий диск будет искать главную загрузочную запись. Но если главная загрузочная запись отсутствует даже на жестком диске, то поиск будет выполняться дисководом компакт-дисков. Если система не может прочитать основную загрузочную запись ни из одного из этих источников, в ПЗУ отображается » Загрузочное устройство не найдено » и система остановлена. При обнаружении главной загрузочной записи с определенного загрузочного диска загрузчик операционной системы, также называемый загрузчиком начальной загрузки, загружается из загрузочного сектора этого загрузочного диска в память. Загрузчик — это специальная программа, которая находится в загрузочном секторе загрузочного диска.

Шаг 4: Загрузчик начальной загрузки сначала загружает файл IO.SYS . После этого MSDOS.SYS загружается файл, который является основным файлом операционной системы DOS.

Шаг 5: После этого файл MSDOS. SYS ищет интерпретатор команд в файле CONFIG.SYS , а когда находит, загружает в память. Если в файле CONFIG.SYS не указан интерпретатор команд, файл COMMAND.COM загружается как интерпретатор команд по умолчанию для операционной системы DOS.

Шаг 6: Последним загружаемым и выполняемым файлом является файл AUTOEXEC.BAT , содержащий последовательность команд DOS. После этого отображается подсказка. Мы видим букву загрузочного диска, отображаемую в компьютерной системе, что указывает на то, что операционная система была успешно установлена ​​в системе с этого диска.

Что такое двойная загрузка

Когда в системе компьютера установлены две операционные системы, это называется двойной загрузкой. В такой системе может быть установлено несколько операционных систем. Но чтобы знать, какая операционная система должна загружаться, загрузчик, который понимает несколько файловых систем и несколько операционных систем, может занять загрузочное пространство.

После загрузки он может загрузить одну из операционных систем, доступных на диске. На диске может быть несколько разделов, каждый из которых содержит операционную систему разного типа. Когда компьютерная система включается, программа диспетчера загрузки отображает меню, позволяющее пользователю выбрать используемую операционную систему.


Следующая темаМногоуровневая структура операционной системы

← предыдущая
следующий →

Загрузка в операционной системе: определение, типы и процесс

Операционная система загружается с помощью процедуры начальной загрузки, часто называемой начальной загрузкой. Это приложение загружает операционную систему или другую более крупную программу, например загрузчик. Процесс загрузки включает в себя включение компьютера. Память ЦП пуста при первом включении. После загрузки операционной системы в оперативную память и включения компьютера он готов к приему пользовательских команд. Операционная система компьютера запускается в процессе загрузки при включении. Первоначальный набор задач, которые компьютер выполняет при включении, известен как последовательность загрузки.

У каждого компьютера есть процесс загрузки. Ядро находится, загружается в оперативную память и выполняется загрузчиком начальной загрузки. В некоторых системах ядро ​​загружается после того, как простой загрузчик загружает с диска более сложную загрузочную программу. Перезапуск компьютера иногда называют перезагрузкой. В зависимости от того, прерывается ли питание на протяжении всего процесса, перезагрузка может быть «мягкой» или «жесткой». На некоторых ПК программная загрузка может дополнительно очистить ОЗУ до нуля.

Аппаратное обеспечение, такое как нажатие кнопки или команды программного обеспечения, может запускать аппаратную и программную загрузку. Когда достигается функционирующая система среды выполнения, обычно операционная система и несколько приложений, загрузка ОС завершается. Получите глубокое понимание процессов, связанных с созданием, развертыванием, защитой и масштабированием программ, а также опыт работы с пользовательским интерфейсом, бизнес-логикой и стеками баз данных с помощью лучшего курса Full Stack Developer с размещением. С Cloud Labs вы можете учиться на практике, работая над ключевыми проектами, которые воспроизводят реальную веб-разработку. Здесь мы поймем, что означает загрузка в операционной системе, как загрузить ОС и типы.

Что загружается в операционной системе?

Устройства нашего компьютера получают питание и инициализируются, когда мы нажимаем кнопку питания. Поскольку оперативная память является энергозависимой памятью, наша основная память, предназначенная для хранения инструкций, изначально будет пустой. Итак, ПЗУ, постоянное или энергонезависимое запоминающее устройство будет содержать небольшой набор инструкций.

Эти инструкции будут отправлены в ЦП, где они будут выполняться и использоваться для проверки каждого элемента системного оборудования. Мы будем предупреждены звуковыми сигналами или даже уведомлениями на экране, если возникнут какие-либо аппаратные проблемы. Аппаратное обеспечение тестируется, а затем процесс загрузки операционной системы продолжает загружать операционную систему.

Веб-разработчики пользуются большим спросом и будут востребованы до тех пор, пока компании продолжают использовать Интернет в своих интересах. Вы можете принять участие в огромном количестве вакансий в области веб-разработки. Любой онлайн-курс по веб-дизайну и разработке, доступный вам с сертификатом.

Давайте разберемся, какие существуют типы ботинок.

Типы загрузки

 В компьютерах существует 2 типа загрузки: холодная и горячая загрузка  

1. Холодная загрузка

Это называется «холодной загрузкой», когда компьютер запускается в первый раз или когда он выключается, а кнопка питания нажимается для перезагрузки системы. Операционная система автоматически загружается в систему во время холодной загрузки компьютера, когда машина считывает все инструкции BIOS (ПЗУ). По сравнению с горячей или горячей загрузкой эта загрузка занимает больше времени.

2. Теплая загрузка

Компьютерные системы могут перезагружаться при включении во время горячей загрузки или горячей загрузки компьютеров, когда они зависают или переходят в состояние отсутствия ответа. Альтернативный термин для этого — перезагрузка. Единственным средством от этого недуга, имеющего несколько причин, является перезагрузка компьютера.

Нам может потребоваться перезагрузка после установки нового программного или аппаратного обеспечения. Систему необходимо перезапустить, чтобы применить изменения конфигурации программного или аппаратного обеспечения; в противном случае он может работать неправильно или реагировать неправильно. В этом случае систему необходимо перезагрузить. Нажмите клавиши Ctrl+Alt+Del, чтобы перезагрузить компьютер. В противном случае некоторые системы могут иметь кнопку сброса снаружи, которую можно нажать для перезапуска устройства.

Давайте пошагово разберемся с процессом загрузки компьютера.

Шаги процесса загрузки в операционной системе

Вот 6 шагов в процессе загрузки, которые происходят во время процесса загрузки в ОС.

Шаг 1. Загрузка BIOS

Первый шаг включает включение питания. Он питает основные части, включая процессор и BIOS, электричеством.

Шаг 2: BIOS: самотестирование при включении

Это первый тест, выполняемый BIOS. Кроме того, этот тест выполняет предварительную проверку оперативной памяти компьютера, дисководов, устройств ввода-вывода и т. д. Кроме того, система издает звуковой сигнал в случае возникновения ошибок.

Шаг 3: Загрузка ОС

Загрузочная последовательность, хранящаяся в CMOS (Common Metal Oxide Semiconductor), считывается BIOS после успешного завершения POST. На основе загрузочной последовательности он будет искать основную загрузочную запись (MBR) на загрузочных устройствах, таких как гибкие диски, компакт-диски и жесткие диски.

Будет отображено сообщение «Загрузочное устройство не найдено», и если MBR не будет найдено ни в одном из них, произойдет сбой системы. Если MBR будет обнаружен, BIOS запустит уникальное прикладное программное обеспечение, называемое загрузчиком, которое в конечном итоге запустит операционную систему.

Шаг 4: Конфигурация системы

Драйверы устройств помещаются в память после загрузки ОС, чтобы обеспечить правильную работу наших гаджетов.

Шаг 5: Загрузка системных утилит

На этом этапе системные утилиты, такие как антивирус и регулятор громкости, загружаются в память.

Шаг 6: Аутентификация пользователя

Система предложит пользователю ввести свои учетные данные, если какая-либо аутентификация пользователя настроена. Как только система получит действительные учетные данные, она обычно запускает оболочку GUI или CLI.

Двойная загрузка операционной системы

Двойная загрузка операционной системы — это установка двух операционных систем на один компьютер, известная как двойная загрузка. На такой компьютер можно установить множество операционных систем. Чтобы выбрать, какую операционную систему загружать, загрузчик, знакомый с различными файловыми системами и операционными системами, может занимать загрузочное пространство.

После загрузки можно загрузить одну из операционных систем на диске. На диске может быть несколько разделов, на каждом из которых находится своя операционная система; когда компьютерная система загружается в операционной системе, программа диспетчера загрузки отображает меню, чтобы пользователь мог выбрать операционную систему для использования.

Это ваша возможность приобрести знания, необходимые для успешной и продолжительной карьеры в области технологий, разработать портфель проектов, подходящий для трудоустройства, и добиться независимости; адаптируемый инженер-программист с лучшим курсом для разработчиков полного стека от KnowledgeHut с предложениями о трудоустройстве.

Как загружается система?

Все компоненты системы получают питание и инициализируются при нажатии кнопки питания. ЦП должен выполнять инструкции после инициализации. BIOS, краткий набор инструкций, загружается из ПЗУ. После завершения самотестирования при включении питания (POST) BIOS находит загрузочную последовательность из CMOS.

  • Находит первое загрузочное устройство на основе загрузочной последовательности.
  • Загружает инструкции из основной загрузочной записи, содержащейся в логическом секторе 0, с первого загрузочного устройства.
  • Информация о загрузчике, который может загружать операционную систему, содержится в этом сборнике инструкций.
  • Эта информация о загрузчике относится к конкретным операционным системам; например, GRUB — это загрузчик для Linux (GRand Unified Bootloader).
  • После этого операционная система загружается в память загрузчиком.
  • Наконец, все важные системные файлы и драйверы помещаются в память, и операционная система получает управление.

Зачем нужна загрузка?

Вот несколько причин, по которым процесс загрузки необходим.

Читайте также: