funtoo, =sys-boot/grub-1.97.1-r1

Обозначенное в заглавии существует в дереве портежей funtoo поэтому гентушники смело отдыхают.

Собственно все как и всегда банально. В funtoo нужно сделать:

emerge =sys-boot/grub-1.97.1-r1

Далее так как у меня отдельного раздела “/boot” не существует вообще а есть только “/” надо от root сделать такое:

gedit /etc/grub.d/10_linux

Нас интересует 109 строка. Должно быть что то такое

print " linux /"+os.path.relpath(kernel[0],"/boot")+" root="+get_rootdev(has_initrd)+" rootfstype="+rfst+" ro",env("GRUB_KERNEL_PARAMS"),

Исправляем на

print " linux "+os.path.normpath(kernel[0])+" root="+get_rootdev(has_initrd)+" rootfstype="+rfst+" ro",env("GRUB_KERNEL_PARAMS"),

Чуть ниже 115я строка было что то вроде

print " initrd /"+os.path.relpath(kernel[1],"/boot")

а должно быть

print " initrd /boot/"+os.path.relpath(kernel[1],"/boot")

На этом практически все… Если нужен виндавз и он живет на root=(hd0,1) то делаем

echo "#! /bin/sh -e
echo "Adding Windows" >&2
cat << EOF
menuentry "Microsoft Windows Vista" {
    set root=(hd0,1)
    chainloader +1
}
EOF" >> /etc/grub.d/11_windows

chmod +x /etc/grub.d/11_windows # там все исполнимые…

На этом практически все…
Настройки конфгурации grub-а содержатся в файле /etc/conf.d/grub

Вот к примеру мой

> cat /etc/conf.d/grub
GRUB_TIMEOUT=8
GRUB_FEATURES="osprobe"
GRUB_DEFAULT="/boot/vmlinuz"
GRUB_KERNEL_PARAMS="video=uvesafb:1280x800-32,mtrr:3,ywrap splash=silent,fadein,theme:natural_gentoo console=tty1 boot_delay=0 quiet fastboot"

GRUB_LABEL="[OS] - [KF] [ALT]"
GRUB_LABEL_OS="Funtoo Linux"

GRUB_SCAN_DIR="/boot"
GRUB_SCAN_KERNELS="vmlinuz[-v]"
GRUB_SCAN_INITRD="initramfs[-v]"

GRUB_ALTBOOT_PARAMS="init=/bin/bash"

Если чего то не поймёте сверьте с оригиналом… Ну и сама установка grub как и всегда

grub-mkconfig -o '/boot/grub/grub.cfg'
grub-install /dev/sda
grub-setup /dev/sda

У меня в /boot ядра именуются vmlinuz и инитрамфс initramfs С моим конфигом /etc/conf.d/grub команда grub-mkconfig правильно находит все ядра и создает корректный /boot/grub/grub.cfg

> cat /boot/grub/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/conf.d/grub
#

### BEGIN /etc/grub.d/00_header ###
set timeout=8
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry "Funtoo Linux - /boot/vmlinuz " {
    insmod ext2
    set root=(hd0,3)
    search --no-floppy --fs-uuid --set eea7fc73-d32d-454e-9600-ccec4d6aa132
    linux /boot/vmlinuz root=/dev/sda3 rootfstype=ext4 ro video=uvesafb:1280x800-32,mtrr:3,ywrap splash=silent,fadein,theme:natural_gentoo console=tty1 boot_delay=0 quiet fastboot
    initrd /boot/initramfs
}

set default=0
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/11_windows ###
menuentry "Microsoft Windows Vista" {
    set root=(hd0,1)
    chainloader +1
}
### END /etc/grub.d/11_windows ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

Что собственно и требовалось. Да редактировать руками файл /boot/grub/grub.cfg действительно не нужно… Лучше найти ошибку.

Comments