Messages in this thread | | | Date | Wed, 11 Dec 2002 11:00:08 +0100 | From | Helge Hafting <> | Subject | Re: 2.5.51 won't boot with devfs enabled |
| |
Eric Buddington wrote: > > With 2.5.51 (gcc-3.2, Athlon, mostly modules, DEVFS=y, DEVFS_DEBUG=y), > boot panics with "VFS: Cannot open root device "hda1" or > 03:01". > > I had the same problem with 2.5.50, avoidable by disabling devfs entirely. > > -Eric > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
Booting anything later than 2.5.48 with devfs configured either needs an extra kernel parameter, or a code change. Something broke when do_mounts.c were reorganized. It doesn't matter wether devfs is used or not, as long as it is configured.
The lilo solution: lilo tend to have a "root=/dev/hda1" or similiar. This gets converted to "root=0301" on the kernel command line. (Look at dmesg after a successful boot)
But this don't work for some reason when devfs is configured. Use the following:
append="root=/dev/hda1"
to solve the problem. This isn't converted to numbers and works. Of course if you use auto-mounted devfs then you don't have a /dev/hda1 but a /dev/ide/host0/bus0/target0/lun0/part1 instead. If so, use that as root instead. You still have to use the append= trick.
The code solution: Edit init/do_mounts.c Remove the following lines from the beginning of the function prepare_namespace: #ifdef CONFIG_DEVFS_FS sys_mount("devfs", "/dev", "devfs", 0, NULL); do_devfs = 1; #endif Then recompile, and the kernel should work with any lilo setup that worked for 2.5.47 and earlier. At least it worked for the setups I tried.
This has no effect on kernels without devfs, and helps for kernels comiled with devfs wether devfs is used or not. I posted a patch for this, but there were no interest at all.
Helge Hafting - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |