Keine Kernel-Header und keine Module auf Debian-Server

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
betaworx
Beiträge: 5
Registriert: 18.12.2007 10:44:07

Keine Kernel-Header und keine Module auf Debian-Server

Beitrag von betaworx » 18.12.2007 10:59:16

Guten Morgen,

ich habe vor einigen Tagen Zugriff auf einen Server bekommen, und wollte dort
jetzt encfs installieren.

Leider scheitert es schon am "modprobe fuse":
sudo modprobe fuse
FATAL: Could not load /lib/modules/2.6.22.9/modules.dep: No such file or directory
Also mal rasch geschaut was wir so haben:
ls -lA /boot
total 2424
-rw-r--r-- 1 root root 512 2007-09-14 16:27 boot.0800
-rw-r--r-- 1 root root 1821520 2007-09-27 17:54 bzImage
-rw------- 1 root root 32256 2007-12-14 21:35 map
-rw-r--r-- 1 root root 612161 2007-09-27 17:54 System.map

ls -lA /usr/src
total 32
-rw-r--r-- 1 root src 29635 2007-11-11 15:09 kernel.config

ls -lA /lib/modules/
total 0
Ich habe keine .config unter /boot liegen, keine Dateien in /lib/modules, und keine Kernel-Header in /usr/src . Ich bin mit meinem Wissen etwas am Ende, habt ihr Tips wie ich jetzt weitermachen kann? Ohne Kernel-Header kann ich aber auch garnix machen ;-)

Noch als Nachtrag:
cat /proc/version
Linux version 2.6.22.9 (root@server) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Thu Sep 27 17:54:23 CEST 2007
Wie soll ich jetzt weiter vorgehen?

Falls ihr sonst noch Infos braucht, gerne.

MfG

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 18.12.2007 11:59:56

Willkommen im Forum!
Es sieht so aus als ob der Kernel nicht modular ist. Dies kannst du so überprüfen:

Code: Alles auswählen

grep CONFIG_MODULES /usr/src/kernel.config (Ich vermute mal, dass das die config ist)
zgrep CONFIG_MODULES /proc/config.gz (Falls config.gz existiert)
Sollte der Kernel nicht modular sein gibt es zwei Möglichkeiten:
1. Fuse ist einkompiliert: Dann kannst du auf "modprobe fuse" verzichten.
2. Fuse ist nicht einkompiliert: Du musst einen neuen Kernel kompilieren.

betaworx
Beiträge: 5
Registriert: 18.12.2007 10:44:07

Beitrag von betaworx » 18.12.2007 12:09:08

Danke für die zügige Antwort :)
grep CONFIG_MODULES /usr/src/kernel.config
# CONFIG_MODULES is not set

zgrep CONFIG_MODULES /proc/config.gz
gzip: /proc/config.gz: No such file or directory
Also nicht modular,

Fuse scheint auch nicht einkompiliert zu sein:
encfs ~/test ~/temp
EncFS Password:
fuse: failed to exec fusermount: Permission denied
fuse failed. Common problems:
- fuse kernel module not installed (modprobe fuse)
- invalid options -- see usage message
Folglich muss ich einen neuen Kernel bauen? :?

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 18.12.2007 12:10:54

Genau so ist es!

betaworx
Beiträge: 5
Registriert: 18.12.2007 10:44:07

Beitrag von betaworx » 18.12.2007 12:15:27

Ok, auf was muss ich besonders achten?

Kann ich einfach mit "sudo make oldconfig" die alte config herstellen, und dann mit "sudo make menuconfig" die Punkte anpassen, oder muss ich die config komplett selbst einstellen?

MfG

/edit: Kann ich nicht über apt-get einen älteren Kernel installieren, wozu in den Repos auch die header vorliegen?

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 18.12.2007 13:11:44

betaworx hat geschrieben:/edit: Kann ich nicht über apt-get einen älteren Kernel installieren, wozu in den Repos auch die header vorliegen?
Ja, wollte ich dir auch gerade raten.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

betaworx
Beiträge: 5
Registriert: 18.12.2007 10:44:07

Beitrag von betaworx » 18.12.2007 13:37:20

Ich frag dann lieber nochmal hier, bevor ichs kaputt mache ...

Ich hab via apt-get einen älteren Kernel installiert, und jetzt folgende Dateien:
ls -lA /boot
total 9424
-rw-r--r-- 1 root root 512 2007-09-14 16:27 boot.0800
-rw-r--r-- 1 root root 1821520 2007-09-27 17:54 bzImage
-rw-r--r-- 1 root root 64781 2007-12-01 23:25 config-2.6.18-5-amd64
-rw-r--r-- 1 root root 4587072 2007-12-18 13:14 initrd.img-2.6.18-5-amd64
-rw------- 1 root root 32256 2007-12-18 13:29 map
-rw-r--r-- 1 root root 612161 2007-09-27 17:54 System.map
-rw-r--r-- 1 root root 973910 2007-12-02 04:13 System.map-2.6.18-5-amd64
-rw-r--r-- 1 root root 1512496 2007-12-02 04:13 vmlinuz-2.6.18-5-amd64
Bei der Installation via apt-get kam folgendes:
Unpacking udev (from .../archives/udev_0.105-4_i386.deb) ...
Selecting previously deselected package initramfs-tools.
Unpacking initramfs-tools (from .../initramfs-tools_0.85h_all.deb) ...
Selecting previously deselected package linux-image-2.6.18-5-amd64.
Unpacking linux-image-2.6.18-5-amd64 (from .../linux-image-2.6.18-5-amd64_2.6.18.dfsg.1-13etch5_i386.deb) ...
Done.
Setting up udev (0.105-4) ...
sed: can't read /etc/udev/rules.d/z25_persistent-net.rules: No such file or directory
Populating the new /dev filesystem temporarily mounted on /tmp/udev.YSwwH1/...
Restarting system log daemon: syslogd.

Setting up initramfs-tools (0.85h) ...

Setting up linux-image-2.6.18-5-amd64 (2.6.18.dfsg.1-13etch5) ...

Hmm. The package shipped with a symbolic link /lib/modules/2.6.18-5-amd64/source
However, I can not read the target: No such file or directory
Therefore, I am deleting /lib/modules/2.6.18-5-amd64/source

Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
You already have a LILO configuration in /etc/lilo.conf
Running boot loader as requested
Testing lilo.conf ...
Testing successful.
Installing the partition boot sector...
Running /sbin/lilo ...
Installation successful.
In der /etc/lilo.conf ist immernoch der alte Inhalt drin:
cat /etc/lilo.conf
boot=/dev/sda
root=/dev/sda1
map=/boot/map
delay=20

default=Linux

image=/boot/bzImage
label=Linux
read-only
Jetzt meine Frage: Wie muss ich die lilo.conf anpassen, dass der neue alte (also 2.6.18-5) gebootet wird? Ich möchte mir den Bootloader nicht abschießen, weil ich dann garkeinen Zugriff mehr aufs System habe.

Vielen Dank schonmal

MfG

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 18.12.2007 14:08:16

Erstmal: CD besorgen, von der du das System booten kannst, falls was schief geht.

Normalerweise wird der Kernel an ``/vmlinuz`` gesymlinkt, das trägst du (sofern es das bei dir gibt) in die Datei ein.

Dazu musst du noch die initrd in die Datei eintragen, so wie hier beschrieben wird. Danach, nachdem das Kernel-Image, die Map-Datei und die Initrd richtig eingetragen sind, solltest du ``lilo`` laufen lassen.

Insgesamt solltest du überlegen auf GRUB umzusteigen, da kann man den Kernel vor dem Booten frei wählen.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

betaworx
Beiträge: 5
Registriert: 18.12.2007 10:44:07

Beitrag von betaworx » 18.12.2007 16:46:01

CD besorgen war ein guter Ratschlag, hätte mir bei einem dedizierten Server im Ausland aber nicht wirklich weitergeholfen ;)

Es hat nun funktioniert, und ich schreib hier auch rein was ich gemacht habe:

Erstmal einen anderen Kernel für meine Architektur geholt, ebenso direkt die Quellen:

Code: Alles auswählen

sudo apt-get install linux-image-2.6.18-5-amd64
sudo apt-get install linux-headers-2.6.18-5-amd64 
Da ich mir mit LILO nicht sicher war, aber GRUB ganz gut kenne, GRUB geholt und LILO entfernt:

Code: Alles auswählen

sudo apt-get install grub
sudo apt-get remove lilo
Danach GRUB als Bootloader installieren:

Code: Alles auswählen

sudo fdisk -l #Gibt die Festplatten und Partitionen aus
sudo grub-install /dev/sda #Fuer die erste SATA-Platte
Probing devices to guess BIOS drives. This may take a long time.
Searching for GRUB installation directory ... found: /boot/grub
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0) /dev/fd0
(hd0) /dev/sda
Alles korrekt? Dann die menu.lst für GRUB erzeugen:

Code: Alles auswählen

sudo update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ...

Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) y
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.18-5-amd64
Updating /boot/grub/menu.lst ... done
Richtiger Kernel, alles ok, und dann Neustart ... alles erfolgreich :)

Ich danke für die Unterstützung von eurer Seite :)

Antworten