unknown filesystem type 'devfs' kernel 22.214.171.124
Hi guys and gals,
I'm attempting to compile a kernel.org kernel version 126.96.36.199. 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.
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?
Information, we need info.
- 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.
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:
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):
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.
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.
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):
That's all I know so far... I'll post more as I learn... :)
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.
To give you an idea, on my SuSE 10.3 laptop, this is the contents of /sbin/ in my initrd file:
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"?
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.
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.
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 08:28 AM.|