Messages in this thread | | | Date | Wed, 21 May 97 01:05 BST | From | (Peter Benie) | Subject | Re: initrd and NFS |
| |
In article <Pine.LNX.3.95.970520180318.21182p-100000@Galois.fs100.suse.de>, Hubert Mantel <mantel@suse.de> wrote: >On Tue, 20 May 1997, Werner Almesberger wrote: > >> Are there any other problems initrd users have experienced ? > >Yes: If you boot with initrd, you cannot start a UMSDOS based Linux-system >because the pseudo-root will get destroyed. The attached patch fixes this.
Since I wanted to make some changes to umsdos, I recompiled it as a module. This broke initrd. For umsdos to work as a module, a couple of other changes need to be made:
1) pseudo_root should be defined in the kernel, exported, and declared extern in umsdos/inode.c. The pseudo-root hack should be done for CONFIG_UMSDOS_FS_MODULE as well as CONFIG_UMSDOS_FS.
2) There needs to be a method to specify which filesystem the root device should use (eg. rootfs=umsdos/ext2/nfs/whatever). Currently, when mounting root, do_mount_root traverses the list of filesystems and mounts on the first one it finds. Since umsdos depends on msdos, msdos registers itself first and is therefore first in the list and the root filesystem is then mounted msdos. (The hack that I actually implemented to work around this was to make register_filesystem add things to the front of the list, so umsdos was before msdos. This is not the right solution!)
These problems, and the problems that the previous mail patched, are caused by the fact that the umsdos pseudo-root is a nasty hack. Mounting a disk should always do the same thing whether or not it's mounting on / - the fiddle for '/linux' should not be to chroot the init process. If nobody objects, I shall make a patch to change the way pseudo-root works. [Ie. mail me if you've already done this.]
Peter Benie
| |