как узнать где находится grub
Ubuntu66.ru — новости, уроки, помощь, поддержка.
Многие пользователи системы Linux имеют на своём компьютере, как правило два и более, установленных дистрибутива на жёстком диске, которые отображаются в самом начале загрузки компьютера, в загрузчике GRUB (англ. GRand Unified Bootloader ).
Иногда, после установки/переустановки той или иной системы мы применяем такой инструмент, как Boot-Repair для восстановления загрузчика GRUB основной (рабочей) системы. Затем перезагружаем компьютер, чтобы посмотреть и убедиться, что загрузчик восстановлен.
Но не многие знают, что для того чтобы убедиться в этом и посмотреть на GRUB, совсем не обязательно покидать систему и перезагружать компьютер. Для этой цели может служить утилита, которая есть в репозитоии, под названием grub-emu (эмулятор grub). Вы можете найти у становить её из Центра приложений или выполнить команду в терминале на установку (Ubuntu/Linux Mint):
sudo apt-get install grub-emu
По окончании установки вы можете использовать утилиту, выполнив команду в терминале:
Чтобы закрыть окно эмулятора, необходимо прежде закрыть терминал и окно эмулятора закроется.
Примечание. В самом начале эмулятор grub открывается, а чрез несколько секунд выдаёт ошибку и предлагает нажать любую клавишу, т.к. он пытается загрузить систему. Не трогайте ничего и он вновь чрез несколько секунд восстановится.
Таким образом, вы не выходя из системы, можете посмотреть и проверить свой загрузчик GRUB.
Ссылка на источник compizomania
26-01-2013.
Куда поставился загрузчик Grub?
поидее первый раздел на sda
На раздел, где находится корневая фс
Система установилась? Загляните в /var/log/installer/syslog, там должен быть лог от update-grub.
Кстати, update-grub только перегенерирует конфиг GRUB, но не устанавливает его никуда.
Точно? То есть установщик выполняет во время установки все команды на разделе с корневой файловой системой, поэтому он, не получив от меня информации, куда ставить grub, просто сконфигурировал его в корневой фс, выполнив сразу update-grub?
Система поставилась, загрузчик в MBR остался виндоусовский. Сейчас попробую посмотреть лог инсталлера.
Крайний раз когда ошибался с разделом было так. Установщик не должен повреждать чужие разделы.
Скорее всего, он никуда и не поставился.
Но почему же тогда выполнялось «update-grub»?
Потому что нужно конфиг граба сгенерировать. Конфиг не зависит от места установки, зато процесс установки зависит от местоположения конфига.
Просто нужно руками сделать grub-install /dev/sda из установленной системы и всё.
Удваиваю. У меня подобное было, когда на флешку debootstrap-ом Дебиан ставил. update-grub отдельно, grub-install отдельно.
В логе нашёл только: Jul 8 20:41:54 grub-installer: info: Installing grub on «
Так всё-таки получается он никуда не поставился? Мне важно знать, не навредил ли инсталлятор другим разделам с осями (Windows XP и Windows 7).
Тебя спросили, затирать ли загрузочную запись. Груб стоит в любом случае (ну или лило).
aptititude search grub
Нет, не навредил. Кроме того, «на раздел» он не будет ставиться дальше, чем в загрузочный сектор (файлы будут только на том, который /boot).
Можете убедиться в этом, выполнив dpkg-reconfigure grub-pc (или поковыряться в базе debconf руками).
Где загрузочный загрузчик Grub установлен на компьютере? [dубликат]
Где загрузочный загрузчик, такой как Grub, установлен вообще?
Когда я устанавливаю 12.04 вдоль боковых окон на разных разделах моего диска, я столкнулся с выбором «Устройство для установки загрузчика». Если я правильно ее понимаю, нужно указать, где установить загрузчик Grub,
, который я нашел в Интернете, чтобы указать диск, содержащий разделы для ОС, а не какой-либо раздел на диск. Например. disk sda, а не раздел sda1, sda2.
Интересно, где загрузочный загрузчик установлен на диске?
Установлен ли он на любом из существующие разделы для ОС и персональных данных, или же он имеет свой собственный раздел, который также отображается, например от системного монитора Ubuntu?
Спасибо и приветствую!
10 ответов
Загрузочный загрузчик должен быть установлен там, где BIOS ищет что-то для загрузки. Чтобы все было просто, у вас обычно есть дисковод, на котором загружается ваш компьютер, вы устанавливаете на этом диске систему GNU / Linux, и загрузчик тоже туда попадает.
Единственное, что вам нужно от загрузчика: Действительно:
Что BIOS может найти, что он способен находить и загружать вашу операционную систему (с Linux, вам просто нужен загрузчик, чтобы каким-то образом получить доступ к ядру, и если вы используя один, образ initrd.)
Насколько вам известно эти две точки, вы устанавливаете его там, где это более удобно, и где BIOS будет искать его.
BIOS обычно ищет загрузчики в главной загрузочной записи жестких дисков, маленькую область в начале диска, где вы можете поместить некоторый код для запуска. Вы также можете установить загрузчик в начале раздела.
Загрузочные файлы обычно достаточно малы, чтобы вписаться в эти небольшие области, и даже если они этого не делают, они должны что-то там положить, чтобы BIOS загружал загрузчик.
lilo простой загрузчик, который установлен в этих областях. grub немного больше, и поэтому вы устанавливаете какой-то код в этих областях, который затем загружает еще один код из раздела диска (где grub считается «установленным», где находится его файл конфигурации, вдоль с двоичным кодом это обычно устанавливается как системный раздел /boot, где для удобства также размещаются ядра и initrds).
В этом случае, если он запрашивает диск, это означает, что он просит вас о том, на какой основной загрузочной записи должен быть установлен grub, то есть на диске, с которого вы будете загружать компьютер. Эта часть grub будет установлена только на диске MBR. Остальное, вероятно, устанавливается в тот же раздел, что и / или /boot/ системы Ubuntu, которую вы устанавливаете (и этот доступ доступен из Ubuntu, ищите каталоги /boot/grub/ или /grub/).
Исследуем процесс загрузки Linux
(C) В.А.Костромин, 2007
(версия файла от 27.09.2007 г.)
Этап 3: Загрузчик 2 этапа операционной системы
3.5. Загрузчик GRUB
Как GRUB именует диски?
Где размещается GRUB?
Кроме основных модулей stage1 и stage2 может присутствовать еще несколько, более специфических: stage2_eltorito для установки GRUB на компакт-диск, nbgrub и pxegrub для сетевой загрузки.
Задача stage1 в том, чтобы загрузить stage2 или stage1_5 с диска. При этом, размещение этих файлов кодируется в терминах цилиндр/головка/сектор, и значит на этом этапе еще не требуется распознавание типа файловой системы.
После загрузки stage1_5 и stage2 GRUB получает доступ к файловой системе на диске, а значит, получает возможность не только загрузить ядро, но и прочитать конфигурационный файл, найти и вывести фоновую картинку-заставку (она хранится в файле splash.xpm.gz), может выполнить команды своей оболочки.
Стоит отметить, что если запись stage1_5 по каким-либо причинам недоступна, то вторичный загрузчик может найти ядро по его физическому адресу. То есть, в этом случае GRUB использует методологию своих предшественников типа LILO.
Конфигурирование GRUB
В листинге 7 приведен пример файла /boot/grub/grub.conf, с помощью которого мы и разберем приемы настройки GRUB.
Листинг 7. Пример файла /boot/grub/grub.conf
Вначале обратите внимание на две секции этого файла, начинающиеся со слова «title». Каждая из этих секций предназначена для организации загрузки какой-то из операционных систем, имеющихся на ваших дисках. После слова «title» (в той же строке) стоит название этого варианта (вы можете задать его произвольным образом). Эти названия появятся в виде пунктов меню загрузки.
Кроме местоположения ядра в строке, начинающейся словом «kernel», заданы некоторые параметры начальной загрузки, о которых мы поговорим в следующем разделе. Пока что обратите внимание на параметр «root=», имеющийся в этой строке. Как мы увидим ниже, этот параметр задает местоположение коневой файловой системы Linux. В отличие от команды «root (hd0,1)» конфигурационного файла здесь уже используется метод именования дисков, принятый в Linux.
Секция, обеспечивающая загрузку Windows, нас не очень интересует, поэтому скажем о ней очень кратко. Строки, начинающиеся словом «map», в секции, задающей загрузку Windows 98, заставляют Windows полагать, что она установлена в первый раздел первого диска. Строка «rootnoverify» сообщает GRUB, что требуется загрузить систему с Windows-раздела, не пытаясь его смонтировать, а строка «chainloader +1» требует от GRUB передать управление загрузчику Windows.
Теперь давайте вернемся к началу конфигурационного файла, где находятся несколько строк (в примере их 3), которые определяют поведение GRUB на этапе выдачи пользователю начального меню загрузки. Эти строки можно назвать секцией глобальных настроек, как это было в случае с LILO.
Команда «timeout=10» определяет период времени (в секундах) в течение которого GRUB ожидает, пока пользователь выберет нужный вариант загрузки, введет дополнительные команды или задаст нужные параметры загрузки. Если по истечении этого времени пользователь не нажал ни одной клавиши, будет автоматически выбран вариант загрузки, определяемый командой «default=n».
Число различных параметров, которые можно задать в конфигурационном файле GRUB, довольно велико, так что приводить здесь описания каждого из них не имеется возможности. Тем более, что необходимые сведения можно легко найти в многочисленных статьях, доступных в Интернет (смотри, например, статьи 21). Кроме того, самое полное руководство по GRUB (но на английском языке) вы найдете на сайте GNU.ORG (см. 32). Отметим только еще раз, что в отличие от LILO, GRUB не требует переустановки после внесения изменений в свой конфигурационный файл.
Как происходит загрузка с GRUB
При инсталляции GRUB полуторный загрузчик из файла fsname_stage1_5 (естественно, соответствующий файловой системе диска) записывается в последовательные сектора жесткого диска, следующие за загрузочным сектором на нулевой дорожке диска. Размер этой области (в байтах) равен числу секторов на дорожке минус 1, умноженному на 512, но полуторный загрузчик достаточно мал (посмотрите размер файла fsname_stage1_5 на своем диске), чтобы здесь разместиться.
В процессе загрузки системы первичный загрузчик загружает только первый сектор полуторного загрузчика, задача которого состоит в том, чтобы развернуть весь полуторный загрузчик, обеспечив тем самым доступ к файловой системе жесткого диска. После получения управления полуторный загрузчик, в свою очередь, загружает в память вторичный загрузчик.
Как уже упоминалось выше, если полуторный загрузчик не найден, может быть сразу загружен вторичный загрузчик. В таком случае он может самостоятельно подгрузить полуторный загрузчик. Выбор полуторного загрузчика, соответствующего файловой системе диска, осуществляется путем обращения к предопределенному адресу на том диске или разделе, который указан как загрузочный. По этому адресу прописан признак, по которому вторичный загрузчик и выбирает нужный полуторный загрузчик.
Содержание
Первые шаги
При первом сравнении GRUB со старым GRUB Legacy самым весомым различием оказывается измененная структура файлов конфигурации.
И об этом нас предупреждают не просто так. Ведь «grub.cfg» генерируется автоматически с использованием нескольких скриптов. Поэтому после следующего обновления GRUB ваш «grub.cfg» будет создан заново, и все ваши правки будут утрачены.
Кроме файла «grub.cfg», отвечающего за загрузочное меню, имеются файл «/etc/default/grub» и папка «/etc/grub.d«. Рассмотрим их подробнее.
/etc/default/grub
Данный файл содержит в себе основные настройки для GRUB. Через него, собственно, они и изменяются. Для наглядности ниже приводится примерное содержимое этого файла:
Изменение стандартного пункта загрузки
Значением «GRUB_DEFAULT» является номер пункта меню, который должен быть выбран стандартным. Чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. Есть два варианта:
Или же можно указать значение идентификатора (id), оно должно быть именно таким, каким мы его видим в «/boot/grub/grub.cfg«. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.
Пример
Если в «grub.cfg» пункт меню выглядит так:
То значение параметра «GRUB_DEFAULT» должно указываться именно в виде:
Изменение времени отображения меню
«Скрытое» меню
В случае, если на компьютере установлена только Ubuntu, меню загрузки по умолчанию не будет отображаться, а GRUB будет загружать вас напрямую в систему. Однако же, иногда может возникнуть необходимость загрузиться с другим ядром или же запустить проверку памяти. Для этого предусмотрено «скрытое меню» за него отвечает параметр «GRUB_HIDDEN_TIMEOUT».
Параметр «GRUB_HIDDEN_TIMEOUT_QUIET» отвечает за отображение таймера во время паузы. Если его значение «true» таймер отображаться не будет, а со значением «false» будет.
Чтобы GRUB отображал меню со списком установленных операционных систем, без нажатия клавиш вызова меню (например Shift или Esc ) необходимо:
Убираем подменю
Чтобы раскрыть все меню используем такой параметр:
Это бывает нужно если хотим загружаться не с первой строчки.
Особые случаи
Поведение меню отличается от заданного переменными GRUB_TIMEOUT и GRUB_HIDDEN_TIMEOUT когда предыдущая загрузка не завершилась успехом или предыдущаяя загрузка происходила в режиме восстановления. Подробно это описано далее, в разделе «Защита от зацикливания на перезагрузке». Полную справку по параметрам файла настроек можно дав команду:
Изменение стандартных параметров загрузки ядра
Вы можете добавить необходимые вам параметра запуска ядра, приведя это значение к виду «quiet splash your_param1 your_param2», то есть дописав через пробел нужные параметры.
Пример
Чтобы заменить графическую заставку во время загрузки на информацию о загрузке компонентов системы (это позволит проследить за процессом загрузки и выявить неполадки). Необходимо заменить строчку:
/etc/grub.d
Эта папка содержит в себе скрипты, которые используются для создания файла «grub.cfg». При обновлении GRUB они находят все установленные на компьютере системы и ядра и формируют в файле «grub.cfg» меню загрузки, которое мы и видим. Два основных из них:
Пример
Добавляем режим загрузки без графической заставки, с текстовым отображением процесса загрузки (verbose mode). Для этого мы немного отредактируем обычный пункт загрузки. допустим, он выглядит так (в «/boot/grub/grub.cfg«):
Для того, чтобы сделать из этого verbose mode, нам нужно убрать опции quiet и splash и изменим название самого пункта. В итоге получаем:
Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении GRUB.
Команды консоли GRUB
Чтобы попасть в консоль, нужно нажать клавишу C во время отображения меню загрузки.
Команда сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).
Данная команда выводит содержимое заданного файла, используется в формате:
linux
Аналог команды «kernel» в GRUB Legacy. Загружает указанное Linux-ядро:
initrd
Загружает указанный initrd-образ. Используется так:
chainloader
Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:
Для (загрузчика Windows) можно использовать:
После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root hd(*,*)» не всегда корректно срабатывает. более предпочтительным вариантом является «set root» (см. ниже)
Весьма универсальная команда для изменения различных параметров. Служит для задания значений переменных и используется в формате:
search
Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:
lsfonts
Команда отобразит список загруженных в настоящий момент шрифтов.
При использовании в чистом виде выведет список доступных команд. В формате:
Выведет справку по всем командам, начинающимся на «r».
Отобразит справку по команде «search»
reboot
background_image
Позволяет «на лету» изменить фоновое изображение. Используется в формате:
Дает замечательную возможность посмотреть на выбранную картинку в действии, избегая лишних перезагрузок. В сочетании с заменой цветов через set позволит довольно быстро подобрать подходящий вариант оформления.
terminal_output.console
Применение изменений
После этого смело перезагружаемся и видим, что все работает как надо.
Нюанс с нумерацией дисков и разделов
Если в GRUB Legacy первый раздел первого диска (sda1) именовался «hd0,0». То в GRUB, первый раздел первого диска (sda1) теперь будет «hd0,1».
Создание дополнительного меню загрузки
Суть в том, что вместо уже знакомого «grub.cfg» можно загрузить свой файл настройки загрузочного меню со своей конфигурацией. Это позволяет создать дополнительное меню с другими пунктами, настройками, оформлением и т.д. Итак, создадим наш новый файл конфигурации. Создавать с нуля не будем, а скопируем «grub.cfg», дав новое имя:
Поскольку файл скопируется с правами 444, выставим ему права на запись:
Теперь открываем его в любимом текстовом редакторе и изменяем:
Строкой ниже мы можем задать цвета текста. Изменяются они так же, как и в »/etc/grub.d/05_debian_theme« (см. Настройка внешнего вида загрузчика GRUB). Можно проделать один интересный трюк: уберите строки с set color_highlight и else теперь настройка будет такой:
Закончив с настройкой, перейдем к пунктам меню, они идут ниже. Измените их, удалите ненужные и добавьте новые, пересортируйте на свой вкус.
Настроив свой файл, сохраните его Ctrl + Shift и закройте.
Теперь необходимо добавить дополнительное меню. Для этого в файле »/etc/grub.d/40_custom« добавим запись такого вида:
Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию, но перед этим проверьте новое меню на работоспособность.
Обновите свой «grub.cfg» выполнив команду:
В качестве образца пример файла «custom.cfg» (файл урезан до необходимого минимума):
Защита от зацикливания на перезагрузке
Зачем это сделано
А что если.
А что если отключить?
Отключаем.
Как это работает
Для того, что бы убрать необходимость интерактивного вмешательства в процесс загрузки нужно установить переменную GRUB_RECORDFAIL_TIMEOUT в /etc/defaul/grub в то количество секунд, которые меню GRUB-а будет ждать ввода в случае когда recordfail=1. Сохранить изменения и обновить GRUB (sudo update-grub).
Финт с GRUB_RECORDFAIL_TIMEOUT может не сработать в некоторых (старых) версиях GRUB. Тогда нужно редактировать /etc/grub.d/00_header. Нужно найти функцию make_timeout (), которая выглядит примерно так:
и заменить в ней строчку
После этого финт с GRUB_RECORDFAIL_TIMEOUT заработает. Нужно сохранить изменения и обновить GRUB (sudo update-grub).