Nowe posty

Autor Wątek: Kompilacja jądra  (Przeczytany 4162 razy)

Offline Łukasz Leppiej

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Kompilacja jądra
« dnia: 2007-12-05, 09:58:02 »
Witam,

Mam laptop dell inspiron 6000 i próbuje postawić jakieś jajko...
niestety podczas bootowania wywala mi błąd:
VFS: Cannot open root device UUID=(blebleble...) or unknown block (0,0)
Please append correct root= boot option


Z tego co czytałem na sieci to podobno jest to wynikiem, tego, że nie wkopmilowało się w jądro obsługi plików ext2 albo ext3...
Jednak mam je wkompilowane.

Kompilacje robiłem tak:
cd /usr/src/linux-XXX/
make menuconfig
make dep
make
make modules
make modules_install



%%%% .conf
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_JBD=y
%%%%

%%%% menu.lst

title      Ubuntu, kernel 2.6.20-16-generic
root      (hd0,1)
kernel      /boot/vmlinuz-2.6.20-16-generic root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf ro quiet splash
initrd      /boot/initrd.img-2.6.20-16-generic
quiet
savedefault


title final_try
root      (hd0,1)
kernel      /boot/vmlinuz root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf ro single

Dzięki za info.

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #1 dnia: 2007-12-05, 10:16:25 »
Cytuj
VFS: Cannot open root device UUID=(blebleble...) or unknown block (0,0)
Please append correct root= boot option


root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf
opis błędu chyba jest jasny ? ;-)
a nie możesz po prostu podać czegoś w stylu /dev/sda1 (tam gdzie masz partycję '/') ?

Offline Łukasz Leppiej

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #2 dnia: 2007-12-05, 11:55:31 »
Cytat: chmooreck
Cytuj
VFS: Cannot open root device UUID=(blebleble...) or unknown block (0,0)
Please append correct root= boot option


root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf
opis błędu chyba jest jasny ? ;-)
a nie możesz po prostu podać czegoś w stylu /dev/sda1 (tam gdzie masz partycję '/') ?
Dzięki za odpowiedź.

Spróbuję dodać, ale nie sądzę, żeby to coś zmieniło,
bo root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf
jest dokładnie taki sam dla nowego kernela(final_try) jak i dla działającego....

Dlaczego nie stworzył się obraz initrd??

P.S.
Co to jest linux-headers w /usr/src i czym się różni od źródeł?

Dzięki:D

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #3 dnia: 2007-12-05, 12:16:58 »
initrd nie tworzy się 'z automatu', musisz go sobie wygenerować narzędziami dostępnymi w dystrybucji - tutaj może być problem, brak wkompilowanej obsługi sterownika SATA/IDE i brak odpowiedniego modułu w initrd

do kompilacji jajek z serii 2.6 wystarczy
# make all modules_install

linux-headers są to nagłówki jądra, z którym został skompilowany glibc, poza modułami jądra wszystkie kompilowane programy powinny korzystać (w razie potrzeby) właśnie z nich

Offline Łukasz Leppiej

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #4 dnia: 2007-12-06, 00:19:16 »
W grubie - menu.lst
zmieniłem UUID na zwykły wpis

 
kernel /boot/vmlinuz root=/dev/sda2 ro

Niestety ten sam błąd

.conf jest dokładnie taki sam jak na stronie:
http://lindeman.nu/category/linux-on-dell-insipron-6000


Sciągnąłem sobie .conf stamtąd.... w końcu ten sam(?) nieznacznie różniący się sprzęt.

Dzięki

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #5 dnia: 2007-12-06, 01:04:32 »
Na działającym Linuksie zobacz poleceniem mount, gdzie masz zamontowaną główną partycję. to powinno wyeliminować problem jej wyboru w linii komend jądra.

Ale problem może być inny. Skoro jest to sda*, to może do jądra trzeba wrzucić na stałe lub do initrd moduły obsługi dysków SATA i kontrolera na płycie głównej.

Pogrzeb po forum - już podobny problem był całkiem niedawno - rozwiązany zresztą.
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline Łukasz Leppiej

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 16
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #6 dnia: 2007-12-06, 18:32:16 »
Cytat: arctgx
Na działającym Linuksie zobacz poleceniem mount, gdzie masz zamontowaną główną partycję. to powinno wyeliminować problem jej wyboru w linii komend jądra.
mount
/dev/sda2 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /windows type ntfs (rw,noexec,nosuid,nodev)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)


Cytat: arctgx
Ale problem może być inny. Skoro jest to sda*, to może do jądra trzeba wrzucić na stałe lub do initrd moduły obsługi dysków SATA i kontrolera na płycie głównej.

Pogrzeb po forum - już podobny problem był całkiem niedawno - rozwiązany zresztą.
OK


Dzieki:)

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 54
    • Zobacz profil
Kompilacja jądra
« Odpowiedź #7 dnia: 2007-12-07, 12:21:14 »
Witam

Jeżeli masz gdzieś pod ręką jakieś live cd to zabotuj się z niego i podaj
wyniki komendy:
file /boot/initrd.img-2.6.20-16-generic
ważne jest czy initrd to skompresowany sytem:
ext2/ext3 - najczęściej spotykane (knoppix "series") czy
cpio - debian czy
cramfs - chyba stary debian czy
squashfs - np finnx czy
lzma - INSERT
czy jakieś jeszcze inne cudo
do tych systemów plików musisz mieć wkompilowane moduły (jeśli taki jest
fs initrd), i nie zapomnij o ramfs i tmpfs
więcej w katalogu ./Documentation w źródłach kernela

Interpretacja linii
root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf ro quiet splash
leci najczęściej już w initrd tam jeżeli coś się wywali
to wyrzuca do "very limited shell" (busybox) pozwala to rozpoznać
gdzie nam coś się zatrzymuje.

ps.
title final_try
root        (hd0,1)
kernel        /boot/vmlinuz root=UUID=0a23c8af-6927-4b02-934c-15e48dde1ddf ro single

Kernel bez initrd? nie mam dużego doświadczenia ale nigdy takiego nie
widziałem.

PAX