PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernel 2.6.15 mit LVM?



thomasn1975
09.03.06, 20:28
Hallo!

Ich habe schon Google durchgegrast und die gefundenen Forenbeiträge dort sowie hier.

Ich verwende Debian Sarge und wollte mir gerne "von Hand" einen eigenen Kernel kompilieren. Der Kernel an sich bootet auch, allerdings habe ich wohl die unschöne Variante gewählt, / auf einem LVM-Volume zu installieren.

Bevor ich jetzt anfange, mich mit initrd zu beschäftigen, wollte ich fragen, wie ich es schaffe, LVM gleich in den Kernel einzukompilieren. Laut eines Forenbeitrags, den ich über Google gefunden habe, soll das möglich sein, leider wurde aber nicht erwähnt *wie*.

Einen Patch für 2.6.15 konnte ich auch nicht finden.

Vielen Dank schonmal für hilfreiche Tipps.

PS: Die Debian-Tools zum Kernel-Kompilieren wollte ich nicht benutzen, da ich evtl. auch auf einem im Einsatz befindlichen Fedora-System den Kernel kompilieren wollte. Das System hier ist also im weitesten Sinne ein "Test" dafür.

derRichard
09.03.06, 20:54
hallo!

kompiliere CONFIG_BLK_DEV_DM fix in den kernel rein.
im menuconfig ist das unter ""Device Drivers -> "Multi-device support (RAID and LVM)" -> "Device mapper support" zu finden.
aber du wirst wohl oder übel eine initrd verwenden müssen, da das lvm auch gestartet werden muss. (vgscan und co müssen gestartet werden...)

hth,
//richard

thomasn1975
10.03.06, 14:13
Ok, habe jetzt eine initrd angelegt, aber irgendwie scheint er diese nicht auszuführen.

Angelegt habe ich sie mit:

mkfs.cramfs initrd initrd.img

Im Verzeichnis "initrd" habe ich die Verzeichnisse und Dateien

bin/sh
bin/vgscan
bin/vgcreate
etc/lvm/lvm.config
linuxrd

etc/lvm/lvm.config habe ich einfach kopiert. Ganz ohne Konfigurationsdatei läuft es auch nicht.
linuxrd hat Modus 0766 und sieht folgendermaßen aus:



#! /bin/sh

/bin/vgscan -a
/bin/vgcreate -a y


Leider scheint er aber beim Hochfahren das InitScript nicht auszuführen. Selbst ein testweise eingebautes echo "Test" wird nicht ausgeführt.

Das Image sollte soweit in Ordnung sein, jedenfalls wird es beim Hochfahren in die RAMDisk geladen und manuell kann ich es auch mit

dd if=initrd.img of=/dev/ram
mount -t cramfs /dev/ram ram

mounten und darauf zugreifen.

EDIT: Der DeviceMapper ist natürlich in den Kernel einkompiliert. Er kommt beim Booten auch bis zum Einhängen von /, findet dann aber das LVM-Volume nicht.

Hilfe! Was mache ich falsch? *heul*

Ich danke euch!

stefan-tiger
10.03.06, 14:39
Ist die initrd auch korrekt im Bootmanager eingetragen?

thomasn1975
10.03.06, 15:10
Hmmmm... ich gehe mal stark davon aus, ich habe die Zeilen der funktionierenden Konfiguration in menu.lst (ich benutze grub) einfach kopiert und die Dateinamen angepasst. Mir wird ja auch angezeigt, dass die initrd in die RAMDisk geladen wird.

EDIT: Achso: Wenn ich die initrd des funktionierenden (alten) Kernels angebe, wird diese ausgeführt. Nur durch die unterschiedlichen Versionen und Module, die ich direkt einkompiliert habe, endet es mit dieser initrd natürlich auch mit Kernel Panic.