LINUX.ORG.RU

Как все-таки сконфигурировать этот чертов grub2?

 , ,


0

1

Переношу из чрута генту на винт. Пробую загрузку при помощи qemu:

qemu-system-x86_64 -hda /dev/sdb -m 512
Сначала хотел загрузиться по UUID, установил grub2 из чрута. Но получил матюки «no such device».

ОК, делаем вот такой grub.conf:

default 0
timeout 3
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo 3.18.7
root (hd1,0)
kernel /boot/vmlinuz-3.18.7 root=/dev/ram0 real_root=/dev/sdb1


title Gentoo Linux 3.14.0
root (hd1,0)
kernel /boot/vmlinuz-3.14.0-gentoo root=/dev/ram0 real_root=/dev/sdb1
initrd /boot/initramfs-3.14.0
Запускаю grub2-install, но почему-то он опять ищет диск по UUID!

ОК, генерирую уродство при помощи

grub2-config -o /boot/grub/gruba.cfg

Копирую его в /boot на /dev/sdb1.

Устанавливаю grub2 и на /dev/sdb, и на /dev/sdb1.

И получаю кукиш с маслом!!!


Так что нужно сделать, чтобы правильно загрузчик воткнуть-то?

☆☆☆☆☆

держи не-Ъ способ, вручную писаный конфиг

$ cat /boot/grub/grub.cfg
#set gfxmode=1600x1200x32
#insmod png
#insmod vbe
#terminal_output gfxterm
#background_image /boot/grub/themes/starfield/starfield.png
#loadfont /usr/share/grub/unicode.pf2
#gfxpayload=keep

set my_cmd='loglevel=8'
set root=(hd0,2)
set timeout_style=hidden
insmod reiserfs

menuentry gentoo{
  linux /usr/src/linux-3.19.0/arch/x86/boot/bzImage $my_cmd
  initrd /home/kozi/initramfs-3.19.0.cpio
}
menuentry 'gentoo nouveau'{
  linux /usr/src/linux-4.0-rc1/arch/x86/boot/bzImage $my_cmd
  initrd /home/kozi/initramfs-4.0.0-rc1.cpio
}
menuentry 'windows 8'{chainloader (hd0,3)+1}

if keystatus --shift;then set timeout=-1;else set timeout=0;fi

anonymous
()

Почему ты спрашиваешь про grub2 и пытаешься вручную править его конфиг, словно это просто grub? Почему автоматическую генерацию конфига ты пишешь в какой-то «gruba.cfg», а не «grub.cfg» да ещё и копируешь после этого куда-то? /dev/sdb у тебя в биосе загрузочным выбран? Он точно после этого как sdb виден?

grub2-config ? о_О может всё-таки нужен grub2-mkconfig? Прочти наконец wiki

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от redhat

даже анаконда uefi не умеет, а использует grub, а ты тут про генту да ещё и человеку который ненавидит всё, что новее 2003 года.

erzent ☆☆
()

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

gentoo nvidia 304.125 (комментарий)

grub2-config -o /boot/grub/gruba.cfg
Копирую его в /boot на /dev/sdb1.
Устанавливаю grub2 и на /dev/sdb, и на /dev/sdb1.

или наркоман.

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 1)
Ответ на: комментарий от BattleCoder

Нет, но grub никак не хочет.

Попробую попозже нормальный grub, потому как grub2 — какой-то быдлошлак!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

это ничего не меняет. просто не прописывай его

anonymous
()

grub2-config -o /boot/grub/gruba.cfg
gruba.cfg

WAT?

Копирую его в /boot на /dev/sdb1.

Это делает grub2-install при правильно смонтированном layout-е файловых систем

Предположим, что у тебя 2 раздела: /boot на sdb1 и / на sdb2, тогда:

mount /dev/sdb2 /mnt/gentoo
mount /dev/sdb1 /mnt/gentoo/boot
mount -o bind /dev /mnt/gentoo/dev
mount -t proc none /mnt/gentoo/proc
mount -t sysfs none /mnt/gentoo/sys
chroot /mnt/gentoo /bin/bash

В чруте делаем следующее: приводим /etc/fstab(пути от корня чрута, если кто не понял) в надлежащий вид(указываем правильные пути до устройств или UUID-ы для разделов / и /boot). Опционально можно выпилить /etc/mtab и сделать его ссылкой на /proc/mounts.

Потом делаем следующее:

grub2-install /dev/sdb
grub2-mkconfig -o /boot/grub/grub.cfg

Убеждаемся что никаких ошибок при этих действиях не было(смотрим на выхлоп).

Далее выходим из чрута и размонтируем все смонтированные ФС.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от wakuwaku

Еще раз по пунктам: добавил "root=/dev/sdb1" в /etc/default/grub внутри чрута.

Запустил grub2-mkconfig -o /boot/grub/grub.cfg в чруте, скопировал полученное в /boot/grub/grub.cfg на реальный корень.

Запустил grub2-install /dev/sdb.

В итоге опять та же ошибка насчет UUID.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Pinkbyte

кстати,а как чрутить /boot/efi, если например надо обновить именно boot/efi при переносе с 1 материнки на другую? я вот без efi понимаю как, а как при нём не врубился.

erzent ☆☆
()
Ответ на: комментарий от Pinkbyte

Подожди-ка, ты хочешь сказать, что обязательно запускать чрут именно на этом диске? Зачем? Почему в оригинале нельзя?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

скопировал полученное в /boot/grub/grub.cfg на реальный корень.

Ничо не понял. Какой еще реальный корень? Что ты хочешь получить? Ты вторую систему что-ли на другой HDD ставишь? А не проще ли тогда sys-boot/os-prober поставить, чтобы он её сам задетектил и добавил в grub.cfg ?

Pinkbyte ★★★★★
()
Ответ на: комментарий от Eddy_Em

Подожди-ка, ты хочешь сказать, что обязательно запускать чрут именно на этом диске

Что значит «запускать чрут на этом диске»? Если ты хочешь поставить grub в MBR того диска, на котором и будет у тебя / - то это - самый быстрый способ.

Не, ты конечно можешь упороться по grub2-probe и grub2-mkimage, но зачем?

А если у тебя уже есть установленный граб на /dev/sda например(который грузит тебе установленный Linux Foo, например), то чтобы ИМ же грузить установленный Linux Bar на /dev/sdb достаточно поставить sys-boot/os-prober и сгенерить грабом конфиг не чрутясь никуда. Foo и Bar здесь - дистрибутивы

Более того, граб на /dev/sdb тогда вообще не нужен.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Запустил из чрута, как ты и говорил. Теперь при загрузке появляется приветствие grub'а и зависон.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Pinkbyte

Я из чрута переношу генту на винт для ноутбука.

А не проще ли тогда sys-boot/os-prober поставить, чтобы он её сам задетектил и добавил в grub.cfg ?

Нет, проще было бы вручную, как в старом добром грабе. А не в этом говношлаке.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Я из чрута переношу генту на винт для ноутбука.

Делал подобную операцию 100500 раз, включая развертывания на виртуальных машинах. Проблем нет, если ты чётко будешь понимать, что делает каждая операция.

Pinkbyte ★★★★★
()

Вах, таки оно попыталось загрузить. Меню появляется на полсекунды и там вопросы вместо текста. Подозреваю, что это из-за того, что в меню вместо нормальных латинских буковок сгенерировались русские.

Ну и параша же этот ваш grub2!

Все, пора работать. Как появится свободная минутка, попробую grub восстановить. Ибо иметь дело с этой НĒХ под названием grub2 я не могу!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

неосилятор! сдаёшься перед любой незнакомой вещью

anonymous
()
Ответ на: комментарий от Pinkbyte

у меня все платы с uefi, например сейчас у меня ASRock Z97 EXTREME6, до этого была асус z97, моя плата под мак подошла, а вот я в итоге его асрок взял себе, в итоге пришлось переустанавливать ос,потому что загрузчика uefi не видел.

erzent ☆☆
()
Ответ на: комментарий от Eddy_Em

Ну а что, нормально: в fstab - UUID, а в конфиги граба /dev/sdb вручную пытаешься вкорячить. Прочти, наконец, соответствующую вики или то, что Pinkbyte написал выше.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от Eddy_Em

ОК, делаем вот такой grub.conf:
Запускаю grub2-install, но почему-то он опять ищет диск по UUID!

ахаха, что ты делаешь, прекрати! xD

wakuwaku ★★★★
()

ОК, делаем вот такой grub.conf:

Можно вопрос, почему у тебя конфиг в формате grub-0.97, а ставишь ты grub2?

По твоей прочей проблеме делай всё по HandBook.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

Удалил из locale файл ru.mo, а меню сгенерировал так:

LC_ALL=C grub2-mkconfig -o /boot/grub/grub.cfg
Теперь хотя бы нет проблем с кодировкой.

Ведро не грузится: сразу же вылетает. Похоже, этой собаке еще и initrd нужен. Что за каменный век?

// кстати, дома у меня тоже grub2 на компьютере, я с ним промучился в прошлый раз, когда переносил генту, часа четыре. Потом психанул и вручную отредактировал grub.cfg так, как мне нужно.

Создатели grub2 — конченые наркоманы!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Вот и проверь, какие разделы у тебя прописаны в автоматически сгенерившемся /boot/grub/grub.cfg (после grub2-mkconfig -o /boot/grub/grub.cfg) и соответствует ли запись о корне тому, что прописанов fstab. Но мне (и уже не только мне) до сих пор непонятно, зачем ты пытаешься руками править /boot/grub/grub.cfg, причём в формате конфига для grub-legacy, который выглядит совершенно иначе.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от grem

Полный бред нагенерировался:

menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-48bef3c1-0e94-40b7-8d29-40cf6f8f606c' {
        load_video
        if [ "x$grub_platform" = xefi ]; then
                set gfxpayload=keep
        fi
        insmod gzio
        insmod part_msdos
        insmod reiserfs
        set root='hd1,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 --hint='hd1,msdos1'  48bef3c1-0e94-40b7-8d
29-40cf6f8f606c
        else
          search --no-floppy --fs-uuid --set=root 48bef3c1-0e94-40b7-8d29-40cf6f8f606c
        fi
        echo    'Loading Linux 3.18.7-gentoo ...'
        linux   /boot/vmlinuz-3.18.7-gentoo root=/dev/sdb1 ro
}
UUID правильный, но почему-то set root='hd1,msdos1' вместо (0,0).

Черт-те что.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Кстати, вспомнил, почему я вручную домашний конфиг редактировал: он на load_video дох.

В общем, надо будет этот шлак из конфига выкинуть и сделать все по-человечески.

// как же все просто было в lilo!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

set root='hd1,msdos1' вместо (0,0).

Сейчас так, с декабря 2010 года.

То есть ты ставишь grub2 в mbr диска, который в этот момент считается вторым и при попытке загрузиться с него ожидаешь, что он вдруг в конфиге станет первым? Хотя что именно делают эти hint я не знаю, пока это единственная догадка.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 3)

Что ж вы манулы не читаете? Умнее всех себя считаете?)

Если начал использовать что то что раньше не использовал, то читай маны) Я раньше тоже плевался на 2 груб, но он оказался няшкой и мнее геморным чем первый)

Noob_Linux ★★★★
()
Ответ на: комментарий от wakuwaku

Да, ожидал другое. Таки разделы тоже с нуля нумеруются обычно.

Забавная хрень этот grub2: удаляю конфиг, а он, собака, все равно старое меню показывает!

Вот откуда он это берет???

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Noob_Linux

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

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Ой не врите) в мане генты этому делино две строчки) и проблем нет)

Noob_Linux ★★★★
()

Итак, если написать root=/dev/sda1, то грузится. Видимо, в этом и был косяк: qemu про реальный sda ведь ничего не знает!

Черт! update-grub из другого пакета что ли ставится? Оказывается, напрямую правка конфига вообще ноль реакции дает!!! Вот почему после изменений файлов ничего не происходило. Эта хитрожопая собака, похоже, в MBR прописывает!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Меню появляется на полсекунды и там вопросы вместо текста
Ну и параша же этот ваш grub2!

Маны не читай - чушь гони!

echo "sys-boot/grub truetype" >> /etc/portage/package.use

Pinkbyte ★★★★★
()

Забавно: по root=UUID=... нифига не монтирует!

Вот же скотская собака!!! Значит, нужно будет загрузиться, вручную подправив меню, а затем каким-то чудом обновить меню, чтобы по-человечески работало.

И не приведи Аллах изменить количество жестких дисков в системе!

Да что ж это за срака-то?!!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Pinkbyte

Да не нужно мне это. Мне нужно, чтобы по-аглицки.

Как язык grub2 настроить? На кой черт мне русский в меню?

И, кстати, почему при ручной правке конфига все равно старый получается?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

И, кстати, почему при ручной правке конфига все равно старый получается?

Потому что конфиг руками править нельзя. Для этого есть /etc/grub.d/*custom

Pinkbyte ★★★★★
()
Ответ на: комментарий от wakuwaku

те скрипты пользователю не нужно трогать
# This file provides an easy way to add custom menu entries

Знаешь, я верю камментам. Но таки да - добавить отдельный файл лучше - при апдейте не попросит затереть

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Это именно для "add". Поменять с их помощью ничего не выйдет.

Вообще черезжопно как-то все сделано: как мне, например, указать, что всякий идиотизм вроде load_video, шрифтов, UEFI и прочей порнухи мне не нужно?

Мне нужны только 2 пункта меню: нынешнее ведро и старое ведро.

Eddy_Em ☆☆☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.