> > echo 0x3a00 > /proc/sys/kernel/real-root-dev
>
> This is not needed at all. Currently initrd mounts kernel and leaves
> real-root-dev to be RAM disk and system is happy with it:
>
> [root@cooker root]# cat /proc/sys/kernel/real-root-dev
> 256
>
Even worse, you *must*not* do it. If you change real-root-dev in linuxrc
from RAM disk minor 0 kernel will try to remount root after linuxrc is
done:
init/main.c:prepare_namespace()
pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
if (pid>0)
while (pid != wait(&i));
if (MAJOR(real_root_dev) != RAMDISK_MAJOR
|| MINOR(real_root_dev) != 0) {
error = change_root(real_root_dev,"/initrd");
Trying to do it after real root was already mounted may be harmless, may
be not. Usage of real-root-dev is awful kludge, more clean solution
would be some /proc (or command line) interface, something like
echo 0 > /proc/sys/kernel/remount-root
or
linux ... no-root-remount ...
But I hope something better comes in 2.6 so it may become non-issue
then.
-andrej