[Частично решена] GRUB2 + AltLinux. (Проблемы с загрузкой. Глюки grub 2)

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Аватара пользователя
Tetsuzin
Сообщения: 136
ОС: Vista, Ubuntu

[Частично решена] GRUB2 + AltLinux.

Сообщение Tetsuzin »

Добрый день!
Не знаю куда писать, то ли в форум AltLinux то ли куда еще. Решил сюда.

После утановки AltLinux 5.0.1. и замены загрузчика на grub2 возникли проблемы с загрузкой альтов.

Описание проблемы.

Основной системой у меня является Ubuntu 9.10. Загрузчик — grub2.

Установил я сегодня AltLinux 5.0.1. Установка прошла нормально, при установке альта был выбран загрузчик grub. После установки, загрузка происходила нормально, альт загружался.

Далее, я решил восстановить grub2 обратно. Эту процедуру я делал уже несколько раз, до этого пробовал устанавливать fedora и debian, при установке этих систем так же предлагалось установить grub 1. В одном случае я его устанавливал, а затем переставлял grub2, в другом вообще устанавливал систему без загрузчика, а затем добавлял ее в список загрузки. Все системы прекрасно загружались.

В этот раз все получилось по другому. После установки grub2, альты перестали грузится. Остальные системы загружаются нормально, но при загрузке альт получаю сообщение - «Kernel panic» (Подробности на фотке)

Список разделов:

mama@tetsuzin

mama@tetsuzin:~$ sudo fdisk -l /dev/sda Диск /dev/sda: 320.1 ГБ, 320072933376 байт 255 heads, 63 sectors/track, 38913 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Disk identifier: 0x2763acaa Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 1 13055 104857600 7 HPFS/NTFS /dev/sda2 20865 27908 56580930 83 Linux /dev/sda3 13056 20864 62725792+ 83 Linux /dev/sda4 27909 28036 1028160 5 Расширенный /dev/sda5 27909 28036 1028128+ 82 Linux своп / Solaris Пункты таблицы разделов расположены не в дисковом порядке


sda3 - ubuntu
sda2 - AltLinux

Кто нибудь может подсказать, в каком направлении искать ответ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
romuil
Сообщения: 2095
Статус: Ромунцель
ОС: ALTLinux Sisyphus

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение romuil »

А конфигурационный файл где?
Спасибо сказали:
Аватара пользователя
Tetsuzin
Сообщения: 136
ОС: Vista, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Tetsuzin »

romuil писал(а):
20.03.2010 17:28
А конфигурационный файл где?

Упс...

/etc/default/grub.cfg

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

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT="Ubuntu, Linux 2.6.31-20-generic"
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"


Сгенерированный коммандой update-grub:
/boot/grub/grub.cfg

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

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s /boot/grub/grubenv ]; then
  have_grubenv=true
  load_env
fi
set default="Ubuntu, Linux 2.6.31-20-generic"
if [ ${prev_saved_entry} ]; then
  saved_entry=${prev_saved_entry}
  save_env saved_entry
  prev_saved_entry=
  save_env prev_saved_entry
fi
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set 1af29d65-d9b5-495c-bf92-47cd798e417d
if loadfont /usr/share/grub/unicode.pf2; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm; then true; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=1
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-20-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,3)
    search --no-floppy --fs-uuid --set 1af29d65-d9b5-495c-bf92-47cd798e417d
    linux    /boot/vmlinuz-2.6.31-20-generic root=UUID=1af29d65-d9b5-495c-bf92-47cd798e417d ro   quiet splash
    initrd    /boot/initrd.img-2.6.31-20-generic
}
menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    insmod ext2
    set root=(hd0,3)
    search --no-floppy --fs-uuid --set 1af29d65-d9b5-495c-bf92-47cd798e417d
    linux    /boot/vmlinuz-2.6.31-20-generic root=UUID=1af29d65-d9b5-495c-bf92-47cd798e417d ro single
    initrd    /boot/initrd.img-2.6.31-20-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    linux16    /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Vista (loader) (on /dev/sda1)" {
    insmod ntfs
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set 507498087497ef4a
    chainloader +1
}
menuentry "ALTLinux (on /dev/sda2)" {
    insmod ext2
    set root=(hd0,2)
    search --no-floppy --fs-uuid --set fb98ab8f-1e1f-46ca-b3d4-defc4aa8b42f
    linux /boot/vmlinuz root=UUID ro vga="0x314" resume=/dev/disk/by-uuid/7c7fd45b-f893-4488-bbfa-ce839133dbff panic=30 splash=silent quiet=1
    initrd /boot/initrd.img
}
menuentry "failsafe (on /dev/sda2)" {
    insmod ext2
    set root=(hd0,2)
    search --no-floppy --fs-uuid --set fb98ab8f-1e1f-46ca-b3d4-defc4aa8b42f
    linux /boot/vmlinuz root=UUID ro vga="normal"
    initrd /boot/initrd.img
}
menuentry "memtest (on /dev/sda2)" {
    insmod ext2
    set root=(hd0,2)
    search --no-floppy --fs-uuid --set fb98ab8f-1e1f-46ca-b3d4-defc4aa8b42f
    linux /boot/memtest-4.00.bin vga="0x314" resume=/dev/disk/by-uuid/7c7fd45b-f893-4488-bbfa-ce839133dbff panic=30 splash=silent quiet=1
}
### 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.cfg я не нашел :huh:
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Luinnar »

1. Не нашли /boot/grub.cfg потому что для grub1 конфигурационный файл находится в /boot/grub/menu.lst

2. Проверьте, есть ли в разделе с AltLinux файлы:
/boot/vmlinuz
/boot/initrd.img
Именно их grub2 старается использовать в вашем случае.

3. Можно установить grub1 в MBR раздела с AltLinux, а в grub2 сделать пункт на загрузку с этого раздела (на подобие того, как это с виндой работает).

4. Можно в вашей Ubuntu заменить grub2 на grub1 и попытаться настроить всю экосистему с этой версией, по старинке.
Спасибо сказали:
Аватара пользователя
Tetsuzin
Сообщения: 136
ОС: Vista, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Tetsuzin »

Luinnar, спасибо за ответ :)
Вчера вечером разобрался. Как и следовало ожидать, глючит grub2, альт здесь ни причем.

Во первых, почему я не нашел /boot/grub.cfg. Потому что там нет даже /boot/grub, и вообще загрузчик в альте LILO.
Чего-то я отвык уже от него, поэтому сразу не нашел.

Далее, в разделе, где установлен ALtLinux файлы /boot/vmlinuz и /boot/initrd.img на месте.

Поэкспериментировав, с командной строкой grub2 я обнаружил, что альт грузится после следующего набора команд:

GRUB>

set root=(hd0,2) linux /boot/vmlinuz root=/dev/sda2 initrd /boot/initrd.img boot


Следовательно, с альтами все Ок, проблема в сгенерированном конфиге.

Тут уж пришлось читать мануалы по grub2 (нашел на убунтовском форуме на русском).

В общем, я нашел, как добавить свои пункты в меню загрузчика и добавил слегка модифицированный пункт:

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

menuentry "My ALTLinux" {
    insmod ext2
    set root=(hd0,2)
    search --no-floppy --fs-uuid --set fb98ab8f-1e1f-46ca-b3d4-defc4aa8b42f
    linux /boot/vmlinuz root=UUID=fb98ab8f-1e1f-46ca-b3d4-defc4aa8b42f
    initrd /boot/initrd.img
}


В сгенерированном варианте строка "linux /boot/vmlinuz root=UUID " была без заданного UUID. Может из за этого и были проблемы?

В результате загрузка теперь происходит нормально.

Непонятно в чём причина глюка. Возможно, из-за того, что нумерация разделов идет не в том порядке, в котором они расположены на диске. Разделы у меня расположены в таком порядке:
/dev/sda1
/dev/sda3
/dev/sda2

Раньше, порядок был обыкновенный, просто на sda2 находился своп. Потом я его грохнул, и сдвинул раздел sda3 к sda1. Через некоторое время, был установлен AltLinux, и созданному для него разделу автоматически было присвоено имя /dev/sda2. Раньше, как я уже говорил, проблем с grub2 не возникало, хотя дополнительно были установлены несколько систем.
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Luinnar »

А ведь и точно, для root не был прописан UUID, думаю что в этом и проблема была. Вопрос в том,почему такой конфиг сгенерился. Интересно, а что бы значили следующие параметры:
resume=/dev/disk/by-uuid/7c7fd45b-f893-4488-bbfa-ce839133dbff panic=30
А не был ли у вас AltLinux в спящем режиме, когда вы grub конфигурировали?
Спасибо сказали:
Аватара пользователя
Tetsuzin
Сообщения: 136
ОС: Vista, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Tetsuzin »

В спящем режиме точно не был. Да и к тому же, загрузка системы через указание параметров загрузки вручную в командной строке grub2 сработала как часы.

Кроме того, для добавления своего пункта меню, я запускал update-grub. Через мой пункт меню загрузчика альтлинукс грузится, через сгенерированный в автомете нет.

Попробую наверное опять раздел /dev/sda2 пересоздать, и засунуть его между sda1 и sda3. Интересно ж...
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Luinnar »

А вы как свой пункт добавили? Скрипт написали и положили в /etc/grub.d/ ?
Спасибо сказали:
Аватара пользователя
Tetsuzin
Сообщения: 136
ОС: Vista, Ubuntu

Re: [Частично решена] GRUB2 + AltLinux.

Сообщение Tetsuzin »

Luinnar писал(а):
24.03.2010 17:13
А вы как свой пункт добавили? Скрипт написали и положили в /etc/grub.d/ ?


Добавил пункт меню в файл /etc/grub.d/40_custom и выполнил update-grub

Информацию почерпнул вот тут: Пишем манулал по grub2
Спасибо сказали: