Ru-Board.club
← Вернуться в раздел «Программы»

» GNU GRUB 2 (grub 1.9*–2.*); BURG

Автор: ASE_DAG
Дата сообщения: 01.11.2011 02:14

GRUB 2



GNU GRUB 2 (ГНУ Груб-2, в контексте этой темы и просто «Груб») — универсальный загрузчик для GNU и иных юникс-подобных операционных систем, пришедший на замену первому Грубу, ныне именуемому GRUB Legacy.

Имеет форк под названием
BURG (Бург), ориентированный на использование красочных темок оформления и принципиально ничем не отличающийся.


| Офсайт | Википедия | Фрешмит | Охлох | Мануал | Убунтовики | Арчвики |


Некоторые типовые задачи

Загрузка системы, отсутствующей в меню.
Если по каким-либо причинам установленная на машине система не присутствует в загрузочном меню Груба, а загрузить ее надо, то это можно сделать и вручную. Для этого придется перейти в командную строку (нажать «c»), определить корневой раздел требуемой системы и выполнить несложную последовательность команд.

Определение раздела
Проще всего эта подзадача решается, если вы аккуратно назначили разделам метки и помните их.

grub> search --label DEBIAN --set root

Если не помните, то несколько сложнее.

grub> ls # выводим перечень всех доступных разделов
(hd0) (hd0,msdos2) (hd0,msdos3) (hd0,msdos1)
grub> # порядок перечисления показывает физическое расположение; номер — последов-ть создания;
grub> ls (hd0,2) # пытаемся угадать раздел; тип табл. разделов (здесь — msdos) можно опускать;
Раздел hd0,2: Тип файловой системы ext3 - Метка "DEBIAN" - Время последнего изменения 2011-09-15 00:00:00 Thursday, UUID 06e6493d-2a52-432b-8459-5e1dccb277d6 — Начало раздела: 2048 — Полный размер 15202304 секторов
grub> # угадали!
grub> set root=(hd0,2)

А если не задавали метки вовсе, то совсем нехорошо — придется опираться на содержимое ФС.

grub> ls (hd0,2)/
sbin/ var/ opt/ sys/ boot/ run/ etc/ vmlinuz initrd.img initrd.img.old lib/ home/ mnt/ tmp/ proc/ media/ lost+found/ lib64/ srv/ selinux/ dev/ vmlinuz.old bin/ lib32/ root/ usr/
grub> # на ГНУ/Линукс похоже
grub> cat (hd0,2)/etc/issue.net # можно убедиться дополнительно
Debian GNU/Linux wheezy/sid
grub> set root=(hd0,2)

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

Загрузка ГНУ/Линукса

grub> linux /vmlinuz root=LABEL=DEBIAN
grub> initrd /initrd.img # кстати, везде работает автодополнение (TAB)
grub> boot

Это если метка у раздела была. Если нет, первый пункт будет иметь вид:

grub> linux /vmlinuz root=/dev/sda2 # (hd0) — sda, (hd1) — sdb

Если ссылки /vmlinuz и /initrd.img указывают не на то ядро и образ ОЗУ, что вы хотите загрузить, то укажем их явно:

grub> linux /boot/vmlinuz-2.6.38-2-amd64 root=LABEL=DEBIAN # используем автодополнение (TAB)
grub> initrd /boot/initrd.img-2.6.38-2-amd64
grub> boot

Загрузка Виндоўса

grub> chainloader +1 # просто передаем управление по цепочке
grub> boot


Переустановка Груба.
Груб, как правило, устанавливается в главную загрузочную запись (MBR), которая на жестком диске одна, и которую некоторое ПО (например, инсталлятор Виндоўс) ультимативно перезаписывает чем-либо иным. Т. о. перед пользователем может встать задача восстановления Груба путем переустановки. Сама по себе (пере)установка выполяется простой командой grub-install [OPTION] install-device. Помимо этого, быть может, вам нужно выполнить обновление загрузочного меню (update-grub), например для того, чтобы добавить в него свежеустановленную Винду.
А вопрос в том, откуда эту команду отдать — установленная система же штатно не загружается. Есть три варианта:

Вариант первый. Выполнить с «живой» системы (live-CD / live-USB).
Требуется: живой образ системы, комплектующийся Грубом (например, Убунта).

# mount -L DEBIAN /mnt
# mount -L BOOT /mnt/boot # если /boot у вас на отдельном разделе
# grub-install --root-directory=/mnt /dev/sda
# update-grub --output=/mnt/boot/grub/grub.cfg # если требуется (см. выше)


Вариант второй. Загрузить установленную систему и выполнить с нее.
Требуется: live-CD / live-USB с Грубом в роли загрузчика.
Загружаем установленный ГНУ/Линукс следуя инструкции из раздела выше и выполняем:

# grub-install /dev/sda
# update-grub # если требуется (см. выше)


Вариант третий. Загрузить любую систему на Линуксе и выполнить chroot в установленную.
Требуется: любая «живая» операционная система с Линуксом в качестве ядра, наличие в ней Груба не обязательно.

# mount -L DEBIAN /mnt
# mount -L BOOT /mnt/boot # если /boot выделен на отд. раздел
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# chroot /mnt
# grub-install /dev/sda
# update-grub # если требуется (см. выше)

TODO: Описать плюсы / минусы каждого.

Установка Груба на сменный носитель (USB-flash, USB-HDD)

Это может быть полезным, если на с’емном диске (флэшке), с которого что-либо загружается, не установлена GNU. Если ГНУ установлена на флэшке, то и загрузчик в нормальном случае тоже должен быть уже установлен; если же нет, то см. раздел выше.

Носитель требуется такой, на котором есть по крайней мере один раздел с файловой системой, понятной Грубу. Из популярных подойдут ext2, ext3, ext4, FAT32, не подойдут exFAT, NTFS. Установка из-под ГНУ/Линукса выполняется полностью аналогично вышеизложенному первому способу переустановки. Если пользователь принадлежит к группе floppy (нормальная ситуация на персональных компьютерах), а следовательно имеет права raw-записи на с’емные носители, то рутовые права не понадобятся.

Итак, положим, что раздел на флэшке связан с блочным устройством /dev/sdx1, тогда смонтируем его любым удобным образом: через гуй или приказом вида

$ udisks --mount /dev/sdx1
Mounted /org/freedesktop/UDisks/devices/sdx1 at /media/16G

и выполним собственно установку

$ /sbin/grub-install --root-directory=/media/16G/ /dev/sdx

Никакое содержимое в процессе затерто быть не должно (но резервные копии делать не забывайте ;-). Формировать grub.cfg update-grub’ом на основе имеющихся на данной конкретной машине операционных систем, очевидно, смысла нет. Его стоит написать вручную, взяв за образец grub.cfg из установленной системы.

Загрузка системы из iso-образа live CD

Собственно со стороны Груба никакой хитрости тут нет — командой loopback device file монтируем на образ ФС (file) на произвольное имя устройства (device), а далее работаем с ним, как с любым другим диском.
Хитрость в ином — сама «живая» система должна уметь грузиться из образа read-only ФС, принимая его имя через параметры ядра. У разных лайв-сиди синтаксис параметров разный. Например, для различных Убунт и иных живых дисков, использующих Casper, запись в grub.cfg может выглядеть так:

menuentry "Xubuntu 11.04" {
loopback loop /xubuntu-11.04-desktop-amd64.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/xubuntu-11.04-desktop-amd64.iso splash --
initrd (loop)/casper/initrd.lz
}

TODO: Добавить примеры для других лив-сиди, а затем выпилить это отсюда в отдельную тему, как не имеющее прямого отношения к сабжу.




Знаете ли вы, что

• Ключ GRUB_DEFAULT в /etc/default/grub, определяющий пункт меню загружаемый по-умолчанию, может принимать не только порядковый номер пункта (0 — первая строчка, 1 — вторая и т.д.), но и его заголовок, который задан в /boot/grub/grub.cfg. Например:

GRUB_DEFAULT='Debian GNU/Linux, with Linux 2.6.39-2-amd64'


TODO: Есть сведения, что это не работает с Бургом; проверить их.


Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант.
.
Автор: RussianNeuroMancer
Дата сообщения: 01.11.2011 06:18
Как вывести список доступных разрешений экрана в консоли GRUB2 постранично?
Автор: ASE_DAG
Дата сообщения: 01.11.2011 07:04
> постранично
grub> set pager=1


#: бэкап шапки
Автор: RussianNeuroMancer
Дата сообщения: 01.11.2011 20:05
ASE_DAG
Спасибо! То, что нужно.
Автор: qmefgh
Дата сообщения: 03.11.2011 16:29
Вот решил поставить GRUB2 на флэшку под Windows.
Немного поискав нашёл проект grub24dos, который особо не помог.
Вариант с LiveCD отпадал (CD/DVD привода уже лет 5-ть нет).
[more=Решил]1. Была скачанная Ubuntu 11.10, хотел посмотреть Unity (непривычно, Ubuntu приближается по интерфейсу к Mac OS X) в действии, но руки так и не дошли.
2. Устанавливаем или загружаемся в Live.
3. Подключаем USB (у меня был внешний винчестер).

4. Запускаем терминал

и смотрим (командой sudo blkid) UUID вашей флэшки и каким устройством (sda, sdb, hda...) она определилась (ориентироваться можно по названию и типу файловой системы).
Моя флэшка определилась устройством (/dev/sdb1) sdb с названием PENDRIVE и файловой системой vfat (FAT32)

5. Устанавливаем GRUB2 набрав в терминале
sudo grub-install --root-directory=/media/ИМЯ_ВАШЕЙ_ФЛЭШКИ /dev/УСТРОЙСТВО (sda, sdb...)
У меня было так sudo grub-install --root-directory=/media/PENDRIVE /dev/sdb

GRUB2 установлен, отключаем флешку от VMWare и создаём grub.cfg под Windows.
[/more] таки через VMWare.
UUID нужен для файла конфигурации, чтоб найти ваш накопитель.
Например так:
insmod search_fs_uuid # загружаем модуль
search --fs-uuid --no-floppy --set=root ВАШ_UUID
grub.cfg сохранять в кодировке UTF-8, чтоб меню на русском было (ещё нужен шрифт unicode.pf2 можно взять в папке /usr/share/grub или скачать по ссылке).
Возможна установка картинки на фон. [more=Пример]

Код: if loadfont /boot/grub/font/unicode.pf2; then
set gfxmode=auto
insmod gfxterm
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
set locale_dir=($root)/boot/grub/locale
set lang=ru_RU
insmod gettext
if terminal_output gfxterm ; then true ; else
terminal gfxterm
fi
fi
insmod png
if background_image /boot/grub/img/back.png; then
clear
fi
Автор: krserv
Дата сообщения: 30.11.2011 23:06
мультизагрузка осуществляется через Grub2. Стоит Win 7 - хочу загрузить его в безопасном режиме, нажимаю при выборе из меню клавишу F8 - винда не грузится в безопасном режиме. Как ее загрузить в безопасном режиме?
Автор: ComboFZ
Дата сообщения: 30.11.2011 23:41
krserv
http://forum.ru-board.com/topic.cgi?forum=62&topic=12223&glp
Автор: krserv
Дата сообщения: 01.12.2011 06:00
Я правильно понял, что Grub здесь не причем, и если-бы винда работала нормально, то я бы смог выйти на меню выбора безопасного режима при нажатии F8?
Автор: ASE_DAG
Дата сообщения: 01.12.2011 08:49
krserv
> я бы смог выйти на меню выбора безопасного режима при нажатии F8?
Замечу, что только что вы говорили, что «Винда не грузится в безопасном режиме», что отнюдь не то же самое, что вы говорите теперь.

> Я правильно понял, что Grub здесь ни при чем
Да, непосредственно Груб на возможности виндового бутмэнэджера, вызываемого им по цепочке, никак повлиять не может.

> и если бы винда работала нормально, то я бы смог выйти на меню выбора безопасного режима при нажатии F8?
Да. Однако я склонен полагать, что и сейчас со стороны Винды ошибок нет.

> нажимаю при выборе из меню клавишу F8
Вот эту мысль разверните, пожалуйста.
Автор: GalielO
Дата сообщения: 01.12.2011 08:55
krserv
Я так понял Win грузится. msconfig
Автор: krserv
Дата сообщения: 01.12.2011 15:28

Цитата:
нажимаю при выборе из меню клавишу F8
Вот эту мысль разверните, пожалуйста.


по моему я затупил, я в Win 7 по аналогии с ХP нажимал F8 после выбора самой системы в меню. Сейчас проверю, если ничего не напишу, то вопрос закрыт, спасибо за поддержку.

Добавлено:
Кстати очень интересный вопрос, немного не по теме, извините, но об этом же, на ноуте Fujitsu-Siemens также стоит мультизагрузка и Grub2 и там Win XP не запускался в безопасном режиме, все-время перезагружается, я вычислил через msconfig - отключая службы, что дело в этой службе: Fujitsu HaMDevMg - Manages and controls the Mobile Device Management Tools. Зависимости - Удаленный вызов процедур - RPC.

вот сейчас буду копать, толи это вредоносное ПО повлияло, или есть, то ли несовместимость, обновлю драйвера, сделаю запрос в техподдержку Fujitsu-Siemens. Буду признателен за Ваши советы в ПМ.
Автор: krserv
Дата сообщения: 01.12.2011 18:24

Цитата:
Я так понял Win грузится. msconfig


A чего теперь делать в винду 7 не могу теперь зайти, из линукса пишу, установил msconfig - safe mode - и винда стала постоянна перегружаться, как теперь отключить установку в safe mode в msconfig?
Автор: ASE_DAG
Дата сообщения: 03.12.2011 21:19
В связи с возникновением вопросов добавил в шапку раздельчик «Загрузка системы из iso-образа live CD».


Цитата:
Загрузка системы из iso-образа live CD

Собственно со стороны Груба никакой хитрости тут нет — командой loopback device file монтируем на образ ФС (file) на произвольное имя устройства (device), а далее работаем с ним, как с любым другим диском.
Хитрость в ином — сама «живая» система должна уметь грузиться из образа read-only ФС, принимая его имя через параметры ядра. У разных лайв-сиди синтаксис параметров разный. Например, для различных Убунт и иных живых дисков, использующих Casper, запись в grub.cfg может выглядеть так:

menuentry "Xubuntu 11.04" {
loopback loop /xubuntu-11.04-desktop-amd64.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/xubuntu-11.04-desktop-amd64.iso splash --
initrd (loop)/casper/initrd.lz
}



#: бэкап шапки
Автор: GalielO
Дата сообщения: 04.12.2011 12:41
krserv

Цитата:
винда стала постоянна перегружаться

Использование среды восстановления Windows RE в Windows 7
выполнить chkdsk c: /r /f
Ваш вопрос не имеет отношения к GRUB. Задавайте в соответствующей теме.
Автор: LevT
Дата сообщения: 23.12.2011 23:05


Подскажите, как использовать zfs-bootfs
Не нашел доков в интернетах, а исходники читать не умею ((




Добавлено:

надо загрузиться в виртуалке скажем с super_grub2_disk_hybrid_1.99b1.iso и запустить соляру c (hd0)

родные параметры солярного груба:

Цитата:

bootfs rpool/ROOT/solaris
kernel$ /platform/i86pc/kernel/amd/unix -B $ZFS_BOOTFS
module$ /platform/i86pc/amd64/boot-archive
Автор: ASE_DAG
Дата сообщения: 24.12.2011 03:33
LevT
Прямо ответа на вопрос не знаю, но почему вам не зайти с другой стороны — не воспользоваться chainloader’ом?
Автор: ArtemijG
Дата сообщения: 21.01.2012 11:25
ASE_DAG
Мануальчик прочитал. Вопрос остался.

Цитата:
# mount $main /mnt

mount: special device main does not exist


Добавлено:
А чем плох вариант, если я попробую:
sudo apt-get install grub


Добавлено:
Вот сейчас читаю Восстановление GRUB2 с LiveCD.
Первое, что необходимо узнать
sudo fdisk -l
А ничего не находит.


Добавлено:
И насколько я помню, у меня boot был на одном разделе.
Автор: ASE_DAG
Дата сообщения: 21.01.2012 12:43

Со стороны посмотришь — прям как чертик из табакерки. :-) Продолжаем вот этот разговор мы.


ArtemijG

> Мануальчик прочитал.
Итак, каким из трех способов решили действовать?

> Вопрос остался.
Что за вопрос?

> # mount $main /mnt
> mount: special device main does not exist
Ну, судя по всему, вы еще выполнили $ main=main. Зачем? И зачем вам вообще эта переменная $main?

> А чем плох вариант, если я попробую: sudo apt-get install grub
Ничем, кроме того, что вам это не нужно — пакет grub, что в вашей системе, что в живой системе на диске уже установлен.

> Первое, что необходимо узнать
Ну да, если метки разделам вы назначить не удосужились, то придется выяснять, где у вас корень методом тыка.
Не хотите работать в командном режиме — воспользуйтесь Наутилусом (или что у вас там на лайв-сиди) для выяснения, под каким же символьным устройством (/dev/sd??) или UUID (что-то типа 06e6493d-2a52-432b-8459-5e1dccb277d6) у вас корневой раздел.
Автор: ArtemijG
Дата сообщения: 21.01.2012 12:59

Цитата:
Итак, каким из трех способов решили действовать?

Какая разница каким из них действовать, если
sudo grub
команда не найдена
Вначале надо выяснить где этот загрузчик. Но я даже не могу воспользоваться командой sudo fdisk -l

Цитата:
Ну да, если метки разделам вы назначить не удосужились

Зачем? Ubuntu всё автоматом ставило в один раздел. Само их и назначило.

Цитата:
Ну, судя по всему, вы еще выполнили $ main=main. Зачем? И зачем вам вообще эта переменная $main?

Здесь я ошибся. Надо было подставлять вместо mian dev/sda(x).

Цитата:
Не хотите работать в командном режиме — воспользуйтесь Наутилусом

Я же писал, что я загружаюсь с nomoeset. Только командная строка у меня. В графическом режиме ничего не могу просмотреть т.к. нужно устанавливать проприетарные драйвера. Вообще я использую Ubuntu 11.10 и запускаю опцию Try Ubuntu before Installing. Это ведь и есть live cd?
Автор: Alukardd
Дата сообщения: 22.01.2012 02:09
ArtemijG
Цитата:
sudo fdisk -l
А ничего не находит.
Что значит ни чего не находит? Вообще пустой ответ от команды? Покажите вывод если он есть.
Если вывод отсутствует, то можете показать вывод команды ls -l /dev/sd*
Насколько я понимаю, если вывод полностью отсутствует, это значит что в компьютере вообще отсутствуют носители информации (usb falsh, hard drive, ssd, и т.д...). Ну тогда проверяйте что винч воткнут в комп и т.п.

p.s. у меня конечно была мысль что вы не поймёте, что $main это переменная, но как-то мне так удобнее было объяснять.
Автор: ASE_DAG
Дата сообщения: 23.01.2012 05:54
ArtemijG
> Какая разница каким из них действовать
Между вторым (загрузить установленную систему) и третьим (с чейнджрутом) разница только в процессе, а первый (просто с лайв-сиди) может отличаться и результатом; я вам об этом уже говорил:

Цитата:
отличаться загрузочная запись (MBR) до установки Винды и после операций, о которых идет речь (вариант с чейнджрутом — прим.), не будет.
Она могла бы отличаться, если бы вы установили загрузчик с «живой» системы, не переходя чейнджрутом в вашу.


> sudo grub
> команда не найдена
А что вас здесь смущает? В смысле, где вы прочли, что команда grub должна существовать?

>> Ну да, если метки разделам вы назначить не удосужились
> Зачем?
Чтобы не искать нужный вам раздел методом тыка по содержимому (с чем у вас благополучно и не получается справиться), не?

> В графическом режиме ничего не могу просмотреть т.к. нужно устанавливать проприетарные драйвера.
Жесть. Если не секрет, какая это графкарта, что все так плохо, что нельзя даже VGA mode запустить?

> Ubuntu 11.10 и запускаю опцию Try Ubuntu before Installing. Это ведь и есть live cd?
Ну да, наверное.
Автор: ArtemijG
Дата сообщения: 26.01.2012 13:28
Alukardd
Я неправильно команду ввёл.
sudo fdisk -l
device ....... system
dev/sda1 linux
dev/sda2 ...... extended


Добавлено:
ASE_DAG

Цитата:
Жесть. Если не секрет, какая это графкарта, что все так плохо, что нельзя даже VGA mode запустить?

AMD APU. 6750m+6620G, при чем непонятно какой адаптер используется в данный момент. Но думаю, что справлюсь и без графики.
Автор: ArtemijG
Дата сообщения: 27.01.2012 13:29
Провел процедуру:
sudo mkdir /media /sda1
sudo mount /dev/sda1 /media/sda1
sudo grub-install --root-directory=/media/sda1 /dev/sda
update-grub

Система загрузилась. Всем спасибо.
Автор: ArtemijG
Дата сообщения: 27.01.2012 17:30
Перезагрузился, решил войти в "окна". Ошибка. Какая - не понятно. "Окна" пытаются её исправить, минут 5 бегает ползунок по меню recovery windows. В итоге ничего не выходит. В общем я отправил отчет Биллу. Что то посоветуете? Скорее всего это связано с переустановкой grub. Но вроде как я все сделал верно. Отчет сообщением выше.
Автор: sergeyich2000
Дата сообщения: 28.01.2012 19:12
http://forum.ru-board.com/topic.cgi?forum=5&topic=25435&start=760#17

помогите не понимаю в чем дело. линь грузит после ввода пасса
Автор: krserv
Дата сообщения: 29.01.2012 17:08
подскажите пжс как изменить размер шрифта меню начальной загрузки ОС. Очень маленький шрифт, приходится присматриваться, я то знаю для себя, что первый или последний пункт меню выбирать нужно для себя, но поставил на комп жене, чтобы тоже Линукс как и я начинала любить, а ей не нравится, что буквы такие маленькие.
Автор: ASE_DAG
Дата сообщения: 29.01.2012 18:14
krserv
> меню начальной загрузки ОС
Это что такое?

Если вы таки про меню Груба, то шрифт задается ключом GRUB_FONT в /etc/default/grub. Например так:
GRUB_FONT=/boot/grub/DejaVuSansMono-18.pf2

Файл шрифта создается утилитой grub-mkfont.
$ grub-mkfont --output=DejaVuSansMono-18.pf2 --size=18 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
# mv DejaVuSansMono-18.pf2 /boot/grub/
Автор: krserv
Дата сообщения: 29.01.2012 19:11

Цитата:
GRUB_FONT=/boot/grub/DejaVuSansMono-18.pf2

если я найду подобную строку команды и заменю в ней например 18 на 22, чтобы больше размер стал, а pf2 - что обозначает? Мне только цифру размера шрифта нужно будет изменить в файле?
Автор: ASE_DAG
Дата сообщения: 29.01.2012 19:26
krserv
> если я найду подобную строку
То я сильно удивлюсь.

> pf2 - что обозначает?
Формат файла шрифта — PFF2. Как разворачивается аббревиатура не знаю. А что?

> Мне только цифру размера шрифта нужно будет изменить в файле?
Вам надо явно указать файл, в котором содержится желаемый шрифт. Шрифт в подходящем формате (PFF2) можно создать конвертацией из TTF уже упомянутым выше способом.
Автор: krserv
Дата сообщения: 30.01.2012 15:42
посмотрел /boot/grub хотел найти там файл шрифта, который сейчас стоит, но ничего чтобы напоминало шрифт не нашел. Как и где найти какой сейчас стоит файл шрифта?

Страницы: 123456

Предыдущая тема: Какой менеджер паролей вы используете?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.