LINUX.ORG.RU

Непонятка с grub


0

0

корневой раздел у меня hd0,1 (/)
устанавливаю grub
#grub
grub> root (hd0,1)
grub> setup (hd0)
grub> quit

в menu.lst аналогично указан раздел

но получаю kernel panic о том, что hd0,0 не есть корневой раздел

готов выложить доп. инфо


И причём тут hd0,0, собственно?

> готов выложить доп. инфо

давай /etc/fstab и /boot/grub/menu.lst

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

/boot/grub/menu.lst
#
timeout 5
default 0
title Linux
kernel (hd0,1)/boot/vmlinuz root=/dev/sda2
#

/etc/fstab
#
/dev/sda2 / ext3 defaults 0 1
/dev/sda1 swap swap defaults 0 0
devpts /dev/pts devpts defaults 0 0
none /sys sysfs defaults 0 0
none /proc proc defaults 0 0

указатель корня можно настроить, загрузившись с CD. в нем не надо указывать параметры в grub синтаксисе, а лишь "/dev/sdaX"

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

каждый раз, когда сталкивался с grub, путаница была. все, вроде, по документации всегда делал.

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

а паника следующая:
VFS: Cannot open root device "sda2" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

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

# timeout 5 default 0 title Linux kernel (hd0,1)/boot/vmlinuz root=/dev/sda2 #

А так?

timeout 5 default 0

title Linux root (hd0,1) kernel /boot/vmlinuz root=/dev/sda2

P.S. Не вижу упоминания initrd - в нужное вкомпилено в ядро?

anonymous
()
Ответ на: комментарий от NANium

#
timeout 5
default 0
title Linux
kernel (hd0,1)/boot/vmlinuz root=/dev/sda2
# 

А так?

timeout 5
default 0

title Linux
root            (hd0,1)
kernel          /boot/vmlinuz root=/dev/sda2 


P.S. Не вижу упоминания initrd - в нужное вкомпилено в ядро?




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

нет. в экзампле граба иначе все. синтаксис именно такой, какой и привел.

конечно, можно и иначе вписать все. чтоб работало. однако, тогда как читать llinux информацию. справку по работе. примеры. если все иначе.
стройность теряется всего.

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

>Не вижу упоминания initrd - в нужное вкомпилено в ядро?

Я не зря сказал про загрузку с cd. ядро грузится с жеского диска. лишь, указываешь, где оно находится. По-внимательней, плиз

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

Ты пьян, что ли? Делай, как тебе говорят и не выноси мозг.

anonymous
()
Ответ на: комментарий от NANium

У вас при загрузке ядра выводится сообщение, что найден жесткий диск /dev/sda? И найдены разделы на нём?

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

Shift+pg up не работает во время паники. как пролистать лог. dmesg, если аварийно грузиться указывает, что устройство /dev/sda есть

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

сделал проще. скопировал конфиг с системы, подгруженной с cd

bzcat /proc/config.gz (точно уже не упомню имя) /mnt/usr/src/linux/.config

перегрузился через аварийку и пересобрал ядро. все то же самое

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

GRUB здесь ни при чём, он успешно запускает ядро, а вот ядро не может найти /dev/sda2.

В твоём случае это происходит из-за того, что в ядре отсутствует драйвер для контроллера диска. При загрузке с CD, по всей видимости, используется initrd с CD либо с HDD.

Пропиши в menu.lst initrd.

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

>В твоём случае это происходит из-за того, что в ядре отсутствует драйвер для контроллера диска.


сделал проще. скопировал конфиг с системы, подгруженной с cd и с него пересобрал ядро. то есть, по сути собрал дефолтное ядро. то самое, в котором была поддержка все и вся

bzcat /proc/config.gz (точно уже не упомню имя) /mnt/usr/src/linux/.config

перегрузился через аварийку и пересобрал ядро. все то же самое

про initrd ни слова в мануале crux. как тогда читать документацию по Linux. Зоопарк получается:

http://crux.nu/Main/Handbook2-4#ntoc11
$ cd /usr/src/linux-2.6.23.9
$ make menuconfig
$ make all
$ make modules_install
$ cp arch/i386/boot/bzImage /boot/vmlinuz
$ cp System.map /boot

что initrd? где про это там сказано?

кстати, очень часто замечать стал один момент. люди один в один советуют такое, а затем бац! initrd етть.. в menu.lst
а сам initrd, как делать, не указано.

то есть, я-то найду все про mkinitrd etc... но сам факт кустарщины. отсебятины. центра-то нет. на kernel.org библия. либо наоборот, как выше.
бесит
очень прошу прощения за такой гонор потребителя. я не про то, что "напиши лучше", но система подхода такова, что так все выстроилось.

начало строки ищи на севере. конец - на марсе, а середину под диваном, за подушкой...

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

Самое удивительное, люди не виноваты ни капли. Кто пишет все это. сама система так поставлена. часто замечаешь, как люди даже с душою все пишут. Однако, [один] человек, есть [один] человек. И каждый хочет лучше! То есть, не доделать старое, а свое.

как с дистрибутивами

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

> про initrd ни слова в мануале crux. 
                                ^^^^^
>как тогда читать документацию по Linux. 
                                  ^^^^^^

Противоречие видишь? Просто ты выбрал не самый удачный (и свежий)  дистр для знакомства с Linux.

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

>Противоречие видишь? Просто ты выбрал не самый удачный (и свежий) дистр для знакомства с Linux.

Мне нужно с самого начала начинать все.

Дожил. Под opensuse i586 падает firefox, а под x86_64 не падает ничего. а мне это не нравится, что памяти больше жрется, а ее жрется больше под x86_64. Но, раз люди решили, что i586 чиста под intel. во всяком случае, нестабильность под amd чувствуется и не важно, как у других, то я не хочу систему, где у одного работает, а у другого падает. Хочу сам во всем разобраться и сделать все хорошо. И понять, как все работает.

Глюки надоели. говнодриста и то лучше всех этих убунт уже работает у меня. ни одного падения. не дело это все. уж лучше сам все сделаю

и противоречия у меня нет. что не так - напишу автору crux о его мануале. Хочу Linux, а не гибрид попсовый

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

Облазил все ресурсы, что мог. все в одно горло про то, что неверный конфиг ядра. неверно собрано ядро. ент поддержки устройства ata sata bla bla bla и что initrd не нужен для crux. некая квинтэссенция типа..

еще раз. кто в танке. делалось из системы, подгруженной с cd дистрибутива:

mount /dev/sda2 /mnt
bzcat /proc/config.gz /mnt/usr/src/linux/.config
mount --bind /dev /mnt/dev
mount --bind /tmp /mnt/tmp
mount -t proc proc /mnt/proc
mount -t sysfs none /mnt/sys
chroot /mnt /bin/bash
cd /usr/src/linux
make oldconfig
make all
make modules_install
cp arch/i386/bzimage /boot/vmlinuz

еслиб даже поддержка устройства шла и модулем - не волнует. сидюк подгрузился? подгрузился и config.gz был скинут именно такой системы.

проблема не в драйвере и не в initrd

Нет описания какой-то третьей вещи, которая необходима при сборке и установке ядра, помимо конфигурации menu.lst

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

2 топикстартер:

Вы бы всёже осилили разобраться с initrd, как вам выше и советовали, а?
В идеале собрав его образ руками (а не доверившись mkinitrd /boot/initrd-blah.blah blah.blah), с нужными под ваше железо модулями, минимумом программ, и прочим.

В итоге вместо паники, могли бы вывалиться в бизибокс, посмотреть что у вас в /dev творится, видим ли винт, и если нет то что там с модулями, правильно ли указано имя девайса в grub & етц.

Зы: На 90% уверен что всёже не хватает модулей, и что просто строка
initrd /boot/initrd-2.6.*.* в конфиге загрузчика вас спасёт (ессно при наличии оного файла).

Если нет - см. выше. Как минимум у вас уже будет необходимый набор инструментов для разбора полётов с ядром.

> initrd не нужен для crux.
Это он сам вам рассказал ? Поменяйте их местами :)

P.s. К вопросу сборки ядра, приведу свой листинг (гоню, просто повыпендриваться малость захотел - красноглазие замучало).

# cat fbcondecor-0.9.4-2.6.27.patch |patch -p1
# ../patch-o-matic-ng-20081130/runme
# make xconfig
# emerge v86d
# cat .config |grep INITRAMFS_SOURCE
# make bzImage modules modules_install install
# mkinitrd /boot/initrd-2.6.27.8 2.6.27.8
# cd /boot/
# ls -la
# vim grub/grub.conf
# sync && reboot

Вас тут должна заинтересовать 7-я и 10-я строка, остальное отчасти дистрозависимо.

Удачи...

XiL
()
Ответ на: комментарий от NANium

> bzcat /proc/config.gz /mnt/usr/src/linux/.config

Во первых все же наверное zcat, а не bzcat, правда?

А во вторых, скорее всего, на системе с сd дистрибутива драйвера ata и ФС собраны модулями (и грузятся с использованием так нелюбимого вами initrd).

Неудивительно, что конфиг ядра с livecd не подходит для установленной вами системы. Делайте make menuconfig вместо make oldconfig и включайте все что можно статически тогда уж.

anonymous
()
Ответ на: комментарий от XiL

>Вас тут должна заинтересовать 7-я и 10-я строка, остальное отчасти дистрозависимо.

я все понимаю, но mkinitrd скрипта нет под crux и это меня наводило на мысли, что здесь весь этот момент как-то по другому делается, раз его нет.
Не хотелось бы лезть в дистрибутив с инструментами, которые чужды ему. когда делается все иначе, может

Но, я готов притащить за уши сюда все, что угодно, иначе посчитают за упертого. Либо скажут, что crux - это не правильно.
Блин, как же херово, когда друзья одни вендузятники вокруг и лишь на форуме можно с людьми пообщаться.

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

Пересобрал все ядро. монолитное ядро вышло. все устройства, что видел. все вкомпилил в ядро. проблема продолжается

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

У вас какая версия ядра? Если 2.6.x то можно указать в параметрах загрузки "rootdelay=600" или сколько там надо секунд, тогда, по идее, до попытки монтирования корневой ФС будет выдержан данный таймаут, у вас будет время полистать (Shift+PgUp) сообщения ядра.

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