Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
26 Май 2018, 21:27:45
Новости:

Страниц: [1] 2   Вниз
Печать
Автор Тема: Загрузчик системы GRUB2  (Прочитано 28163 раз)
0 Пользователей и 1 Гость смотрят эту тему.
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« : 19 Июнь 2010, 13:29:26 »

I. GRUB2 - первые шаги
При первом сравнении grub2 со старым grub самым весомым различием оказывается измененная структура файлов конфигурации. Настройка grub2 производится теперь по принципиально иному принципу.
Первое же, что бросается в глаза - отсутствие привычного многим "/boot/grub/menu.lst", в котором были прописаны пункты загрузки, таймаут меню и прочие настройки. Где это теперь?
В grub2 основным файлом конфигурации является "/boot/grub/grub.cfg". Однако, не торопитесь править его так, как привыкли это делать с "menu.lst". При внимательном прочтении мы видим в начале файла "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" генерируется автоматически с использованием нескольких скриптов. Поэтому после следующего обновления grub2 ваш "grub.cfg" будет создан заново, и все ваши правки будут утрачены. Но это мы подробнее рассмотрим чуть ниже.
Перейдем к основным файлам конфигурации grub2. Как и упомянуто выше, главным файлом, собственно, отвечающим за загрузочное меню, является "/boot/grub/grub.cfg". Кроме него имеются файл "/etc/default/grub" и папка "/etc/grub.d". Рассмотрим их подробнее.

/etc/default/grub
Данный файл содержит в себе основные настройки для grub2. через него, собственно, они и изменяются. Для наглядности ниже приводится примерное содержимое этого файла:

Код:
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 - изменение стандартного пункта загрузки и/или времени показа меню. Рассмотрим же, как это делается.

Изменение стандартного пункта загрузки
По умолчанию стандартный пункт (выделенный при показе меню) - верхний в списке. После установки Синяя птица она окажется наверху, а Windows, например, будет последним пунктом. после обновления ядра первым пунктом списка становится загрузка с новым ядром. это происходит потому, что именно первый пункт загрузки является стандартным по умолчанию.
за это, собственно, отвечает параметр "GRUB_DEFAULT". Значением его является номер пункта в меню загрузки, который должен быть выбран стандартным. причем нумерация начинается с нуля. значение по умолчанию - 0, поэтому и выбирается первый пункт. для того. чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. тут есть два варианта: просмотреть содержимое "/boot/grub/grub.cfg" и сосчитать, какой по счету окажется нужная запись, или же перезагрузиться и более наглядно посмотреть то же самое в меню загрузки (перед этим побегайте стрелочками по меню, чтобы остановить таймер). Второй вариант отличается более наглядным представлением, что проще для неопытного пользователя. в обоих случаях не забывайте о порядке нумерации - 0, 1, 2, 3 и так далее. то есть, пятому сверху пункту будет соответствовать значение 4, второму - 1, первому - 0. в вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню.
Кроме задания конкретного пункта есть еще другие интересный варианты. Например, в качестве значения можно указать "saved" - тогда при загрузке будет выбран тот пункт, который был загружен в прошлый раз.
или же можно указать точное название пункта. В данном случае оно должно быть именно таким, каким мы его видим в "/boot/grub/grub.cfg". при этом значение должно указываться в кавычках! Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за съехавшей нумерации

Например, если в "grub.cfg" пункт меню выглядит так:

Код:
menuentry "Bluebird, Linux 2.6.32-020632rc6-generic" {
        recordfail=1
....
}
то и значение параметра "GRUB_DEFAULT" должно указываться именно в виде

Код:
GRUB_DEFAULT="Bluebird, Linux 2.6.32-020632rc6-generic"

Изменение времени отображения меню
По умолчанию меню загрузки отображается 10 секунд, после чего загружается стандартный пункт (если раньше не нажат enter и не выбран другой пункт, что останавливает таймер). С изменением задержки все совсем просто.
За эту задержку отвечает параметр "GRUB_TIMEOUT" (не путайте с "GRUB_HIDDEN_TIMEOUT"!). Значение задается в секундах. Обратите внимание, что цифра указывается в кавычках. в нашем примере это значение - 2, то есть меню отображается две секунды.
кроме того, есть одна хитрость. Если поставить значение "-1", то меню будет отображаться до тех пор, пока пользователь не выберет какой-либо пункт. то есть без всяких таймеров и утекающих секунд.

"Скрытое" меню
В случае, если на компьютере установлена только Bluebird, меню загрузки по умолчанию не будет отображаться, а grub2 будет загружать вас напрямую в систему. однако же, иногда может возникнуть необходимость загрузиться с другим ядром или же запустить проверку памяти. для этого предусмотрено "скрытое меню".
за него отвечает параметр "GRUB_HIDDEN_TIMEOUT". в случае, когда установлены другие ОС, этот параметр закомментирован (# в начале строки). в случае с единственной ОС он будет активен. значение его задает задержку в секундах. grub2 приостановит загрузку на заданное количество секунд, давая пользователю возможность вызвать меню загрузки, нажав Escape.
если значение установлено в 0, то задержки не будет. Однако, пользователь все равно сможет вызвать отображение меню, удерживая при загрузке shift.
параметр "GRUB_HIDDEN_TIMEOUT_QUIET" отвечает за отображение таймера во время паузы. при значении "true" таймер показан не будет. "false" - будет отображаться.

Изменение стандартных параметров загрузки ядра
Иногда бывает необходимо загружать ядро системы с какими-либо особыми параметрами. Например, для корректной работы специфического оборудования. В этом случае весьма полезен будет параметр "GRUB_CMDLINE_LINUX_DEFAULT". он отвечает за те параметры, с которыми запускаются linux-ядра при загрузке. значение его по умолчанию - "quiet splash", что приводит показу графической заставки при запуске системы без показа какой-либо текстовой информации. вы можете добавить необходимые вам параметра запуска ядра, приведя это значение к виду "quiet splash your_param1 your_param2", то есть дописав через пробел нужные параметры.
Пример: вместо того, чтобы добавлять новые параметры, мы уберем стандартные. Отключим графическую заставку и "молчаливый режим". заменим

Код:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

на

Код:
GRUB_CMDLINE_LINUX_DEFAULT=""

теперь все наши пункты загрузки linux-ядер будут преобразованы в verbose mode, то есть режим загрузки без графической заставки и с выводом на экран текстовой информации о загрузке компонентов системы, что позволяет следить за процессом загрузки и выявлять неполадки.

/etc/grub.d
Эта папка содержит в себе скрипты, которые используются при создании "grub.cfg". при обновлении grub2 они находят все установленные на компьютере системы и ядра и формируют в "grub.cfg" меню загрузки, которое мы и видим. Два основных из них - "10_linux" и "30_os-prober" отвечают за поиск linux-ядер и остальных ОС на других разделах соотвественно.
Файл "40_custom" позволяет добавлять свои пункты загрузки. это может быть полезно, если вы, например, хотите добавить какие-то особые варианты загрузки системы.
Пример: добавляем verbose-mode (режим загрузки без графической заставки, с текстовым отображением процесса загрузки), позволяющий контролировать процесс загрузки системы. Для этого мы немного отредактируем обычный пункт загрузки. Допустим, он выглядит так (в "/boot/grub/grub.cfg"):

Код:
menuentry "Bluebird, 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 из строки "linux". Ну, и для понятности изменим название самого пункта. В итоге получаем:

Код:
echo "adding verbose mode" >&2
menuentry "Bluebird, 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 не является обязательной. Она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении grub2.

Примечание: файл "40_custom" должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!

Применение изменений.
После того, как мы отредактировали и сохранили наши файлы, радоваться еще рано. Теперь нужно закончить дело, обновив наш "/boot/grub/grub.cfg". Это довольно просто - нужно всего лишь выполнить команду

Код:
sudo update-grub

Она выполнит скрипты в папке "/etc/grub.d" и применит заданные в "/etc/default/grub" параметры. После этого смело перезагружаемся и видим, что все работает как надо. Ну или не работает...
если все прошло успешно, то в выоде консоли вы увидите спсиок найденных grub2 ОС и linux-ядер. выглядит все это примерно так:

тот же самый "update-grub" происходит и при обновлении ядра.

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

В grub2 имеется еще одно важное отличие от старого grub. связано оно с нумерацией жестких дисков и их разделов.
в grub нумерация физических дисков и нумерация разделов начинались одинаково - с нуля. первый физический диск (sda в системе) обозначался "hd0", второй (sdb) - "hd1", и так далее. это же осталось и в grub2.
нумерация же разделов диска изменилась. Если в grub первый раздел первого диска (sda1) именовался "hd0,0", четвертый (sda4) - "hd0,3", то теперь, в grub2, цифра раздела в grub2 соотвествует цифре раздела в системе. то есть, sda1 теперь будет "hd0,1" (а не "hd0,0"), sdb4 - "hd1,4".
проще говоря, нумерация дисков идет с нуля, а нумерация разделов - с единицы!

Резервная копия
Перед каким-либо редактированием обязательно сделайте бэкап файлов конфигурации. Например, выполнив последовательно эти строки:

Код:
datev=$(date +%Y_%m_%d)
mkdir -p ~/.grub.bak/$datev
cd ~/.grub.bak/$datev
mkdir -p boot/grub etc/default
cp /boot/grub/grub.cfg boot/grub
cp -Rp /etc/grub.d etc
cp /etc/default/grub etc/default
(можно сохранить данный скрипт в /usr/bin, назвать, к примеру, "grub-backup" и дать права 755. теперь для резервного копирования grub2 достаточно будет выполнить команду "grub-backup")

II. Украшательства

Установка фонового изображения

Вы можете выбрать и установить полноцветное изображение в качестве фона в меню загрузки grub2. размер изображения должен соответствовать разрешению grub2 (по умолчанию - 640x480, задается в "/etc/default/grub"), формат файла - png или tga.
вы можете установить готовый набор из нескольких подходящих для grub2 изображений, выполнив команду

Код:
sudo apt-get install grub2-splashimages

(не путайте пакет grub2-splashimages с пакетом grub-splashimages, который не совместим с grub2!). Эти изображения будут помещены в папку "/usr/share/images/grub", которую нужно будет добавить в файл конфигурации (см. ниже).
фоновое изображение задается в файле "/etc/grub.d/05_debian_theme". найдите в нем строку такого вида:

Код:
for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do

те, кто более-менее знаком с bash, узнают прием с перечислением в фигурных скобках. для остальных: все на так сложно, как может показаться. в первых фигурных скобках (в нашем примере - "{/boot/grub,/usr/share/images/desktop-base}") перечислены папки, в которых grub2 будет искать подходящие для установки изображения. далее (после слэша) указано имя файла изображения (без расширения!), которое мы хотим установить в качестве фона (здесь - "moreblue-orbit-grub"). вторые фигурные скобки ("{png,tga}") определяют расширения файлов, которые grub2 будет пытаться использовать в качестве фона. заметьте, что пункты в фигурных скобках перечисляются через запятую и не разделяются пробелами!
по умолчанию изображения ищутся в папках "/boot/grub" и "/usr/share/images/desktop-base". изображения из пакета grub2-splashimages у нас распаковались в "/usr/share/images/grub". поэтому мы должны добавить эту папку в список мест, где grub2 будет искать изображения. добавим еще один пункт в первые фигурные скобки.
сразу же определимся с выбором картинки. я выбрал последнюю, переименовав файл для удобства в "winter.tga". заменим имя ("moreblue-orbit-grub") на имя выбранной картинки (в моем случае - "winter"). в итоге получим такую строку:

Код:
for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/winter.{png,tga} ; do

заметьте, что между именем файла и вторыми фигурными скобками должна стоять точка!
Как это работает: grub2 последовательно просматривает заданные папки и ищет в них файл с заданным именем и одним из перечисленных расширений. цикл прекращается как только найдено первое подходящее изображение. таким образом, файл с подходящим именем присутствует в нескольких папках, будет взят файл из той папки, которая раньше указана в списке. аналогично, если изображение представлено в разных форматах (например, "image.png" и "image.tga") - выбран будет файл с тем расширение, которое первым указано во вторых фигурных скобках.
интересности:

    * вы можете добавить любую папку с изображениями, владельцем которой вы являетесь. Это упростит добавление/изменение изображений. однако, заметьте: при этом root должен иметь как минимум права r-x на эту папку. также не стоит добавлять папки с шифрованного home-раздела, т.к. на момент загрузки он еще не примонтирован. лучше просто сделайте себя владельцем папки "/usr/share/images/gub" и храните все картинки там.
    * помимо PNG и TGA поддерживается также формат JPEG. но на текущий момент реализована только поддержка jpeg с 8-битным цветом. поэтому используйте jpeg-файлы только если вы понимаете, что такое глубина цвета и как сохранить изображение в 8-битном цвете. для того, чтобы добавить поддержку jpeg-файлов, приведите вторые фигурные скобки к такому виду: "{png,tga,jpg,jpeg}".


Настройка цвета пунктов меню

Цвета пунктов меню также задаются в файле "/etc/grub.d/05_debian_theme". найдите ближе к концу файла следующую секцию:

Код:
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
  set color_normal=black/black
  set color_highlight=black/light-gray
else
EOF
fi
Здесь и настраиваются цвета для пунктов меню загрзки. строка "set color_normal" отвечает за цвета обычного (невыделенного) пункта меню. "set color_highlight" - за цвета выделенного пункта. Вот эти две строки мы и будем изменять.
значение каждой из этих строк представляет собой два цвета, разделенные слэшем. первый цвет - это цвет текста. Второй цвет - цвет фона строки.
вот список доступных цветов:

black - черный
blue - синий
brown - коричневый
cyan - голубой
dark-gray - темно-серый
green - зеленый
light-cyan - светло-голубой
light-blue - светло-синий
light-green - ярко-зеленый
light-gray - серый
light-magenta - розовый
light-red - светло-красный
magenta - пурпурный
red - красный
white - белый
yellow - желтый


заметьте, что black (черный) при использовании в качестве второго параметра (т.е. цвета фона) в результате даст прозрачный фон, без какой-либо заливки, текст прямо поверх картинки. использование black в качестве цвета текста дает черный текст.
Пример:

Код:
 set color_normal=black/black
  set color_highlight=black/light-gray
в моем случае заданы следующие параметры: обычный пункт - черный текст, прозрачный фон; выделенный пункт - черный текст, серая подсветка строки.
Примечание: не перепутайте вышеописанную секцию с секцией "set_mono_theme", что в начале файла! Последняя отвечает за цвета меню в том случае, если фоновое изображение отсутствует.

III. Восстановление GRUB2

После, например, установки Windows, вы можете столкнуться с тем, что при загрузке будет отображаться только меню загрузки Windows, а меню grub2 вы не увидите вовсе, что приведет к невозможности загрзуить что-либо кроме Windows. такое происходит из-за того, что Windows при установке затирает загрузочную область жесткого диска (так назывемый MBR-раздел), удаляя оттуда запись загрузчика grub2.
для восстановления grub2 вам понадобится живая система проекта Синяя птица 10.0 и старше или любой другой современной системы, включающей grub2 в свой дистрибутив. Архитектура живого диска должна соответствовать архитектуре вашей системы! Узнать текущую архитектуру можно с помощью команды "arch" или "uname -m". "i686" соответствует 32-битной архитектуре, "amd64" - 64-битной

Востановление GRUB2 с живого диска
Загрузитесь с вашего живого диска (предварительно выберите меню устройств загрузки при наличии такового или же установите cd-привод первым boot device в BIOS). запустите консоль.
для начала нам нужно будет узнать, на каком диске и на каком разделе установлена система проекта Синяя птица. Если вы не помните этого - воспользуйтесь командой

Код:
sudo fdisk -l

для работы нам понадобится /-раздел (root). примонтируйте его командой

Код:
sudo mount /dev/sda5 /mnt

В нашем случае корневой раздел системы - /dev/sda5, вы же используйте свое значение. если у вас /boot сделан отдельным разделом, его также надо будет примонтировать:

Код:
sudo mount /dev/sda3 /mnt/boot

Также монтируем папку /dev нашей live-системы как /dev нашего root-раздела:

Код:
sudo mount --bind /dev /mnt/dev

и папку /proc как /proc root-раздела:

Код:
sudo mount --bind /proc /mnt/proc

теперь выполняем следующую команду:

Код:
sudo chroot /mnt /bin/bash

Теперь вы - root-пользователь в системе, корневым разделом которой считается /mnt, то есть корневой раздел вашей настоящей системы. И вот, мы готовы обновить MBR-раздел жесткого диска, переустановив grub2. но для начала нам нужно определиться, с какого физического диска загружается наш компьютер. если у вас один жесткий диск, разбитый на разделы - он будет именоваться sda. если несколько - первый из них - sda, второй - sdb, и так далее. если вы не знаете, какой жесткий диск установлен в качестве загрузочного, посмотрите соответствующую опцию в BIOS. обычно жесткий диск указан по модели (например, так: ST9160310AS). чтобы узнать, какому диску в системе соответствует данная модель, выполните такую команду:

Код:
for d in /dev/sd[a-z] ; do echo "$d: $(sudo hdparm -I $d | grep -i 'model')" ; done

Кроме того, в Синяя птица 10.1 можно воспользоваться утилитой palimpsest ("Система - Устройства - Управление дисками").
Определившись с загрузочным диском (в нашем примере - sda), ставим на него grub2:

Код:
grub-install /dev/sda

Если вы столкнетесь с какими-либо ошибками - попробуйте перезапустить команду с ключом --recheck:

Код:
grub-install --recheck /dev/sda

Обратите внимание: мы устанавливаем grub2 на физический диск (sda, sdb...), а не на раздел (sda3, sdb1...)!
если все прошло успешно, выходим из chroot командой

Код:
exit

Отмонтируем наши диски и папки:
/dev нашей live-системы:

Код:
sudo umount /mnt/dev

/proc live-системы

Код:
sudo umount /mnt/proc

boot-раздел, если таковой монтировался отдельно:

Код:
sudo umount /mnt/boot

и собственно, корневой раздел:

Код:
sudo umount /mnt

Все! перезагружаемся, восстанавливаем порядок загрузки в BIOS (ставим жесткий диск на первое место) и смотрим результат.

Востановление GRUB2 из живой системы. Способ 2 (без chroot)
Нам опять же понадобится живая система Синяя птица 10.0 (и старше) или другой системы с поддержкой grub2. В отличие от предыдущего способа, мы не будем запускать установщик через chroot, что позволит сократить количество требуемых действий.
Итак, загружаемся с выбранного живого диска, запускаем консоль. Вместо использования chroot мы воспользуемся ключом "--root-directory". Но для начала убедимся, что данная опция поддерживается нашей live-системой. Если вы работаете с Синяя птица 10.0, можно не волноваться. В ином случае выполните

Код:
grub-install --help

Если в описании опций присутствует вышеупомянутый ключ "--root-directory" - все в порядке. Теперь нам нужно примонтировать корневой раздел системы. Если вы не помните, на каком разделе стоит система, вам поможет

Код:
sudo fdisk -l

Определившись с корневым разделом, монтируем его. пусть в нашем примере это будет sda5:

Код:
sudo mount /dev/sda5 /mnt

Если у вас выделен отдельный boot-раздел, примонтируйте и его. допустим. это sda2

Код:
sudo mount /dev/sda2 /mnt/boot

Теперь переходим собственно к установке grub2. ключ "--root-directory" позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:

Код:
sudo grub-install --root-directory=/mnt /dev/sda

Как и в предыдущем способе, grub2 устанавливается на физический диск, а не на раздел! в качестве диска нужно указать тот диск, который установлен загрузочным в bios.
Если все пройдет успешно, установщик выведет сообщение об успешном завершении и список обнаруженных жестких дисков, которые были добавлены в "device.map". если все это есть - отмонтируем диски, перезагружаемся и радуемся. Если будет выведен неполный список дисков - отредактируйте файл "device.map" в корневой папке установленной системы (в описанном примере - "/mnt/boot/grub/device.map") и поправьте его, добавив остальные диски и поправив нумерацию. Файл должен иметь вид

Код:
(hd0) /dev/sda
(hd1) /dev/sdb

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

Загрузка системы при частичной неработоспособности GRUB2

В некоторых случаях может оказаться так, что отдельнные файлы grub2 будут повреждены (например, в результате сбоя при выполнение "update-grub"). однако, иногда есть шанс загрузиться в свою систему и восстановить grub2 из нее без необходимости полной переустановки оного.
если при загрузке grub2 вы видите сообщения об ошибках - не спешите предаваться панике. все может быть еще вполне поправимо. на данный момент наша главная цель - попасть в консоль grub2. вы можете сразу увидеть ее на экране, или же будет предложено что-либо нажать или выбрать для запуска консоли. в любом случае, если вам удалось запустить консоль - радуйтесь, шансы на спасение увеличены!
консоль grub2 похожа на более привычную оболочку bash. здесь также поддерживается автодополнение команд по нажатию tab. если же нажать tab в пустой строке - мы увидим полный список доступных команд. что ж, приступим к процедуре запуска системы. для начала нам нужно задать root-раздел, то есть раздел, на который установлена наша система. в моем случае это "/dev/sda5". (в grub2 разделы задаются в виде "hd*,*". если вы мало знакомы с нумерацией разделов в grub2 - почитайте пункт "нюанс с нумерацией дисков и разделов" в I главе). root-раздел задается командой

Код:
set root=(hd0,5)

В моем случае это "hd0,5", он же "/dev/sda5", то есть пятый раздел первого диска. полный список доступных разделов можно получить уже знакомой многим командой "ls". она выдаст что-то вроде

Код:
(hd0,1) (hd0,2) (hd1.1) (hd2,1)

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

Код:
(hd0,5): filesystem is ext2

Некоторых, наверно, смутит упоминание ext2. Не волнуйтесь, так и должно быть (для файловых систем ext2/3/4 в grub2 используется общий драйвер). После того, как задан root-раздел, мы должны указать, какое ядро следует загрузить. это задается командой "linux". Укажите то ядро, с которым вы обычно загружаетесь. в моем случае команда будет выглядеть так:

Код:
linux /boot/vmlinuz-2.6.32-020632rc6-generic root=/dev/sda5

Не пугайтесь, если вы не помните номер вашего ядра. Просто напишите "linux /boot/vmlinuz" и нажмите tab. На экран будет выведен список доступных ядер.
Обратите внимание на параметр "root=/dev/sda5" в конце строки! здесь также нужно указать ваш root-раздел, но уже в более привычном формате. Без этого система может не загрузиться.
вместе с ядром следует загрузить initrd (это образ, содержащий все необходимое для определения жесткого диска, монтирования корневой ФС и продолжения зарузки системы). Делается это командой "initrd". Нужно загрузить initrd-образ, версия которого соответствует версии загружаемого ядра:

Код:
initrd /boot/initrd.img-2.6.32-020632rc6-generic

После этого можно загрузить систему командой

Код:
boot

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

И еще один полезный совет: вы можете легко и быстро сделать себе инструкцию по аварийному запуску системы.
Откройте ваш "/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
}

Нам нужно оставить только три строки: "set root", "linux" и "initrd". чтобы не забыть, допишем в конце команду "boot". В строке linux заменим "UUID=...." на ваш корневой раздел и уберем лишние параметры. В итоге получим такие строки:

Код:
set root=(hd0,5)
linux /boot/vmlinuz-2.6.32-020632rc6-generic root=/dev/sda5
initrd /boot/initrd.img-2.6.32-020632rc6-generic
boot

Осталось распечатать это на бумажке и сохранить оную в надежном месте. Теперь у вас всегда под рукой инструкция по загрзке на случай каких-либо неполадок!
Если же вышеприведенный метод не сработал (ядро не загрузилось или же вы вовсе не можете попасть в консоль grub2) и ничего не загружается - тут уж дело идет к переустановке grub2, что описана выше.

Загрузка Windows аналогичным образом
В случае неработоспособности системы проекта Синяя птица вы можете загрузить другую установленную систему при наличии таковой. Для linux-систем схема будет той же: set root - linux - initrd - boot.
Для Windows же все будет даже проще. дня начала так же укажем корневой раздел. На этот раз уже тот, на котором установлена Windows. в моем случае это "/dev/sda1", и команда будет иметь такой вид:

Код:
set root=(hd0,1)

Также может понадобится такая команда:

Код:
drivemap -s (hd0) ${root}

После этого мы скомандуем grub2 передать управление загрузкой Windows-загрузчику NTLDR. Для этого просто выполним

Код:
chainloader +1

и наконец дадим команду на запуск:

Код:
boot

Если все прошло успешно - наслаждаемся загрузкой винды.
В случае, если на разных разделах установлено более одной версии Windows, нам нужно узнать, на каком из разделов находится NTLDR-загрузчик. это лучше сделать заранее, посмотрев строку "set root" в пункте загрузки Windows файла "/boot/grub/grub.cfg"

Статья подготовлена по материалам форума сообщества Ubuntu
« Последнее редактирование: 28 Июль 2010, 15:47:28 от admin » Записан

k5220
Новичок
*

Карма: +1/-2
Offline Offline

Пол: Мужской
Сообщений: 27


WWW
« Ответ #1 : 13 Декабрь 2010, 23:23:49 »

 Смеющийся статья хорошая, но вот точно для криворуких... (да я сам такой) тяжко будет. Ну сам постоянно со своими экспериментами сижу в тупике.  А ещё я неделю назад (где была система Altair поставил Винду, я знал что будет траббла с загрузчиком, вот пока ещё не восстановил.

загружаюсь с Лив-СД :
Система \ Администрирование \ Менеджер загрузки    ( не работает эта утилита с Лив Сд (( думал через неё посмотрю.
Записан
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« Ответ #2 : 14 Декабрь 2010, 10:05:03 »

Используйте в точности инструкции из раздела Востановление GRUB2 из живой системы. Способ 2 (без chroot) и всё восстановится
Записан

Maximus
Новичок
*

Карма: +0/-0
Offline Offline

Сообщений: 2


« Ответ #3 : 19 Февраль 2011, 11:04:27 »

Здрасте. помогите пожалуйста. При загрузке /boot/grub/grub.cfg в терминале пишется НЕТ ДОСТУПА. не могу поменять очередность загрузки ОС.
Записан
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« Ответ #4 : 21 Февраль 2011, 20:42:53 »

Maximus, надо читать FAQи хотябы иногда - http://forum.integra-l.ru/index.php?topic=1381.0
Записан

Maximus
Новичок
*

Карма: +0/-0
Offline Offline

Сообщений: 2


« Ответ #5 : 22 Февраль 2011, 22:37:52 »

Пробовал конечно же SUDO. пишет command not found

Записан
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« Ответ #6 : 24 Февраль 2011, 17:43:21 »

регистр символов имеет огромное значение, ибо это не Винда
Записан

tungus1977
Новичок
*

Карма: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 7


« Ответ #7 : 20 Март 2011, 21:24:44 »

здравствуйте!хотел поменять фон в загрузчике grub2 ,как было описано,но файл etc/grub.d/05_debian_theme у меня совсем по другому написан. Не подскажете в какую строку вносить изменения.
Записан
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« Ответ #8 : 20 Март 2011, 23:25:55 »

Строчка
wallpaper="...
на мысли не наводит?
Записан

tungus1977
Новичок
*

Карма: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 7


« Ответ #9 : 22 Март 2011, 23:06:46 »

нет не наводит,спасибо за совет.
Записан
Stalcer
Новичок
*

Карма: +0/-0
Offline Offline

Сообщений: 1


« Ответ #10 : 07 Октябрь 2011, 16:07:38 »


  Произошёл мне не понятный сбой. После чего комп в безопасном режиме загружался .
Я попытался обновить загрузчик  "sudo update grub" после чего отказал и безопасный режим .
Все варианты описанные выше  перепробовал !!!  Не один не восстановил   Грустный
Вот последние строки при загрузки :
/dev/sda5:clean,3330997/625856 files 2152666/2500096 blocks mountall : Connection was disconnected before a reply was received .
init:udevtrigger post-stop process (457) terminated with status!
Хотя при загрузки с живого диска на /dev/sda5 внешне  всё вроде как в порядке . По крайней мере он не "чистый " . Или может я чё то не так понимаю ?
Заранее благодарен.



« Последнее редактирование: 07 Октябрь 2011, 16:49:25 от Stalcer » Записан
AcetonKZ
Старожил
****

Карма: +32/-4
Offline Offline

Сообщений: 328


WWW
« Ответ #11 : 07 Октябрь 2011, 20:07:00 »

Цитировать
Я попытался обновить загрузчик  "sudo update-grub" после чего отказал и безопасный режим .
может так?! или так?!
Код:
sudo grub-update
« Последнее редактирование: 07 Октябрь 2011, 20:13:58 от AcetonKZ » Записан



П@лыч
Новичок
*

Карма: +0/-0
Offline Offline

Сообщений: 5


« Ответ #12 : 26 Декабрь 2011, 10:11:19 »

Здравствуйте! Помогите пожалуйста подружить Альтлинукс и Убунту на одном компьютере. Груб альта видит, но не грузит лило вообще убунту не видит.
Записан
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« Ответ #13 : 26 Декабрь 2011, 11:06:51 »

Поставь GRUB2 или добавь нужный пункт в LiLo вручную
Записан

П@лыч
Новичок
*

Карма: +0/-0
Offline Offline

Сообщений: 5


« Ответ #14 : 26 Декабрь 2011, 11:25:28 »

Так искра же вроде с груб2 уже идет, в лило как добавить не знаю.
Записан
Страниц: [1] 2   Вверх
Печать
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines

Страница сгенерирована за 0.162 секунд. Запросов: 20.