[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fwd: Bug#164498: mkinitrd doesn't seem to create the correct initrd image



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I am quite puzzled by the structure of the resulting initrd image.  If I have 
understood what is happening (and I must admit I am struggling) the following 
steps occur 

1) the kernel calls linuxrc to run
2) linuxrc saves the contents of real-root-dev in its own initrd image
3) linuxrc then changes the real-root-dev to its own initrd image
4) linuxrc exits which causes the kernel to start /sbin/init in the initrd 
image
5) /sbin/init then loads modules runs scripts etc
6) /sbin/init recovers the saved original real-root-dev and pivot_roots to it.

My question is, why go to great trouble to store and then change 
real-root-dev.  Why can't all of the meat of the action just happen in 
linuxrc and then pivot_root to the original root?

Alan Chandler



- ----------  Forwarded Message  ----------

Subject: Bug#164498: mkinitrd doesn't seem to create the correct initrd image
Date: Sun, 13 Oct 2002 10:44:12 +1000
From: Herbert Xu <herbert@gondor.apana.org.au>
To: 164498-submitter@bugs.debian.org

Herbert Xu <herbert@gondor.apana.org.au> wrote:
> On Sat, Oct 12, 2002 at 11:31:34PM +0100, Alan Chandler wrote:
>> Just after partition check on the two IDE drives I have
>>
>> kjournald starting.  Commit interval 5 seconds
>> EXT3-fs: mounted file system with ordered data mode
>> warning: can't open /etc/mtab: No such file or directory
>> pivot_root: No such file or directory
>
> Hmm, does your system have a /initrd directory?

This patch should fix it.
- --
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email:  Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
- --
Index: init
===================================================================
RCS file: /home/gondolin/herbert/src/CVS/debian/initrd-tools/init,v
retrieving revision 1.9
diff -u -r1.9 init
- --- init	11 Oct 2002 10:12:24 -0000	1.9
+++ init	13 Oct 2002 00:35:09 -0000
@@ -18,16 +18,16 @@
 	done
 	if [ -n "$fstype" ]; then
 		mount -nrt "$fstype" ${flags:+-o "$flags"} /dev2/root /mnt
- -	else
- -		IFS=,
- -		set -f
- -		set +f -- $FSTYPES
- -		unset IFS
- -		for i; do
- -			mount -nrt "$i" ${flags:+-o "$flags"} /dev2/root / &&
- -				break
- -		done
+		return
 	fi
+	IFS=,
+	set -f
+	set +f -- $FSTYPES
+	unset IFS
+	for i; do
+		mount -nrt "$i" ${flags:+-o "$flags"} /dev2/root /mnt &&
+			break
+	done
 }

 call() {

- -------------------------------------------------------

- -- 
Alan Chandler
alan@chandlerfamily.org.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)

iD8DBQE9qmDQuFHxcV2FFoIRAtTzAJwPYA/dmyDXMuqhttspDPRqvC+ptACdF+cS
an43Y8WN/OgtMyehoJGOoQA=
=Yg+o
-----END PGP SIGNATURE-----



Reply to: