Сборник ошибок Grub в Gentoo
1.
Вводные замечания
Благодарности
Выражаем благодарности
Earthwings,
penetrode,
loyaltonone,
pilla,
airhead,
nephros,
yamakawa
и всем другим участникам за предложения в изначальной
теме форума.
Отказ от ответственности
Приведенные примеры — всего лишь примеры. Убедитесь, что меняете номера
разделов в соответствии со своей системой. Следуйте рекомендациям, приведенным
в данном документе, на свой страх и риск.
2.
Загрузка Grub, пожалуйста, подождите...
Ситуация
Листинг 2.1: Сообщения Grub |
GRUB loading stage 1.5
GRUB loading, please wait...
|
Система останавливается после вывода этого сообщения. При попытке загрузки с
дискеты grub проблема исчезает.
Решение
Согласно The_Bell,
вы могли бы изменить порядок загрузки в вашем BIOS.
Уберите в BIOS первоочередную загрузку с дискеты.
penetrode
написал, что такое поведение также может быть вызвано неправильной установкой CFLAGS.
Несмотря на то, что текущий ebuild grub фильтрует -fstack-protector,
хуже не будет, если перекомпилировать grub с чистыми CFLAGS, когда ничего другое не
помогает.
Листинг 2.2: Пересборка GRUB c чистыми CFLAGS |
# CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe" emerge grub
|
3.
Ошибка Grub 12
Ситуация
Листинг 3.1: Сообщение Grub |
12 : Invalid device requested.
|
Эта ошибка выдается, если синтаксис команд верен, и несмотря на это происходит
ситуация, не описанная в других ошибках.
Решение
Запускали ли вы две приведенные ниже строки, когда установливали grub в свою
загрузочную запись интерактивными командами?
Листинг 3.2: Команды интерактивной установки |
grub> root (hd0,0)
grub> setup (hd0)
|
Вместо (hd0,0) должен быть указан ваш загрузочный раздел, а вместо (hd0)
— выбранный жесткий диск. Помните, что (hd0) устанавливает начальный
загрузчик в главную загрузочную запись (MBR) первого жесткого диска (первичный
ведущий — primary master).
4.
Ошибка Grub 15
Cитуация
Эта ошибка может возникать на двух различных этапах настройки GRUB:
во время начальной настройки (при установке в главную загрузочную запись),
и после загрузки системы при попытке запустить Linux (или любой другой раздел).
Листинг 4.1: Сообщения Grub при начальной настройке |
grub> root (hd0,0)
Filesystem type is xfs, partition type 0x83
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no
Error 15: File not found
|
Листинг 4.2: Сообщения Grub при загрузке раздела |
Booting 'gentoo Linux'
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
kernel (hd0,0)/boot/kernel-2.4.20 root=/dev/hda3 vga=792
Error 15: File not found
Press any key to continue...
|
Решение: проблема при начальной настройке
Эта ошибка выдается, если невозможно найти указанный файл, при этом все
остальное (диск, раздел) указано верно.
Довольно часто эта ошибка обозначает отсутствие файла образа ядра. Убедитесь,
что необходимый файл находится на загрузочном разделе.
Чтобы выяснить точное имя вашего ядра, загрузитесь с установочного
компакт-диска и смонтируйте свой корневой раздел (root), а при необходимости и
загрузочный раздел (boot). Потом переключитесь (chroot) в свою систему Gentoo и
выведите на экран список имеющихся файлов, чтобы увидеть доступные образы ядер:
Листинг 4.3: Проверка существования образа ядра |
# cd /boot
# ls
# make
|
Это перечислит все ядра на вашем загрузочном разделе. Если ваше ядро
отсутствует, обеспечьте, чтобы оно было скомпилировано (с помощью
genkernel или вручную):
Листинг 4.4: Перекомпиляция ядра |
# cd /usr/src/linux/
# make menuconfig
|
А так его скопировать в загрузочный раздел:
Листинг 4.5: Копирование ядра |
# cp /usr/src/linux/arch/i386/boot/bzImage /boot
|
Проверьте, что имя ядра точно совпадает с указанным в файле
grub.conf. Также, убедитесь, что строчка kernel в вашем
файле grub.conf явно или неявно указывает на нужный раздел.
Еще замечена ошибка, когда BIOS игнорирует диск, на котором находится ядро
или стадии grub. Кроме того, на разделе, на котором grub хранит свои стадии,
не должна использоваться настройка программного RAID-5 (или другой технологии
деления на полосы).
Решение: проблема загрузки раздела
Прежде всего, убедитесь в правильности используемых строк root и
setup.
Если вы уверены, что они правильные, тогда возможно, вы используете
дефектную версию GRUB (0.93.20031222). Обновите свое дерево портежей или
замаскируйте эту версию grub:
Листинг 4.6: Маскировка Grub |
# echo "=sys-boot/grub-0.93.20031222" >> /etc/portage/package.mask
# emerge grub -p
|
Также можно попробовать сценарий grub-install, как рекомендовано
авторами GRUB:
Листинг 4.7: Использование grub-install |
# grub-install --root-directory=/boot /dev/hda
|
Если ничего из этого не помогает, возможно, ваш раздел поврежден. Проверьте
раздел на наличие ошибок:
Листинг 4.8: Проверка раздела на ошибки |
# fsck -y /dev/hda1
|
5.
Ошибка Grub 17
Ситуация
Листинг 5.1: Сообщения Grub |
root (hd0,0)
filesystem type unknown partition type 0x7
Error 17 : Cannot mount selected partition
|
Решение
Эта ошибка выдается, если требуемый раздел существует, но тип файловой системы
не опознается GRUB.
Убедитесь в правильности настройки root(x,y) в своем grub.conf.
Кроме того, если вы пытаетесь загрузить Windows, обеспечьте, чтобы в вашем
файле grub.conf были строки root (hdX,Y) (или
rootnoverify (hdX,Y)) и chainloader (hdX,Y)+1.
6.
Ошибка Grub 18
Ситуация
Листинг 6.1: Сообщения Grub |
kernel (hd1,4)/bzImage root=/dev/hdb7
Error 18: Selected cylinder exceeds max supported by BIOS
|
Решение
Эта ошибка возникает при попытке чтения по линейному адресу блока за пределами
транслируемой BIOS области. Обычно это случается, если размер вашего диска
больше, чем BIOS может обработать (512МБ для дисков IDE на старых компьютерах,
или больше 8ГБ вообще).
Попробуйте обновить свой BIOS и/или перенести загрузочный раздел в начало (или
хотя бы в пределы соответствующей области).
7.
GRUB GRUB GRUB GRUB GRUB ...
Ситуация
Листинг 7.1: Сообщения Grub |
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
...
|
Решение
Согласно
этой
теме, это может быть вызвано автоматическим определением дисков вашим
BIOS. Попробуйте установить в BIOS тип диска User Type HDD.
Другая возможная причина: в вашу главную загрузочную запись (MBR) был
установлен Grub, и вы попытались переустановить его (например, из-за замены
жестких дисков), но использовали неправильные команды setup и
root.
8.
Опрос устройств для поиска дисков, обслуживаемых BIOS. Может
занять длительное время.
Ситуация
При попытке установки grub зависает, выдав следующую строку:
Листинг 8.1: Сообщения Grub |
# grub
Probing devices to guess BIOS drives. This may take a long time.
|
Решение
Одной названной причиной была экзотическая конфигурация дисков, типа
установки на одном шлейфе дисков ультра/не-ультра DMA.
9.
При установке Grub он просто зависает
Ситуация
При установке grub зависает:
Листинг 9.1: Сообщения Grub |
# grub
|
Решение
Если у вас нет привода для дискет, указали ли вы параметр --no-floppy?
Листинг 9.2: Установка grub с параметром --no-floppy |
# grub --no-floppy
|
10.
Распаковка Linux...выполнено, загрузка ядра.
Ситуация
Систем зависает после вывода следующей строки:
Листинг 10.1: Сообщение Linux |
Uncompressing Linux... Ok, booting the kernel.
|
Решение
Строго говоря, это не ошибка Grub. Одна из возможных причин —
неверная работа ACPI, при включенной поддержке в ядре. Попробуйте отключить его
в своем BIOS или ядре.
11.
Grub просто выдает свою командную строку
Ситуация
При загрузке системы выводится командная строка grub вместо списка вариантов
загрузки, определенного в вашем файле grub.conf.
Решение
Смонтируйте свой загрузочный раздел и убедитесь в существовании файла
grub/grub.conf.
Листинг 11.1: Монтирование и проверка |
# mount /dev/hda1 /mnt/gentoo/boot
# cat /mnt/gentoo/boot/grub/grub.conf
|
Так же удостоверьтесь, что символьная ссылка menu.lst существует:
Листинг 11.2: Проверка символьной ссылки |
# ls -l /mnt/gentoo/boot/grub/menu.lst
lrwxrwxrwx 1 root root 9 Mar 7 14:00 /mnt/gentoo/boot/grub/menu.lst -> grub.conf
|
Если нет, заново создайте ее:
Листинг 11.3: Восстановление символьной ссылки menu.lst |
# cd /mnt/gentoo/boot/grub
# ln -snf grub.conf menu.lst
|
Если необходимо, переустановите grub:
Листинг 11.4: Переустановка Grub |
# grub-install --root-directory=/boot /dev/hda
|
12.
Невозможно обнаружить устройство для /boot/boot: отсутствует или не блочное устройство
Ситуация
При запуске grub-install в процессе установки GRUB выдается следующая
ошибка:
Листинг 12.1: Сообщения Grub |
# grub-install --root-directory=/boot /dev/hda
Could not find device for /boot/boot: not found or not a block device
|
Решение
Убедитесь, что вы не забыли следующее:
Листинг 12.2: Обновление файла mtab |
# cp /proc/mounts /etc/mtab
|
13.
После нажатия на ENTER в меню Grub система перезагружается
Ситуация
При загрузке после нажатия на ENTER в меню Grub система перезагружается.
Решение
Попробуйте отключить поддержку кадрового буфера в своем ядре. Если это не
поможет, отключите APM и ACPI.
14.
После нажатия на ENTER в меню Grub экран становится чистым
Ситуация
Во время загрузки, после нажатия клавиши ENTER в меню Grub экран очищается,
но система отзывается (например, можно помигать светодиодом клавиши numlock).
Решение
Отключите кадровый буфер (обычно требуется удалить запись vga=XYZ
из файла grub.conf) и проверьте выбранную архитектуру процессора в
конфигурации ядра.
15.
Исчезновение картинки Grub
Ситуация
При загрузке системы вы лишены нарядной заставки Gentoo.
Решение
Прежде всего, проверьте, существует ли файл заставки, указанный в вашем
grub.conf. Если причина в этом — проверьте сценарий ebuild
grub. Возможно, заставочная картинка в используемой версии закомментирована.
16.
Отказ при загрузке Windows со второго жесткого диска
Ситуация
После выбора раздела Windows система отказывается загружаться без видимой
причины.
Решение
cyrillic
сообщает нам, что можно «отобразить» (map) ваши диски в другом
порядке, изменив запись для Windows в файле grub.conf таким
образом:
Листинг 16.1: Отображение дисков |
title Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1
|
17.
При попытке установить Grub появляется ошибка сегментации
Ситуация
Ситуация, описанная ниже, касается только grub-0.95.x в момент установки Grub в
загрузочный сектор.
Листинг 17.1: Установка Grub |
grub> root (hd0,0)
grub> setup (hd0)
Segmentation fault
|
Решение
Ошибка, вызывающая данную проблему, известна и исправлена в grub версии 0.96.
Также известно, что grub 0.94 r1 и grub 0.94 r2 должны работать правильно.
Если и они дают сбой, можно попытаться установить grub-static, который на
текущий момент стабилен на amd64 и нестабилен на x86 (~x86). Для получения
дополнительно информации обратитесь к ошибке #79378.
Текст этого документа распространяется на условиях лицензии
Creative Commons
- Attribution / Share Alike.
|