Gentoo Logo

Сборник ошибок 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

(Параметр --root-directory необходим, если вы используете отдельный
загрузочный раздел. В других случаях его следует опустить)
# grub-install --root-directory=/boot /dev/hda

Если ничего из этого не помогает, возможно, ваш раздел поврежден. Проверьте раздел на наличие ошибок:

Листинг 4.8: Проверка раздела на ошибки

(Убедитесь, что загрузочный раздел, здесь /dev/hda1, не смонтирован)
# 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

(запускайте изнутри изолированной среды (chroot) )
# 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.



Для печати

Обновлено 21 декабря 2005

Исходный документ обновлен 13 января 2008

Аннотация: Цель этого сборника ошибок — перечислить проблемы и ошибки GRUB, с которыми могут столкнуться люди. Все приведенные решения собраны совместными усилиями пользователей форумов Gentoo.

Hartwig Brandl
рецензент темы

Ioannis Aslanidis
редактор

Sven Vermeulen
редактор

Михаил Ярмиш
переводчик

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.