Re: initrd and NFS

Peter Benie (peterb@chiark.greenend.org.uk)
Wed, 21 May 97 01:05 BST


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