Šta je novo?

Panika oko linux kernela

funky

Čuven
Učlanjen(a)
17.08.2003
Poruke
11
Poena
604
Kompajliram kernel 2.4.2 (make menuconfig/dep/clean/bzImage/modules/modules_install), iskopiram bzImage na /boot/vmlinuz...
Medjutim prilikom reboot-a: "kernel panic: VFS: unable to mount root fs".

Pretpostavljam da je jedan moguci problem u neodgovarajucem System.map fajlu, ali kako da dobijem isti za moj novi kernel?
Dokumentacija kaze da obavezno moram pokrenuti LILO za isti, ali nazalost ne koristim LILO, vec Grub (suse 8.2).
 
Jesi li editovao grub.conf?

Pogledaj u /boot/grub/grub.conf fajl (ili /etc/grub.conf - lokacija moze biti razlicita u zavisnosti od distroa) kako je konfigurisan prethodni kernel. Problem je najverovatnije samo u stavci "root=". Vodi racuna da moze da stoji pod tom stavkom "LABEL", ako je "LABEL" definisan u /etc/fstab fajlu, a moze da stoji i konkretan device, tj. particija (/dev/hda5, /dev/hdb2, itd - zavisi od tebe koju inace mountujes kao "/" particiju).
Obrati paznju da ne stavljas initrd stavku ukoliko nisi kreirao initrd image fajl. Initrd nije neophodan, a kako se kreira inace imas u direktorijumu Documentation u sourcetu svakog kernela.
 
Kad smo vec kod podesavanja boor loadera (LILO/Grub) da pita nesto: kako da u label stavim dve reci (odvojene razmakom, naravno)?
 
U lilo-u meni radi to sto stavljam minus izmedju reci, npr. "linux-2-4-22" i on odignorise minuse i prikaze samo 'normalan' tekst ("linux 2 4 22") -> a za lilo.conf je ovo sa minusima i dalje jedna rec, pa zadovoljni i on i ja.

Za grub ne znam, nisam probao.
 
Da, dobro si pretpostavio za root, tek sada (jutro sledeceg dana) vidim da lepo ispise "cannot open root device /dev/sda2".
Sada vec u ocajanju, odlucio sam da prikacim ovde bitnije fajlove, tj. njihove delove:
[code:1]grub.conf:
root (hd0,1)
install --stage2=/boot/grub/stage2 /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,1)/boot/grub/menu.lst
quit[/code:1]

Iako, moram priznati da mi funkcija stage1 & 2 fajlova nije bitna, ocigledno je da dalji put ukazuje na menu.lst...
[code:1]menu.lst:
...
title linux # moj, jelda, novi kernel
kernel (hd0,1)/boot/vmlinuz root=/dev/sda2 splash=silent showopts
# initrd (hd0,1)/boot/initrd
...
title failsafe # ovo je zapravo shipped kernel
kernel (hd0,1)/boot/vmlinuz,shipped root=/dev/sda2 showopts ide=nodma apm=off acpi=off vga=normal nosmp noapic maxcpus=0 3
initrd (hd0,1)/boot/initrd.shipped
...[/code:1]
Dakle, initrd sam iskljucio, a root=/dev/sda2, i upravo njega ne moze da otvori, iako failsafe/shipped kernel koristi istu opciju i radi dobro!?
Trebalo bi da napomenem da sam pokusao da promenim ovde root=/dev/sda2 u /dev/hda1 i /dev/hda2 - medjutim efekta nema.

U /etc/fstab nisam nasao nista iznenadjujuce...

[code:1]fstab:
/dev/sda2 / reiserfs defaults 1 1
...[/code:1]
Inace sto se tice puno spominjane stavke "(hd0,1)", ono sto sam uspeo da iskopam je u /boot/grub/device.map
[code:1]device.map:
(hd0) /dev/sda2
(fd0) /dev/fd0[/code:1]
Da li neko ima ideju sta dalje?
 
Pazi, mozda nije stvar u putanji do root dira, nego pristupu root diru. To jest, path/device je mozda u redu, ali si ukakio stvar sa fajl sistemom. Jedna je stvar kada se sistem dize sa initrd imidzom, a druga bez. Zato - ukoliko si odlucio da dizes sistem bez initrd-a, moras da ukljucis fajlsistem (u tvom slucaju reiserFS) u krenel -> _ne_kao_modul_. Razumes, kernel onda pokusava da pridje disku da bi ucitao reiserfs drajver, a drajver se nalazi na reiserfs particiji koju ionako ne ume da procita. Digni pod starim kernelom i proveri prvo to.
 
Upravo je to bio problem... U medjuvremenu sam i ja (eksperimentisanjem) dosao do zakljucka da zapravo initrd zakucava, napravio novi - i stvar resena...
Nego, kad sam vec tu, koja je funkcija stage1 i stage2 fajlova koje grub ocigledno koristi pri boot-ovanju?
 
Nazad
Vrh Dno