LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Kernel (http://www.linuxquestions.org/questions/linux-kernel-70/)
-   -   unknown filesystem type 'devfs' kernel 2.6.23.12 (http://www.linuxquestions.org/questions/linux-kernel-70/unknown-filesystem-type-devfs-kernel-2-6-23-12-a-609871/)

checkmate3001 12-29-2007 05:30 PM

unknown filesystem type 'devfs' kernel 2.6.23.12
 
Hi guys and gals,

I'm attempting to compile a kernel.org kernel version 2.6.23.12. I ran into some problems with it not finding my sata drive... but I worked that out.

Now I'm hitting a road block with the whole depreciated devfs ---> new udev issue. It can't mount the drive and thus can't boot.

I don't know much else than that. I've never compiled a kernel myself before and accepted it as a challenge. I assume once I get ver 2.6.23-12 up and running I have no reason to use 2.6.18-5 (my current working kernel).

I'm looking for some basic info (or some help finding it) about the difference between the two, are there any problems I may run into in the future by switching, do I have to switch... I'm clueless.

Thank you in advance.

jschiwal 12-29-2007 06:55 PM

I don't know if you are having a udev issue. One thing that could trip you up is if you use the "acpi=no" kernel option. Disabling acpi will also disable udev. You should provided information such as how many drives you have, what the model of the drive is, what controller you have, etc. Is it the root partition that you can't mount, or a different one? At what stage does the problem occur? It could be a matter of not having a needed module in initrd that the kernel needs for that controller.

If your BIOS, Grub or the Kernel have different ideas on which drive should come first, that could cause a problem booting as well. If grub considers one drive (hd0,0) when booting, but (hd1,0) after booting, you will even have a problem getting the mbr updated. A fix is to edit /boot/grub/device.map.

If you are compiling a new kernel, you should run "make oldconfig" before "make xconfig". This will reused your old working config on the new kernel and prompt you only for new items. You can then tweak your config further in "make xconfig".

Rereading your title, it looks like you may have an entry in /etc/fstab or in a mount command in initrd that refers to devfs which doesn't exist. Which distro are you using? You may have better luck if you upgraded your distro first.

---

To sum up, I don't think the problem is with udev. The problem is that you are trying to use devfs somewhere. The question is where?

syg00 12-29-2007 07:07 PM

Information, we need info.
- messages
- at what stage of the boot are you failing ???
- initrd involved ???

2.6.19 brought in the (major) libata change - .18 to .23 is a pretty major jump; especially if using the .config out of a distro, rather than your own "known good" config.
Using oldconfig will get a bit ugly, but can be managed.

checkmate3001 12-30-2007 01:26 PM

I currently have Debian Etch installed - Kernel version 2.6.18-5. I have attempted to follow the directions for updating the kernel from this page:
http://www.howtoforge.com/howto_linu...compile_debian

I have made the appropriate changes regarding grub since in this howto they are using lilo instead. They are also jumping from kernel ver 2.4 to 2.6

I haven't figured out how to get the messages from the terminal into a file . I think it happens to early in the boot and since it can't mount the drive it is somewhat moot. This is what I have written down (everything before this, which isn't much, seems to be fine):
Code:

initrd-tools: 0.1.84.2
mount: unknown filesystem type "devfs"
unmount: devfs: not supported
mount: unknown filesystem type "devfs"
unmount: devfs: not supported
pivot-root: No such file or directory
/sbin/init: 432: Cannot open dev/console: No such file
Kernel Panic - not syncing: Attempted to kill init!

The best I can tell (and I'm only guessing) is that my current working kernel supports the devfs and the new vanilla kernel does not. I had an earlier problem with it not being able to find the drive, but after a couple more attempts I realized and found that the sata module needed to be loaded/included.

I can include more info - just let me know what you need.

I did take my old config and tried to apply it to the new kernel but it appears like there were a lot of options that didn't translate to the new kernel. A lot of errors/warnings came up when I did the 'make menuconfig' before it opened.

Thank you guys for helping me out.

syg00 12-30-2007 04:28 PM

O.k., the problem is with the initrd - it has to have all the support needed to allow the root to be mounted (where said support isn't in the kernel itself).
Never use one myself - I always compile what I need into the kernel itself. Else what's the point of doing my own kernel ???.

I'm surprised devfs even still worked on 2.6.18 - you'll (apparently) have to go with udev now. That means a rebuild of the initrd, or moving over to in-kernel support. Will also mean a rework of the init scripts I would think, but I'm not a Debian user so I couldn't say for sure.

checkmate3001 12-30-2007 07:10 PM

I found some more information that might be helpful. It appears I have udev installed, which tells me that devfs is not the problem?

My fstab file (I organized it to make it more readable):
Code:

proc        /proc        proc        defaults                  0  0
/dev/sda1  /            ext3        defaults,errors=remount-ro 0  1
/dev/sda5  none          swap        sw                        0  0
/dev/sdb1  /media/cdrom0 udf,iso9660  user,noauto                0  0
/dev/fd0    /media/floppy auto        noauto,owner              0  0

My mtab file:
Code:

/dev/sda1 / ext3 rw,errors=remount-ro 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0
procbususb /proc/bus/usb usbfs rw 0 0
udev /dev tmpfs rw,mode=0755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0


That's all I know so far... I'll post more as I learn... :)

jschiwal 12-30-2007 07:34 PM

Usually, the mkinitrd command is a bash or perl script written by the distro maintainers.

I would recommend installing a 2.6 kernel for debian. The source package for a kernel using udev will probably update the mkinitrd script as well. After that, you would probably have better luck trying to compile a generic kernel.

Code:

http://www.debian.org/doc/manuals/reference/ch-kernel.en.html
7.3 The 2.6 kernel with udev

The udev is a dynamic replacement for /dev/. Device names can be chosen to be very short ones. The devfs used in the 2.4 kernel is now obsolete.

Installing the new Debian 2.6 kernel provided by kernel-image-2.6.NN with udev package will enable this.

You should mount or extract your initrd file and study any scripts in it. Some initrd files are gzipped cpio archives, while others are compressed cramfs images.
To give you an idea, on my SuSE 10.3 laptop, this is the contents of /sbin/ in my initrd file:
Code:

blogd  fsck  fsck.ext3  halt  insmod  killall5  modprobe  pidof  reboot  resume  showconsole  udevcontrol  udevd  udevsettle  udevtrigger
Your initrd file is probably designed for a kernel using devfs instead of one with udev support.

I bet your errors are occurring as the system is running in the initrd environment. If you examine the intrd contents, I bet you will find that the scripts it uses are obsolete.

You could also look in /lib/mkinitrd/ if it exists. If it exists, it may contain the resources that are copied to produce the initrd ramdisk file.

Also check if you have a "man 5 mkinitrd" manpage".

You may also need to look into the startup scripts your system uses as well.

Also, you need to install and configure the udevd daemon, the related commands and the /etc/udev.d/config/ files. Udev uses helper programs. KDE or Gnome is also involved. when you insert an external drive, udev will create the device nodes, but a kde or gnome daemon will mount it based on the user's actions.

Udevd & hald & the desktop environment are interconnected. I would recommend updating your distro instead. Otherwise you will have to duplicate all the work already done by others.

Sorry, but Debian "etch" doesn't mean anything to me. Is this the same as "Debian 4.0"?

checkmate3001 12-30-2007 11:29 PM

Yeah Etch is 4.0 (to my knowledge). When it attempts to boot one of the lines above what I listed mentions cramfs. So I assume cramfs vs cpio.

This all sounds like WAY to much work.

Screw it all.

checkmate3001 12-30-2007 11:30 PM

Thanks for all your help guys, but I'm done. To go through all that to just update the kernel is a waste of my time in my opinion.

checkmate3001 02-05-2008 11:12 PM

I figured it out. I used a link I found on here to read up on compiling the kernel.

I think my problem was that I had both initrd and initramfs-tools installed. I think there were some conflicts.

I got the 2.6.24 kernel compiled after a few tries.

I also learned that I needed ext3 built-in. To get my iptables to work I also needed ipv4 for full nat support.

Very excellent learning experience. I highly recommend compiling your own kernel if you have the patience.


All times are GMT -5. The time now is 05:04 AM.