Grub2 Slackware 13.1 (Автоматическая сборка и установка(скрипт))

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Grub2 Slackware 13.1

Сообщение gramozeka »

Иногда проскакивают вопросы про Grub2 . Для слаки он конечно же есть и работает весьма неплохо , я тут наваял скриптик который сам загружает и ставит всё что нужно чтобы Grub2 работал , может кому пригодится , если найдете ошибки - шумите исправлю , но у меня собрался без осечек как-то .

Код: Выделить всё

#!/bin/sh
mkdir Grub2
cd Grub2
# Получим исходники :
wget http://ftp.de.debian.org/debian/pool/main/o/os-prober/os-prober_1.39.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/system/os-prober.tar.gz.asc
wget http://slackbuilds.org/slackbuilds/13.1/system/os-prober.tar.gz
wget http://unifoundry.com/unifont-5.1.20080820.pcf.gz
wget http://unifoundry.com/unifont-5.1.20080907.ttf.gz
wget http://slackbuilds.org/slackbuilds/13.1/misc/gnu-unifont.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/misc/gnu-unifont.tar.gz.asc
wget http://search.cpan.org/CPAN/authors/id/P/PV/PVANDRY/gettext-1.05.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/libraries/locale-gettext.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/libraries/locale-gettext.tar.gz.asc
wget http://ftp.gnu.org/gnu/help2man/help2man-1.36.4.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/development/help2man.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/development/help2man.tar.gz.asc
wget ftp://alpha.gnu.org/gnu/grub/grub-1.98.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/system/grub2.tar.gz
wget http://slackbuilds.org/slackbuilds/13.1/system/grub2.tar.gz.asc
# распакуем архивы Slackbuild'ов
tar xvf os-prober.tar.gz
tar xvf gnu-unifont.tar.gz
tar xvf locale-gettext.tar.gz
tar xvf help2man.tar.gz
tar xvf grub2.tar.gz
#всё что получили  помещаем в соответствующие папки :
mv os-prober.tar.gz.asc os-prober_1.39.tar.gz os-prober.tar.gz os-prober
mv unifont-5.1.20080907.ttf.gz unifont-5.1.20080820.pcf.gz gnu-unifont.tar.gz gnu-unifont.tar.gz.asc gnu-unifont
mv gettext-1.05.tar.gz locale-gettext.tar.gz locale-gettext.tar.gz.asc locale-gettext
mv help2man-1.36.4.tar.gz help2man.tar.gz help2man.tar.gz.asc help2man
mv grub-1.98.tar.gz grub2.tar.gz grub2.tar.gz.asc grub2
# Собираем и ставим зависимости:
cd os-prober
./os-prober.SlackBuild && installpkg /tmp/os-prober-1.39-noarch-1_SBo.tgz
cd ..
cd gnu-unifont
./gnu-unifont.SlackBuild && installpkg /tmp/gnu-unifont-5.1-noarch-1_SBo.tgz
cd ..
cd locale-gettext
./locale-gettext.SlackBuild && installpkg /tmp/locale-gettext-1.05-i486-2_SBo.tgz
cd ..
cd help2man
./help2man.SlackBuild && installpkg /tmp/help2man-1.36.4-i486-2_SBo.tgz
cd ..
# Собственно Grub2
cd grub2
./grub2.SlackBuild && installpkg /tmp/grub2-1.98-i486-2_SBo.tgz
cd ..
cd ..
# Если вам не нужны исходники раскоментируйте следующую строчку
# rm -r Grub2


делаем его исполняемым и запускаем от рута , скрипт сам скачает исходники , соберёт и установит необходимые пакеты .
Как инсталировать и настраивать Grub2 читайте здесь и здесь в принципе работает всё .
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:
Аватара пользователя
faria
Сообщения: 70

Re: Grub2 Slackware 13.1

Сообщение faria »

Спасибо, всё в одном месте собрано очень полезно!) сам недавно хотел разобраться, но кривые руки что-то не дошли. Мда... что-то в репозиториях Slackware 12.2 негусто... прийдется всё-таки вручную ставить.
Спасибо сказали:
Аватара пользователя
shevan
Сообщения: 992
ОС: Debian, Puppy

Re: Grub2 Slackware 13.1

Сообщение shevan »

Обломилось.
С легаси груб было проще

Саму систему поставил за 15 минут, и уже второй час не могу ее загрузить!
Первый час читал документацию по грубу, выполнил все действия касательно настройки
В результате update-grub slackware нашлась

Код: Выделить всё

menuentry "Slackware Linux (Slackware 13.37.0) (on /dev/sda5)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos5)'
    search --no-floppy --fs-uuid --set=root 953a71c8-0994-4a2b-8a7e-13c5cb1a2c65
    linux /boot/vmlinuz-generic-2.6.37.5 root=/dev/sda5


система впадает в панику, что обычно бывает когда не находит корень, или фс
Спасибо сказали:
Аватара пользователя
shevan
Сообщения: 992
ОС: Debian, Puppy

Re: Grub2 Slackware 13.1

Сообщение shevan »

корень ext4
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Grub2 Slackware 13.1

Сообщение bormant »

linux /boot/vmlinuz-generic-2.6.37.5 root=/dev/sda5
И где, простите, initrd ?
Либо монолитное ядро, либо инитрд с дровами на корень, либо модифицированный generic с вкомпилёными дровами на корень :-).
Если initrg ещё не создан, можно погрузиться с huge ядра, создать, прописать в grub.
Спасибо сказали:
Аватара пользователя
shevan
Сообщения: 992
ОС: Debian, Puppy

Re: Grub2 Slackware 13.1

Сообщение shevan »

bormant писал(а):
12.04.2011 11:17
linux /boot/vmlinuz-generic-2.6.37.5 root=/dev/sda5
И где, простите, initrd ?
Либо монолитное ядро, либо инитрд с дровами на корень, либо модифицированный generic с вкомпилёными дровами на корень :-).
Если initrg ещё не создан, можно погрузиться с huge ядра, создать, прописать в grub.

Загрузился с vmlinuz

я раньше думал, что vmlinuz ссылаеся на generic, хотя особо не присматривался
теперь надо еще разобраться чем они отличаются
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Grub2 Slackware 13.1

Сообщение bormant »

1) Пакеты ставятся в алфавитном порядке
kernel-generic-2.6.x.x
kernel-generic-smp-2.6.x.x-smp
kernel-huge-2.6.x.x
kernel-huge-smp-2.6.x.x-smp
(в Slackware64 только -smp)

2) В install/doinst.sh есть команда установки ссылок /boot/{vmlinuz,System.map,config} на ядро, мап, конфиг из текущего пакета.

3) В /etc/lilo.conf по-умолчанию прописывается /boot/vmlinuz, который вследствие (1) обычно указывает на huge-smp ядро.

4) обычный переход на generic-smp (kernel-modules-smp, kernel-firmware уже установлены):
# cd /boot ; mkinitrd -c ...
дописывание в /etc/lilo.conf строчки initrd = /boot/initrd.gz
переключение ссылок в /boot: # ( cd / ; /var/log/scripts/kernel-generic-smp-2.6.x.x )
# lilo

Если "чем отличатся" про отличия -huge- от -generic-, то в -generic- всё, что возможно, собрано в модули и упаковано в kernel-modules-{,smp}-, если про отличия не smp от smp, то в последнем включена поддержка многоядерности/многопроцессорности.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Grub2 Slackware 13.1

Сообщение bormant »

5) Если используется -generic- ядро и оно, и модули были обновлены при помощи upgradepkg или slackpkg upgrade, нужно не забыть перед вызовом lilo перестроить initrd, указав явно версию нового ядра
# cd /boot ; mkinitrd -c -k 2.6.37.6-smp ...
# lilo
ибо upgradepkg удалит устаревшие файлы, ядро новой версии не найдёт в старом initrd модулей своей версии и грузиться придётся с чего-то стороннего (USB/CD/DVD) либо с предусмотрительно прописанной заранее в лило строчки с резервным huge ядром.
В случае с grub всё проще только если рядом лежит huge ядро, его можно указать при загрузке руками.
Спасибо сказали:
Аватара пользователя
shevan
Сообщения: 992
ОС: Debian, Puppy

Re: Grub2 Slackware 13.1

Сообщение shevan »

Я буду грузиться с vmlinuz, то которое huge-smp
загрузчик grub2

Я и раньше грузился с vmlinuz (ссылка на самосборное ядро). Так проще при обновлении.
Спасибо сказали:
Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: Grub2 Slackware 13.1

Сообщение gramozeka »

shevan писал(а):
11.04.2011 23:18
Обломилось.
С легаси груб было проще

Саму систему поставил за 15 минут, и уже второй час не могу ее загрузить!
Первый час читал документацию по грубу, выполнил все действия касательно настройки
В результате update-grub slackware нашлась

Код: Выделить всё

menuentry "Slackware Linux (Slackware 13.37.0) (on /dev/sda5)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos5)'
    search --no-floppy --fs-uuid --set=root 953a71c8-0994-4a2b-8a7e-13c5cb1a2c65
    linux /boot/vmlinuz-generic-2.6.37.5 root=/dev/sda5


система впадает в панику, что обычно бывает когда не находит корень, или фс


вот мой вариант /boot/grub/grub.cfg :

Код: Выделить всё

set timeout=60
set default=0
set menu_color_normal=light-blue/black
set menu_color_highlight=light-cyan/blue
set gfxmode="1600x1200x32;1600x1200"#укажите ваше разрешение
insmod biosdisk
insmod part_acorn
insmod part_amiga
insmod part_apple
insmod part_gpt
insmod part_msdos
insmod part_sun
insmod video
insmod vbe
insmod font
loadfont /grub/cirilic5.pf2
insmod gfxterm
set lang=ru
terminal_output gfxterm
insmod jpeg
background_image /grub/pic.jpg
# End GRUB global section
# Linux bootable partition config begins
menuentry "Slackware 2.6.37 " {
        set root='(hdx,y)'
        search --no-floppy --fs-uuid --set <подставьте ваш UUID>
        linux   /'vmlinuz' root=/dev/sdxY vga=0x361 quiet ro
        boot

}

обратите внимание на кавычки :

Код: Выделить всё

..........
linux   /'vmlinuz' ........
............

если вы используете отдельный раздел /boot они нужны , если /boot находится на корневом разделе то они не нужны и указывать нужно абсолютный путь! , отдельная тема про UUID раздела в секции

Код: Выделить всё

search --no-floppy --fs-uuid --set <подставьте ваш UUID>
если вы используете отдельный раздел /boot нужно указывать именно его UUID , если нет , то UUID корня , в секции же

Код: Выделить всё

set root='(hdx,y)'
нужно указывать корневой раздел !
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:
Аватара пользователя
shevan
Сообщения: 992
ОС: Debian, Puppy

Re: Grub2 Slackware 13.1

Сообщение shevan »

У меня без кавычек завелось.
А прописал я всё это дело в /etc/grub.d/40_custom (Ubuntu)
Незнаю как в остальных, в ней редактировать /boot/grub/grub.cfg нельзя по уставу

Добавленный мной конфиг в /etc/grub.d/40_custom, чтобы система грузилась без initrd

Код: Выделить всё

menuentry "Slackware Linux (Slackware 13.37.0) (on /dev/sda5)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos5)'
    search --no-floppy --fs-uuid --set=root 953a71c8-0994-4a2b-8a7e-13c5cb1a2c65
    linux /boot/vmlinuz root=/dev/sda5
Спасибо сказали: