Запуск linux через grub консоль

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

GRUB

GRUB (GRand Unified Bootloader 1) ) — программа-загрузчик операционных систем.
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 — изменение стандартного пункта загрузки и/или времени показа меню. Рассмотрим же, как это делается.

Читайте также:  Linux edit command save

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

По умолчанию стандартный пункт (выделенный при показе меню) — верхний в списке. После установки Ubuntu она окажется наверху, а Windows, например, будет последним пунктом.

Значением «GRUB_DEFAULT» является номер пункта меню, который должен быть выбран стандартным. Чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. Есть два варианта:

Нумерация пунктов меню начинается с нуля. Значение по умолчанию — 0, поэтому и выбирается первый пункт.

Пятому сверху пункту будет соответствовать значение 4, второму — 1, первому — 0. В вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню.

Команда sudo grub-reboot 1 однократно выбирает второй пункт меню по-умолчанию (только для следующей загрузки),

Или же можно указать значение идентификатора (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 .

Читайте также:  Linux сделать пользователя админом

Если значение установлено в 0, то задержки не будет, однако вызвать меню можно, удерживая при загрузке Shift

Параметр «GRUB_HIDDEN_TIMEOUT_QUIET» отвечает за отображение таймера во время паузы. Если его значение «true» таймер отображаться не будет, а со значением «false» будет.

Чтобы GRUB отображал меню со списком установленных операционных систем, без нажатия клавиш вызова меню (например Shift или Esc ) необходимо:

sudo gedit /etc/default/grub

Источник

Аварийный запуск системы из командной строки GRUB

Админ в маленьком городе

Краткая инструкция по загрузке Windows и Linux из командной строки GRUB на случай каких-либо неполадок. Сразу оговорюсь, что сам grub2 должен запускаться, если же вы не можете попасть в консоль grub2, то вам скорее всего потребуется переустановка grub.

Запуск Linux с помошью командной строки GRUB

Нам понадобится написать всего 3 строчки: «set root«, «linux» и «initrd» и в конце дать команду «boot».

set root=(hd0,5)
linux /boot/vmlinuz-2.6.32-generic root=/dev/sda5
initrd /boot/initrd.img-2.6.32-generic
boot

Немного поясню — в строке set root указываем на корневой раздел linux. В моем случае это был «hd0,5», он же «/dev/sda5», то есть пятый раздел первого диска. Список доступных разделов диска можно получить, выполнив команду ls.

Далее, командой linux, указываем загружаемое ядро. Полное название ядра знать не обязательно, просто пишем «linux /boot/vmlinuz» и нажимаем tab. Консоль сама допишет правильный результат. У меня был предложен выбор между старым и новым ядром. Только в конце строки не забудьте дописать параметр root=/dev/sda5 или что там у вас.

Для старта системы этого уже должно хватить. Осталось выполнить команду boot. В некоторых случаях перед выполнением «boot» попробуйте дополнительно выполнить команду initrd, как описано выше в примере.

Запуск Windows из командной строки GRUB

Процесс запуска Windows из консоли GRUB ещё проще. Как и в случае с Linux в начале указываем корневой раздел, где находится Windows. В моем случае окошки установлены в /dev/sda1. После чего, отдаем команду chainloader +1, которая заставляет grub2 передать дальшейшее управление загрузкой Windows-загрузчику. Даем команду boot на запуск системы и наблюдаем загрузку винды. Пример:

set root=(hd0,1)
chainloader +1
boot

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 8

  1. 2018-03-08 в 11:13:03 | Сергей Единственный работающий мануал на весь рунет. Респектище автору.
  2. 2018-09-22 в 20:03:52 | Роман Если не знаете на каком разделе установлен Линукс (вдруг), можно каждый раздел проверить командой типа ls(hd0,1)/ (со слешем в конце).
  3. 2018-11-04 в 16:01:30 | Ильшат Спасибо.
  4. 2018-11-22 в 09:16:11 | cryptoparty Привет, а как сделать так, чтобы каждый раз это не прописывать?
  5. 2018-11-22 в 11:49:25 | dre@mer Для этого нужно прописать соотвествующие изменения в загрузчик GRUB. Обычно нужные строки добавляются автоматически при установке системы.
  6. 2019-11-06 в 07:30:43 | Рустам Спасибо автору. Что делать, если видит только разделы msdos, но я знаю что там есть Linux
  7. 2020-03-06 в 01:43:50 | Александр Спасибо автору.
Читайте также:  Linux командная строка изменить права

Источник

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

У меня на домашнем компьютере стоит две операционные системы, Windows 7 и Linux (Arch). Причем вторая появилась относительно недавно. Да и особых знаний о новой (для меня) ОС не было. Тем не менее систему я поставил и даже относительно настроил под себя. Энтузиазм и программерское любопытство меня пересиливало, поэтому, в качестве ознакомления, стал экспериментировать с различного рода пакетами. К сожалению, не всегда вчитываясь в детали.
Решил я переставить Grub, а точнее обновиться до Grub2. (Слышал я такое мнение, что в духе Linux принято держать последнюю версию пакета… Про изменения Grub2 хорошо написано тут.)
Ну и как результат «спешной» установки — перестала грузиться система. Единственное за что можно было зацепиться — это приглашение командной строки:

По нажатию на Tab вываливается список возможных команд. Их существенно меньше чем в командной строке Linux, но их достаточно для загрузки системы. Почитав про grub тут я решил загрузить Windows, все-таки тут я пока себя чувствую увереннее. Для этого нужно было указать где находиться загрузчик ОС и передать ему управление:

grub> root (hd0,2) [Устанавливаем корневой раздел и монтируем. Тут главное помнить, на каком разделе стоит операционная система]

Запись (hd0,2) означает устройство диска номер 0 (мастер), раздел номер 2.
что соответствует устройству /dev/sda2 (в моем случае). У вас это может быть или /dev/hd2, или еще что-нибудь, в зависимости от дистрибутива. Нумерация устройств идет по-порядку и начинается с (hd0,1) или /dev/sda1.
Далее вводим:

grub> chainloader +1 [пробел перед «+» важен. сhainloader — передает управление загрузкой по цепочке другому загрузчику. В моем случае это был NTLDR]
grub> boot

NTLDR — это загрузчик Windows.
Система стала грузиться, а раз это дало результат — можно копаться дальше (все-таки не Windows теперь предмет изучений).
Перезагружаемся и вводим снова.

grub> root (hd0,6)
grub> linux /boot/vmlinuz26 root=/dev/sda6 [Загружает указанное linux-ядро (/boot/vmlinuz26) с параметрами(root=/dev/sda6)]

Тут стоит различать команду root (hd0,6) и параметр root=/dev/sda6. Первое монтирует раздел к среде выполнения. А второе указывает где находиться root загружаемой ОС. В моем случае ядро и корень оказались на одном разделе, хотя это может быть не так.

grub> initrd /boot/kernel26.img [Загружает указанный initrd-образ]
grub> boot

  • для загрузки Windows вместо root (h d0,2) надо набирать rootnoverify (hd0,1). Нумерация устройств начинается с (hd0,0), а не (hd0,1). А командой rootnoverify вы устанавите корневое устройство, но не смонтируете его.
  • для загрузки Linux поменяется другая команда: вместо linux вам понадобится команда kernel (полный аналог, даже параметры теже).

UPD: дописал про отличия загрузки с grub от grub2. Спасибо bliznezz

Источник

Оцените статью
Adblock
detector