LINUX.ORG.RU

С какого-то перепоя GRUB перестал загружать Linux. Error 23.


0

0

Здравствуйте!

Сегодня меня ждал сюрприз - ни с того ни с сего перестал загружаться мой рабочий линух (Ubuntu 7.04). Вчера комп был штатным образом был выключен, никаких действий с винтами не проводил. А сегодня загрузка стала такой

1. Грузится BIOS, все винты видно, всё в порядке. 2. Грузится GRUB, показывает свою менюшку. 3. Запускаю Ubuntu (основная конфигурация, не «recovery mode») 4. Получаю ошибку - Error 23: Error while parsing number

А вот если я запускаю «Ubuntu recovery mode», то загрузка идёт нормально, и я могу получить консоль рута. Проверяю содержимое дисков - все диски видны, информация на них есть.

Гуглил-гуглил на предмет такой ошибки, у людей она возникает при установке линуха, и при этом Grub не может установится. А у меня и линух и Grub установлены, и работают (линух, само собой, сейчас схерали в recovery mode).

Вот какая у меня щас конфигурация винтов

/dev/sda1 - WinXP /dev/sda2 - AltLinux Master /dev/sda3 - Ubuntu 7.04 /dev/sdb1 - Win98

# fdisk -l

Disk /dev/sda: 122.9 GB, 122942324736 bytes
16 heads, 63 sectors/track, 238216 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       36577    18434556    7  HPFS/NTFS
/dev/sda2           36577       52833     8193118+  83  Linux
/dev/sda3           52833      235158    91891768+  83  Linux
/dev/sda4          235158      238216     1541326+  82  Linux swap / Solaris

Disk /dev/sdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        1225     9839781    c  W95 FAT32 (LBA)
/dev/sdb2            1226        4865    29238300    f  W95 Ext'd (LBA)
/dev/sdb5            1226        4865    29238268+   b  W95 FAT32

В BIOS диски расположены аналогично - впереди 120Gb, за ним 40Gb. Первым диском в приоритете загрузки стоит 120Gb.

Вот что прописано в /boot/grub/menu.lst

title		Ubuntu, kernel 2.6.22.9
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.22.9 root=UUID=a7884371-0823-45ea-8444-20aaaad80af8 ro quiet splash locale=ru_RU
initrd		/boot/initrd.img-2.6.22.9
quiet
savedefault

title		Ubuntu, kernel 2.6.22.9 (recovery mode)
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.22.9 root=UUID=a7884371-0823-45ea-8444-20aaaad80af8 ro single
initrd		/boot/initrd.img-2.6.22.9

title		Ubuntu, kernel 2.6.20.3-ubuntu1
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.20.3-ubuntu1 root=UUID=a7884371-0823-45ea-8444-20aaaad80af8 ro quiet splash locale=ru_RU
initrd		/boot/initrd.img-2.6.20.3-ubuntu1
quiet
savedefault

title		Ubuntu, kernel 2.6.20.3-ubuntu1 (recovery mode)
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.20.3-ubuntu1 root=UUID=a7884371-0823-45ea-8444-20aaaad80af8 ro single
initrd		/boot/initrd.img-2.6.20.3-ubuntu1

title		Ubuntu, kernel 2.6.20-15-generic
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.20-15-generic root=UUID=a7884371-0823-45ea-8444-20aaaad80af8 ro quiet splash locale=ru_RU
initrd		/boot/initrd.img-2.6.20-15-generic
quiet
savedefault

title		Ubuntu, kernel 2.6.20-15-generic (recovery mode)
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.20-15-generic root=UUID=a7884371-0823-45ea-8444-20aaaad80af8 ro single
initrd		/boot/initrd.img-2.6.20-15-generic

title		Ubuntu, memtest86+
root		(hd0,2)
kernel		/boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title		Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title		WinXP
root		(hd0,0)
savedefault
makeactive
chainloader	+1


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda2.
title		AltLinux linux-up (on /dev/sda2)
root		(hd0,1)
kernel		/boot/vmlinuz-up root=/dev/hda2 vga=0
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda2.
title		AltLinux failsafe (on /dev/sda2)
root		(hd0,1)
kernel		/boot/vmlinuz-up root=/dev/hda2 failsafe noapic nolapic acpi=off 
savedefault
boot


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sdb1
title		Win98
root		(hd1,0)
savedefault
makeactive
map		(hd0) (hd1)
map		(hd1) (hd0)
chainloader	+1

Как видно, для Ubuntu у меня есть три ядра. И ни с одним в обычном режиме не загружается, имею ошибку Error 23. А вот в «recovery mode» Ubuntu грузится с любым ядром. Остальные операционки, включая AltLinux в safemode, перестали грузиться.

Вот табличка, что грузится, а что нет

Ubuntu, kernel 2.6.22.9 - НЕ грузится
Ubuntu, kernel 2.6.22.9 (recovery mode) - грузится
Ubuntu, kernel 2.6.20.3-ubuntu1 - НЕ грузится
Ubuntu, kernel 2.6.20.3-ubuntu1 (recovery mode) - грузится
Ubuntu, kernel 2.6.20-15-generic - НЕ грузится
Ubuntu, kernel 2.6.20-15-generic (recovery mode) - грузится
WinXP - НЕ грузится
AltLinux linux-up (on /dev/sda2) - НЕ грузится
AltLinux failsafe (on /dev/sda2) - НЕ грузится
Win98 - НЕ грузится

Везде где НЕ грузится, получаю ошибку Error 23: Error while parsing number. Потом пишется Press any key to continue..., и если нажать на любую кнопку, снова появляется меню GRUB.

Еще, если это важно, в каталоге /boot/grub есть файл device.map. Его содержимое такое

(hd0)	/dev/sda
(hd1)	/dev/sdb
(hd2)	/dev/sdc

Вот, принципе вся инфа по дискам.

Вопрос - что надо сделать, чтобы стали загружаться все операционки? Что могло слететь? Как проверить, как исправить?


А попробовать без UUID по-старинке и как в Debian ? :))
пересчитать и сверить UUID , проверить очередность загрузки HDD в BIOS И еще, проверить на наличие повреждённых секторов HDD - ведь "дыма без огня" не бывает.

elipse ★★★
()
Ответ на: комментарий от elipse

Ну пересчитал UUID - абсолютно такой же что и menu.lst прописано.

Очерёдность загузки в BIOS проверял. Да и вообще, оставил щас только один первый винт. Так что тут уже не перепутаешь. Картина осталась той же.

Сайчас крутится проверка /dev/sda3 на сбойные сектора. Логическая проверка ошибок на /dev/sda3 не нашла. Да если бы в этом дело было, с других разделов хоть что-то бы грузилось, например AltLinux с /dev/sda2 (логических ошибок на /dev/sda2 тоже не обнаружено).

Щас закончится проверка, попробую UUID убрать, хотя, думаю, дело не в этом.


Пробовал грузится с SUPER GRUB DISK, вот с него WinXP и AltLinux грузятся нормально. А Ubuntu SUPER GRUB DISK не видит, он в автоматическом режиме находит первый AltLinux на sda2, и грузит его.

А как грузануться с sda3 я чота так и не разобрался.

И еще не разобрался, как опции загрузки увидеть, которые SUPER GRUB DISK придумывает, чтобы хотя бы такие же для WinXP и AltLinux прописать.

xintrea
() автор топика
Ответ на: комментарий от elipse

Ага, вот что получилось.

В SUPER GRUB DISK есть опция - грузиться с существующим конфигом. Указываю файл конфига, SUPER GRUB DISK все мои пункты меню показывает, и в таком виде любая операционка грузится без проблем.

Осталось теперь понять, какого хера GRUB, который на винте стоит, не может грузить операционки с теми же опциями.

xintrea
() автор топика
Ответ на: комментарий от elipse

В общем, сделал бестолковую вещь.

Загрузился в работающем Ubuntu recovery mode. Запустил

# grub

Появилась консоль груба. В ней дал команду

> find /boot/grub/stage2


вроде как она должна показывать разделы, с которых возможна загрузка. В моём случае команда выдала

(hd0,2)
(hd0,3)

Я выбрал текущий для работы раздел hd0,3 потому что на нём стоит Ubuntu, и на нём само собой уже есть конфиг для grub (/boot/grub/menu.lst). Раздел для работы выбирал с помощью команды

> root (hd0,3)


Затем дал команду

> setup (hd0)


Вроде как эта команда устанавливает Grub в MBR, и прописывает там, что каталог /boot надо брать с hd0,3 (это мы указали через root).

В общем, Grub переставился, и всё стало работать.

Жалко что не додумался снять образ MBR до переустановки, чтобы сравнить, изменилось хоть что-то, или трабла была в каком-то другом месте.

xintrea
() автор топика

в загрузчике сплошные баги, ужас блин.

XNA
()

Вообще одуреть—не встать. Доусложнялись, блин.

Возьмите boot0 из FreeBSD.

iZEN ★★★★★
()

Вчера тоже видел странные ошибки при загрузке новенького eee pc. Сначала при загрузке я увидел странную жалобу на "неправильную геометрию винта" (после выбора пункта меню - не помню, кто именно ругался). Затем, при трёх попытках загрузиться, словно издеваясь, груб последовательно выдал вместо меню ошибки 18, 17, 16. А потом заработал. Я мысленно списал это на глюки железа, но сомнения остались.

alexsaa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.