Автор Тема: Проблем с кернела  (Прочетена 2657 пъти)

JiKaTaA

  • Участници
  • ***
  • Публикации: 7
    • Профил
Проблем с кернела
« -: Jun 06, 2007, 21:04 »
Здравейте.Вчера си прекомпилирах кернела.Но сега като си пусна компа ми дава следната грешка. '<img'>

mount: error mounting /dev/root on /sysroot as ext3: No such device
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mounting filed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!


С fedora core 6 съм.Също ако е от полза, като си слагах новото ядро не сам си махал строто.При инсталацията то само си добави фаиловете в /boot и си настрой началния зареждач и не съм го пипал.Сега съм с 2 ядра(когато си пусна компа и дам на опциите на федората в началния зареждач мога да посоча с кое ядро да ми я стартира). ':huh:'

Плс. кажете от какво може да е и как да го оправя.
10х предварително! 'B)'
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Проблем с кернела
« Отговор #1 -: Jun 07, 2007, 00:18 »
Цитат
mount: error mounting /dev/root on /sysroot as ext3: No such device


Не открива устройството, където е root (/) директорията.
Провери кое е устройството (нещо като /dev/hdaX или /dev/sdaX, където X е номера на устройството).
След което, провери редовете в grub.conf (nano /boot/grub/grub.conf), които се отнасят до новото ти ядро и виж дали root=/dev/hdaX е правилно описан. Това е.
Приемам, че със старото ядро можеш да boot-неш, ако не -  boot-ваш с първия диск и избираш Rescue.
Активен

It makes you awful glad that you were born a man.

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Проблем с кернела
« Отговор #2 -: Jun 07, 2007, 17:39 »
Ако ти зарежда със старото ядро, отвори конф файла на лоудъра (зареждача) и редактираи записа за новото ядро да се различава само по името на файла (на ядрото и initrd - ако имаш такова чудо '<img'> ). Ако не ти зарежда и старото ядро, то си прецакал старото ядро. Това най-често става като компилираш ново (ако е от същия сорс) и не дадеш нова субверсия в makefile. Тогава файла на ядрото и директорията с модулите получават същото име като старите, в резултат, на което старото изчезва, нищо че лоудъра ти дава възможност да го избереш. Това е така защото скрипта, с който компилираш ново ядро създава нов запис за новото ядро, без да трие стария с цел, ако нещо си объркал да подкараш поне старото, но ако си прецакал старото... В /lib/modules имаш ли отделни папки за двете ядра, а в /boot 2 комплекта файлове (kernel..., SystemMap и initramfs(initrd) ако изобщо ползваш рамдраив за първоначално зареждане)?
Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

JiKaTaA

  • Участници
  • ***
  • Публикации: 7
    • Профил
Проблем с кернела
« Отговор #3 -: Jun 08, 2007, 22:20 »
Еми това ми пише във /boot/grub/grub.conf за ядрата:

title Fedora Core (2.6.18.1)     ':xclam:' това ми е новото ядро.
   root (hd0,0)
   kernel /boot/vmlinuz-2.6.18.1 ro root=LABEL=/1 rhgb quiet
   initrd /boot/initrd-2.6.18.1.img
title Fedora Core (2.6.18-1.2798.fc6xen)     ':xclam:' това ми е старото.
   root (hd0,0)
   kernel /boot/xen.gz-2.6.18-1.2798.fc6
   module /boot/vmlinuz-2.6.18-1.2798.fc6xen ro root=LABEL=/1 rhgb quiet
   module /boot/initrd-2.6.18-1.2798.fc6xen.img


Иначе имам 2 папки в /lib/modules, както и 2 initrd,system.map и vmlinuz в /boot за 2-те ядра.Когато си го пусна с старото ядро си бачка, но с другото неще.Забелязах,че в старото ми ядро за kernel е посочено xen.gz, но за дугото не можах да намеря такъв фаил.Пробвах също да променя редовете на зареждача по всички начини които се сетих но не става.Явно си иска да му се посочи това xen.gz,защото съм забелязал че когато си пусна стария kernel тези останалите работи които ги стартира чрез тази команда module ми ги стартира през това xen '<img'>
Плс кажете от каде да го намеря този xen.gz фаил или какво да направя за да тръгне.
10x предварително 'B)'
Активен

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Проблем с кернела
« Отговор #4 -: Jun 08, 2007, 23:48 »
Не познавам Федора, така че Федорци да казват какво е това "xen" като ядро, а ядрото като модул, но изхождайки от познанията ми по Джентуу и Дебиан - всичко си е наред. И все пак този LABEL къде се задава (и изобщо задава ли се) незнам, що не пробваш вместо него (като парасметър на root) да напишеш /dev/h(s)da1 (не буквално, а в заисимост какъв ти е харда и къде ти е /).
Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

ray

  • Напреднали
  • *****
  • Публикации: 1464
    • Профил
Проблем с кернела
« Отговор #5 -: Jun 09, 2007, 04:21 »
Здравейте,

Как точно (с какви команди го прекомпилира).
Каква конфигурация ползва ?
Какви са ти дисковете и как са разделени ?
Всичко необходимо за начално зареждане интегрирано ли е (в ядрото), може да се ползва и initrd ?
Малко информация даваш.
Успех. Румен
Активен

JiKaTaA

  • Участници
  • ***
  • Публикации: 7
    • Профил
Проблем с кернела
« Отговор #6 -: Jun 09, 2007, 12:49 »
Здравейте,
Еми прекомпилирах го както си е реда ( или поне така си мисля
 'B)' ).
tar xvfz linux-2.6.18.1.tar.gz във /usr/src/
След това понеже съм със символни връзки напривих една към новото ядро.

ln -s linux-2.6.18.1 linux
cd /usr/src/linux


След това стандартните команди за прекомпилиране.В menuconfig не съм променял нищо.Оставих отметките така както са си по подразбиране.Само съм добавил няколко модула които ми трабваха и след това дадох Save.

make menuconfig
make dep
make clean
make bzimage
make modules
make modules_install


Tо автоматично си добави нужнитe файлове в /boot (vmlinuz, system.map и initrd) и си настрой конфигурациите на началния зареждач.След това като си пуснах компа с новото ядро и ми даде грешка(по-нагоре сам я написал).Файловете не съм ги бутал.Провах да променя конфигорациите на началния зареждач, ама не се получи нищо.За тях съм направил извадка от /boot/grub/grub.conf в предния ми пост.
С един хард съм.
hda1 ми е линукса (ext3).Там ми е и началният зареждач.
hda3 ми е swap-a
hda5 е дял под fat32 (Преди това бях на win и още от тогава седи).
Мисля че това е всичко.Ако нещо съм пропуснал да напиша казвайте  '<img'>
10х преварително.



Активен

ray

  • Напреднали
  • *****
  • Публикации: 1464
    • Профил
Проблем с кернела
« Отговор #7 -: Jun 09, 2007, 13:02 »
Здравей,

Вероятно си ползвал конфигурацията по-подразбиране (с малки добавки), но това не значи че тя ще работи на твоята машина/хардуер.
Освен това там където имаш модули за критични при зареждане опции е необходим и initrd (потърси и прочети).
Файла ".config" в /usr/src/linux е текущата конфигурация.
Опитай да копираш файла от старото ядро и го ползвай, ако не ти се занимава (обаче пак ще си на тъмно ако има проблем/и ;-)
Успех. Румен
Активен

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Проблем с кернела
« Отговор #8 -: Jun 09, 2007, 13:35 »
Цитат (ray @ Юни 09 2007,14:02)
Файла ".config" в /usr/src/linux е текущата конфигурация.

Мисля, че допускаш малка неточност. Файла ".config" в /usr/src/linux е текущата конфигурация само ако е компилирано ядро, а и да не забравяме, че /usr/src/linux е само симлинк и той може да не сочи към текущото ядро (затова за мен си съм решил проблема като при буутване се изпълнява ln -snf /usr/src/linux-$(uname -r) /usr/src/linux). В неговия случай обаче не е така, така че той съдържа препоръчителна настройка работеща (някак си) във възможно най-много случаи. Текущата конфигурация на действащото в момента ядро се намира в /proc/config.gz (ако е компилирано да го поддържа) или в конкретната папка със сорса (симлинка може да не сочи към нея), макар че не съм съгурен какво съдържа .config ако сорса и бинарито са от хранилището на дистрото.
Също така, мисля че проблема му не е в ядрото, все пак проблема е, че не намира /.
Поздрави.



Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

JiKaTaA

  • Участници
  • ***
  • Публикации: 7
    • Профил
Проблем с кернела
« Отговор #9 -: Jun 09, 2007, 13:57 »
Здравейте,
За жалост нямам нито фаил config.gz в /proc , нито сорса на старото ядро.Преди да сложа новото в /usr/src там нямаше нищо освен 2 папки (redhat и debug),но в debug няма нищо а в redhat има само празни поддиректории.Да ви попитам в този фаил ".config" може ли да се извлече от някъде другаде, защото ако проблема е от menuconfig и трябва да се чете, съм чувал, че има толкова много информация, че може да се напише книга.Също така да ви попитам има ли някакъв начин да се конфигорира kernel-a при самата инсталация на fedora, защото сега гледам че е излязла новата fedora core 7 и в момента си я download-вам.И без това сега ще си я инсталирам.Ако има някакъв начин при самата инсталация да си конфигорирам kernel-а това ще ми спести доста главоблъсканици.
Като си инсталирам новата дистрибуция ще видя там дали го има сорса на ядрото и т.н и ще пиша, но ще е добре ако при самата инсталация си настроя kernel-a и да не се занимавам след това.
10x предварително 'B)'



Активен

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Проблем с кернела
« Отговор #10 -: Jun 09, 2007, 14:27 »
Както казах, не мисля, че проблема ти е в конфигурацията на ядрото. Ти пробва ли с root=/dev/hda1 вместо root=LABEL=/1? Ако не си, направи следното:
коментирай този ( kernel /boot/vmlinuz-2.6.18.1 ro root=LABEL=/1 rhgb quiet) ред (за да можеш по-лесно да го възстановиш ако проблема не се реши) и добави друг след него - kernel /boot/vmlinuz-2.6.18.1 ro root=hda1.
Успех!
Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Проблем с кернела
« Отговор #11 -: Jun 09, 2007, 17:00 »
Във Fedora боотването е по-различно , в файла "image"  се използва
"nash"  шел и точно той използва "LABEL".
http://www.die.net/doc/linux/man/man8/nash.8.html
А иначе в ядрото почти всичко е на модули , няма подръжка на ext3
например , няма /dev/console и /dev/null ,нищо , така че за да боотнеш директно като в Дебиан например , ти трябват доста неща .Да си направиш /dev/console и  /dev/null е първото , също и
/dev/hdXX , (после "udev" ще ги "скрие") да вкараш подръжка в ядрото на файловите системи и и т.н.
Активен

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Проблем с кернела
« Отговор #12 -: Jun 09, 2007, 17:05 »
Ок. По-нагоре писах, че не познавам Федора, но като никой друг не му отговаря... Опитвам се да му помогна, но явно не е така.
Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Проблем с кернела
« Отговор #13 -: Jun 09, 2007, 17:44 »
JiKaTaA,

Инсталирай си src.rpm със сорса на ядрото (трябва да се казва нещо като kernel-....src.rpm). Не знам дали има лесен начин за инсталирането му, аз обикновено го свалям от сайта на Федора директно. След това правиш

rpm -i kernel*src.rpm

В /usr/src/redhat/SOURCES ще намериш конфигурационни файлове за различните архитектури (нещо като kernel-...-i686.config). Копираш подходящия за компютъра ти файл в директорията където е сорса на ядрото ти с име .config, и след това го променяш както си искаш със make menuconfig. Препоръчвам ти да не махаш много неща, особено ако не знаеш какво правят '<img'>

Другият вариант е да провериш дали в /boot няма файл с име config-x.y.z Това е конфигурационния файл за ядрото /boot/vmlinuz-x.y.z. И пак същата процедура -- cp /boot/config-xyz .config, make menuconfig...
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Проблем с кернела
« Отговор #14 -: Jun 09, 2007, 18:08 »
Това е скрипта "init" в "image" файла , той прави всичката работа оп боотването:
#!/bin/nash

mount -t proc /proc /proc
setquiet
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
mkdir /dev/shm
mkdir /dev/mapper
echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0
mknod /dev/console c 5 1
mknod /dev/ptmx c 5 2
mknod /dev/rtc c 10 135
mknod /dev/tty0 c 4 0
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
mknod /dev/tty5 c 4 5
mknod /dev/tty6 c 4 6
mknod /dev/tty7 c 4 7
mknod /dev/tty8 c 4 8
mknod /dev/tty9 c 4 9
mknod /dev/tty10 c 4 10
mknod /dev/tty11 c 4 11
mknod /dev/tty12 c 4 12
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mknod /dev/ttyS2 c 4 66
mknod /dev/ttyS3 c 4 67
echo Setting up hotplug.
hotplug
echo Creating block device nodes.
mkblkdevs
echo "Loading uhci-hcd.ko module"
insmod /lib/uhci-hcd.ko
echo "Loading ohci-hcd.ko module"
insmod /lib/ohci-hcd.ko
echo "Loading ehci-hcd.ko module"
insmod /lib/ehci-hcd.ko
mount -t usbfs /proc/bus/usb /proc/bus/usb
echo "Loading mbcache.ko module"
insmod /lib/mbcache.ko
echo "Loading jbd.ko module"
insmod /lib/jbd.ko
echo "Loading ext3.ko module"
insmod /lib/ext3.ko
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
echo "Loading sd_mod.ko module"
insmod /lib/sd_mod.ko
echo "Loading libata.ko module"
insmod /lib/libata.ko
echo "Loading ata_generic.ko module"
insmod /lib/ata_generic.ko
echo "Loading pata_atiixp.ko module"
insmod /lib/pata_atiixp.ko
echo Waiting for driver initialization.
stabilized --hash --interval 250 /proc/scsi/scsi
echo "Loading sata_sil.ko module"
insmod /lib/sata_sil.ko
echo Waiting for driver initialization.
stabilized --hash --interval 250 /proc/scsi/scsi
echo "Loading usb-storage.ko module"
insmod /lib/usb-storage.ko
echo Waiting for driver initialization.
stabilized /proc/bus/usb/devices
insmod /lib/scsi_wait_scan.ko
rmmod scsi_wait_scan
mkblkdevs
resume LABEL=SWAP-sda14
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro sda13
echo Mounting root filesystem.
mount /sysroot
echo Setting up other filesystems.
setuproot
echo Switching to new root and running init.
switchroot
echo Booting has failed.
sleep -1
Активен