Szavazás

Milyen virtualizációt használsz?

Online felhasználók

Jelenleg 0 felhasználó van a webhelyen

Új felhasználók

  • Morello
  • gyo
  • jbaksa
  • tomassy
  • Kalacska13

Ajánlott böngészők

Google Chrome

Jelenlegi hely

Kernel

Üdv!

Szeretném a jól működő kernelemet (gyári) újrafordítani, úgy hogy csak egy-két opciót módisítanék rajta. Van arra lehetőség, hogy a menuconfig indításánál a gyári kernel opciói jöjjenek fel? Utána módosítani rajta, majd fordítás, telepítés, lilo, restart?

Köszi a választ!

bazsimc

Fórumok: 

Mikor kiadod a make menuconfig parancsot, az utolso elotti opcio a "Load an alternate configuration file". Ezt valasztva megadhatod a gyari kernel config file-jat, amit a /boot konyvtarban talalsz.

Már örültem, hogy sikerült. Arra rájöttem, hogy initrd-t kell csinálnom.
Nem sikerült.

Tudnátok segíteni, hogy milyen parancsot kell kiadni?
A root: /dev/hda5 , ext4 fs.
A kernel 2.6.29.6-smp

Nekem nem sikerült. Hibával áll le a betöltés:
mount: mounting /dev/hda5 on /mnt failed: no such device

Mi lehet a baj?

Köszi!

En ezen scrip altal generalt parancsot hasznaltam:
/usr/share/mkinitrd/mkinitrd_command_generator.sh -r

2.6.32.7-es kernel, ext4-es filerendszer es lvm kombinaciojara nekem ezt a parancsot javasolta:
mkinitrd -c -k 2.6.32.7 -f ext4 -r /dev/mapper/myslackvg-root -m crc16:jbd2:mbcache:ext4 -L -o /boot/initrd.gz

P.S. lilo.conf-ba ne feledd el megadni az initrd-t, majd ujratenni a lilo-t

Köszi Kakukk!

Én is lefuttattam mkinitrd command generátort, majd a lilo-t.
A hibaüzenet ugyanaz. Arra panaszkodik, hogy nem tudja mountolni a hda5-t.
Lehet összefüggés azzal, hogy a hda5 egy logikai partició?

Köszi!

B.

Nem hiszem. Sok ideig, amig meg hasznaltam windows-t nekem is logikai particio a root, a swap es a home is.
Igazabol nem tudom mi lehet... Esetleg linkeld be ide, milyen initrd parancsot adtal ki es hogyan nez ki a lilo.conf...

tamas.csabi képe

Szevasztok

Nem kell initrd, ha a fájlrendszert fixen belerakod a kernelbe.
Meg érdemes egyéni initrd -t készíteni, nem a régit felülírni :-))
Az -r opciónál neked más kell, ha csak nem te is LVM -et használsz, mint kukukk.
A logikai partíció nem zavar be.
Nem tettél véletlenül valamit modulba, vagy hagytál ki valamit, ami esetleg kellett volna?
Mit szerettél volna kihagyni a kernelből?

Szevasztok

Halisztok!

Íme itt az üzenet:

initrd.gz Loading kernel modules for initrd.gz:
mount: mounting /dev/hda5 on /mnt failed: No such device or address
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Type 'exit' when things are done.
/bin/sh: can't access tty: job control turned off

Tulajdonképpen a "powertop"-ot akarom kihasználni, ehhez kernelbe szeretném tenni a "kernel hacking"-et és a "Tickless timer"-t (CONFIG_NO_HZ). És ha már új kernel, akkor kivenném a gfs2-t.

Ennyi.

Nehéz elhinni, hogy egy ilyen tök átlagos konfiggal ilyen bonyolult egy nyamvadt gyári kernelt módosítani. Ennyire noob nem lehetek! Vagy mégis?! :)

Köszönöm az eddigieket is!

Szia!

Új kernel fordításakor az eszközök lehet, hogy átneveződnek. Valószínűleg nálad is ez történhetett.
Pat írta a current changelog -jában:

"New kernels... and this deserves a mention/warning: the last bits of the
"old" IDE/ATA system have been removed now. Everything should be using
the libata based drivers now, so if you have any drives that are currently
running as /dev/hda, /dev/hdb, etc., when you reboot with these kernels all
drives will be renamed as /dev/sda, /dev/sdb, etc. If you had any /dev/sd*
already, they might get renamed. Adjustments may be required in
/etc/lilo.conf, /etc/fstab, the initrd, and elsewhere. Good luck!"

Szóval, ha a current ágból szedted a config file -t, akkor a hd* -ot át kell nevezni sd* -ra.
Nézd meg, hogy milyen kimenetet ad az:
ls /dev/hd*

és a
ls /dev/sd*
Ez alapján már tudod módosítani a /etc/fstab -ot

Sziaszok!

Ebben lehet valami.
De ha átírom az etc/fstab-t /etc/mtab-t, akkor meg a gyári kernellel nem fog menni, nem?
Szeretném ha egyelőre mindkét kernel választható legyen.

Kipróbáltam, hogy a mkinitrd parancsban kicseréltem a hda5 -t sda5 -re. Az eredmény ugyanaz, mint azelőtt.

Köszi!

Szia!

Szerintem hagyd az initrd -t. Inkább fordítsd be a kernelbe fixen ami neked kell. Nem érdemes vele ennyit bajlódni. Saját fordítású kernelnél amúgy sincs sok értelme. Az initrd -t arra találták ki, hogy a disztrók kernele ne legyen túl nagy. Amit csak lehet beraknak modulba. Ha pedig boot során kell valami, akkor azt be lehet tölteni initrd -vel.
Na mármost, ha te magadnak fordítod a kernel -t, akkor ki tudod választani, hogy neked mi kell a boot -oláshoz, és így elkerülheted az initrd -t. (És kiszedheted a sok felesleges cuccot a kernelből, ami neked nem kell, így nem lesz túl nagy a kerneled.)

"Kipróbáltam, hogy a mkinitrd parancsban kicseréltem a hda5 -t sda5 -re. Az eredmény ugyanaz, mint azelőtt."

Szerintem pont ennek kellett történnie; ugyanis a mount -olás akkor is a /etc/fstab -ból történik, szóval ilyen szempontból mindegy, hogy mit adsz meg az initrd -nek. (Lehet, hogy ebben tévedek, ha igen, akkor majd mások kijavítanak.)

"De ha átírom az etc/fstab-t /etc/mtab-t, akkor meg a gyári kernellel nem fog menni, nem?
Szeretném ha egyelőre mindkét kernel választható legyen"

Ha ezt szeretnéd, akkor forgasd bele a kernelbe az IDE/ATA támogatást.
Vagy ami szerintem jobb megoldás: tölts le a current ágból egy kernelt. Ott már eleve sd* -al jelölik a meghajtókat, illetve partíciókat.Így a gyári és a saját kerneled is kompatibilis lesz.
Egyébként ha megy majd rendesen az általad fordított kernel, akkor amúgy sem lesz szükséged a gyárira.

Köszönöm a választ, de akkor gyakorlatilag visszaérkeztünk az eredeti kérdéshez, amit még tovább egyszerűsítve feltennék újra:

Hogyan tudnám a gyári (telepítőn szereplő) kernelt reprodukálni?

avagy

Honnan/melyik .config -ot kellene a menuconfig-ba betöltenem ahhoz, hogy a make után gyakorlatilag u.a. a kernel legyen a végeredmény?

Értem én, hogy noob vagyok, de minden tanácsotokat szépen sorban megfogadok, mégsem sikerült eddig még működő kernelt fabrikálnom, pedig a gépem lehető legalapabb hardverrel rendelkezik.

Köszönöm

Szia!

A /boot könyvtárból keresd ki a kerneledhez tartozó config file -t.
Ha a generic kernelt használod, akkor lehet, hogy kell majd initrd is.

Úgy tűnik sikerült kicsit haladnom.

A lilo.conf-hoz hozzáadtam:
Append = "raid=noautodetect rootfs=ext4"

és kivettem az initrd hivatkozást.

Már nincs kernel panic, viszont van egy ilyesmi hiba (Értelemszerűen Slack13 és nem Suse).

Miért akarja e2fsck-val ellenőrizni az ext4 fájlrendszert?
Viszont már "singleuser mode"-ban be tudok jelentkezni.

Van tippetek a végső megoldásra?
Azt ugyanis nehezen tudom elképzelni, hogy hibás a root fájlrendszer ha az egyik és hibátlan ha a másik kernelt indítom.

Btw. érdekelne, hogy a gyári kernel honnan tudja, hogy a rootfs ext4? A lilo.conf-ban neki miért nem kell a fenti append-es sor?

Üdv és köszi!

Indítottam DVD-ről a gépet és lefuttattam az e2fsck-t. Aszongya, hogy nem tetszik neki a superblock (A csatolt kép alapján Nektek is úgy tűnik, nem?).
Na, szóval akkor kiderítettem, hogy 4K -s blokkokban van a hda5, ebből meg állítólag következik, hogy 32768-ra kell új superblockot íratni. Ezt is elvégeztem.

Reboot.

A helyzet változatlan.

Tipp?

Köszi!

Sajnos nem tudok segiteni,helyette leirom a sajat storim, picit hasonlo a tiedhez.
Adott egy laptop, benne egy vinyoval (sda), amit nem akarok piszkalni. Vettem egy USB-s kuslo vinyot (sdb), amire Ubuntu 9.10 ment fel (grub 2-vel), mert annak a CD-je volt keznel.
Kesobb feltettem egy Slackware13 at, lilo-val; boot utan a lilo csak ennyit ir: 01010101...
Slackware-es particio helyere probaltam Debian-t is (5.x), grub(1) telepul, boot utan: Error 17...
Valahol neten olvastam, hogy talan a particio sorrend nem jo, ezt fdiskkel javitottam (x (extra functionality (experts only)), majd f (fix partition order) ).
Ezutan persze modositani kellett a grub menu.lst-jet, de persze nem lett jobb.
Azt is probaltam, hogy az Ubuntu grub2-jet hasznalom, de azzal csak az Ubuntuba tudok bootolni. A tobbi esetben "no such file", "no partition selected" es "you should load kernel first" hibauzeneteket kapom.
(Szinte) biztos vagyok benne, hogy nem irtam el a lilo.conf*-ot, sem a grub config fajljat.
Ami meg erdekes info - bar nem hinnem, hogy koze van hozza - az az, hogy az Ubuntu 32bites a tobbi 64.

* A telepites vegen keszul egy egyszeru lilo.conf, en csak azt adom meg melyik MBR-be keruljon (sdb - telepites kozben is vegig ennek latja az USB-s vinyot), meg, hogy hol a kernel.

A kérdést azzal oldottam meg, hogy újra telepítettem a rendszert, immáron ext3 root fs-sel.
A fenti mizéria után már könnyedén fordult és indult az új kernelem.

Mindenkinek köszönöm a segítséget!

Belépés

Friss hozzászólások