Иногда проскакивают вопросы про 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 читайте здесь и здесь в принципе работает всё .
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо, всё в одном месте собрано очень полезно!) сам недавно хотел разобраться, но кривые руки что-то не дошли. Мда... что-то в репозиториях Slackware 12.2 негусто... прийдется всё-таки вручную ставить.
Саму систему поставил за 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
система впадает в панику, что обычно бывает когда не находит корень, или фс
linux /boot/vmlinuz-generic-2.6.37.5 root=/dev/sda5
И где, простите, initrd ?
Либо монолитное ядро, либо инитрд с дровами на корень, либо модифицированный generic с вкомпилёными дровами на корень :-).
Если initrg ещё не создан, можно погрузиться с huge ядра, создать, прописать в grub.
linux /boot/vmlinuz-generic-2.6.37.5 root=/dev/sda5
И где, простите, initrd ?
Либо монолитное ядро, либо инитрд с дровами на корень, либо модифицированный generic с вкомпилёными дровами на корень :-).
Если initrg ещё не создан, можно погрузиться с huge ядра, создать, прописать в grub.
Загрузился с vmlinuz
я раньше думал, что vmlinuz ссылаеся на generic, хотя особо не присматривался
теперь надо еще разобраться чем они отличаются
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, то в последнем включена поддержка многоядерности/многопроцессорности.
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 ядро, его можно указать при загрузке руками.
Саму систему поставил за 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 они нужны , если /boot находится на корневом разделе то они не нужны и указывать нужно абсолютный путь! , отдельная тема про UUID раздела в секции
У меня без кавычек завелось.
А прописал я всё это дело в /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