2004-03-05 10:53:32

by Denis Vlasenko

[permalink] [raw]
Subject: initrd does not boot in 2.6.3, working in 2.4.25

I am using initrd in order to configure ethernet and
mount NFS root. It works with 2.4.25 kernel, like this:

linld image=2425 initrd=image.gz vga=4 "cl=root=/dev/ram init=/linuxrc.nfs.vda devfs=mount"

that is, it unpacks image.gz into ramdisk #0, mounts it,
mounts devfs on /dev and execs /linuxrc.nfs.vda.

When I tried to boot 2.6.3 with

linld image=263 initrd=image.gz vga=4 "cl=root=/dev/ram init=/linuxrc.nfs.vda devfs=mount"

it unpacks image.gz into ramdisk #0, mounts it,
mounts devfs on /dev and ... complains about NFS server.
Wow. I did not say /dev/nfs, what NFS?

...
VFS: Mounted root (ext2 filesystem)
Mounted devfs on /dev
(here 2.4.25 would say "Freed unused kernel mem..." and exec init)
Root-NFS: No NFS server available, giving up
VFS: Unable to mount root fs via NFS, trying floppy
VFS: Insert root floppy and press ENTER

Omitting devfs=mount does not help.
root=/dev/ram0, root=/dev/rd/0 does not help.
Config attached.
--
vda


Attachments:
.config (28.11 kB)

2004-03-05 11:05:07

by William Lee Irwin III

[permalink] [raw]
Subject: Re: initrd does not boot in 2.6.3, working in 2.4.25

On Fri, Mar 05, 2004 at 12:38:53PM +0200, vda wrote:
> I am using initrd in order to configure ethernet and
> mount NFS root. It works with 2.4.25 kernel, like this:
> linld image=2425 initrd=image.gz vga=4 "cl=root=/dev/ram init=/linuxrc.nfs.vda devfs=mount"
> that is, it unpacks image.gz into ramdisk #0, mounts it,
> mounts devfs on /dev and execs /linuxrc.nfs.vda.
> When I tried to boot 2.6.3 with
> linld image=263 initrd=image.gz vga=4 "cl=root=/dev/ram init=/linuxrc.nfs.vda devfs=mount"
> it unpacks image.gz into ramdisk #0, mounts it,
> mounts devfs on /dev and ... complains about NFS server.
> Wow. I did not say /dev/nfs, what NFS?
> ...
> VFS: Mounted root (ext2 filesystem)
> Mounted devfs on /dev
> (here 2.4.25 would say "Freed unused kernel mem..." and exec init)
> Root-NFS: No NFS server available, giving up
> VFS: Unable to mount root fs via NFS, trying floppy
> VFS: Insert root floppy and press ENTER
> Omitting devfs=mount does not help.
> root=/dev/ram0, root=/dev/rd/0 does not help.
> Config attached.

nfsroot works in 2.6.3 and above here. I'm not sure you need it per se
for initrd's; I think the way it's intended to work with that is for
the scripts to configure network interfaces, mount the nfsroot, and then
pivot_root(). Can you try without initrd?
Also, try passing ip= for these things.


-- wli

2004-03-05 12:58:10

by Pascal Schmidt

[permalink] [raw]
Subject: Re: initrd does not boot in 2.6.3, working in 2.4.25

On Fri, 05 Mar 2004 12:00:24 +0100, you wrote in linux.kernel:

> linld image=3D263 initrd=3Dimage.gz vga=3D4 "cl=3Droot=3D/dev/ram init=3D=
> /linuxrc.nfs.vda devfs=3Dmount"

Try root=/dev/ram0

--
Ciao,
Pascal

2004-03-05 16:42:37

by Denis Vlasenko

[permalink] [raw]
Subject: Re: initrd does not boot in 2.6.3, working in 2.4.25

On Friday 05 March 2004 14:57, Pascal Schmidt wrote:
> On Fri, 05 Mar 2004 12:00:24 +0100, you wrote in linux.kernel:
> > linld image=3D263 initrd=3Dimage.gz vga=3D4 "cl=3Droot=3D/dev/ram
> > init=3D= /linuxrc.nfs.vda devfs=3Dmount"
>
> Try root=/dev/ram0

I tried. Not working.
--
vda

2004-03-05 16:43:23

by Denis Vlasenko

[permalink] [raw]
Subject: Re: initrd does not boot in 2.6.3, working in 2.4.25

On Friday 05 March 2004 13:04, William Lee Irwin III wrote:
> On Fri, Mar 05, 2004 at 12:38:53PM +0200, vda wrote:
> > I am using initrd in order to configure ethernet and
> > mount NFS root. It works with 2.4.25 kernel, like this:
> > linld image=2425 initrd=image.gz vga=4 "cl=root=/dev/ram
> > init=/linuxrc.nfs.vda devfs=mount" that is, it unpacks image.gz into
> > ramdisk #0, mounts it,
> > mounts devfs on /dev and execs /linuxrc.nfs.vda.
> > When I tried to boot 2.6.3 with
> > linld image=263 initrd=image.gz vga=4 "cl=root=/dev/ram
> > init=/linuxrc.nfs.vda devfs=mount" it unpacks image.gz into ramdisk #0,
> > mounts it,
> > mounts devfs on /dev and ... complains about NFS server.
> > Wow. I did not say /dev/nfs, what NFS?
> > ...
> > VFS: Mounted root (ext2 filesystem)
> > Mounted devfs on /dev
> > (here 2.4.25 would say "Freed unused kernel mem..." and exec init)
> > Root-NFS: No NFS server available, giving up
> > VFS: Unable to mount root fs via NFS, trying floppy
> > VFS: Insert root floppy and press ENTER
> > Omitting devfs=mount does not help.
> > root=/dev/ram0, root=/dev/rd/0 does not help.
> > Config attached.
>
> nfsroot works in 2.6.3 and above here. I'm not sure you need it per se
> for initrd's; I think the way it's intended to work with that is for
> the scripts to configure network interfaces, mount the nfsroot, and then
> pivot_root(). Can you try without initrd?
>
> Also, try passing ip= for these things.

I run these things everyday.
nfsroot and ip=.... works, no question about that.

Just imagine all-modular kernel which needs to load ethernet driver first,
*then* mount nfs root and pivot_root. Or nfsroot-over-wireless :)
--
vda

2004-03-05 17:06:40

by William Lee Irwin III

[permalink] [raw]
Subject: Re: initrd does not boot in 2.6.3, working in 2.4.25

On Friday 05 March 2004 13:04, William Lee Irwin III wrote:
>> nfsroot works in 2.6.3 and above here. I'm not sure you need it per se
>> for initrd's; I think the way it's intended to work with that is for
>> the scripts to configure network interfaces, mount the nfsroot, and then
>> pivot_root(). Can you try without initrd?
>> Also, try passing ip= for these things.

On Fri, Mar 05, 2004 at 06:31:31PM +0200, Denis Vlasenko wrote:
> I run these things everyday.
> nfsroot and ip=.... works, no question about that.
> Just imagine all-modular kernel which needs to load ethernet driver first,
> *then* mount nfs root and pivot_root. Or nfsroot-over-wireless :)
> --
> vda

For this, you should probably script the initrd to do the IP
configuration and mount the nfsroot before pivot_root().


-- wli

2004-03-05 21:43:07

by Denis Vlasenko

[permalink] [raw]
Subject: Re: initrd does not boot in 2.6.3, working in 2.4.25

On Friday 05 March 2004 19:06, William Lee Irwin III wrote:
> On Friday 05 March 2004 13:04, William Lee Irwin III wrote:
> >> nfsroot works in 2.6.3 and above here. I'm not sure you need it per se
> >> for initrd's; I think the way it's intended to work with that is for
> >> the scripts to configure network interfaces, mount the nfsroot, and then
> >> pivot_root(). Can you try without initrd?
> >> Also, try passing ip= for these things.
>
> On Fri, Mar 05, 2004 at 06:31:31PM +0200, Denis Vlasenko wrote:
> > I run these things everyday.
> > nfsroot and ip=.... works, no question about that.
> > Just imagine all-modular kernel which needs to load ethernet driver
> > first, *then* mount nfs root and pivot_root. Or nfsroot-over-wireless :)
> > --
> > vda
>
> For this, you should probably script the initrd to do the IP
> configuration and mount the nfsroot before pivot_root().

Exactly. For now I don't really need it, but decided to
try it just in case I'll need it later. I stuffed
udhcp and nfs tools into initrd, played with it a bit,
and finally managed to make it work under 2.4.25.

Then I tried 2.6.3 with the _same_ initrd and same
bootloader.

2.6.3 refuses to recognize my initrd as root fs.
It even mounts it on / but then suddenly acts
as if I specified root=/dev/nfs. I _didn't_.
I said root=/dev/ram, then tried root=/dev/ram0,
root=/dev/ram/0, root=/dev/rd/0.
All to no avail:

VFS: Mounted root (ext2 filesystem) <-- mounts initrd on /
Mounted devfs on /dev

(here 2.4.25 would say "Freed unused kernel mem..." and happily exec init)

Root-NFS: No NFS server available, giving up
VFS: Unable to mount root fs via NFS, t
--
vda