2002-04-12 21:29:00

by Post, Mark K

[permalink] [raw]
Subject: RE: PROBLEM: kernel mount of initrd fails unless mke2fs uses 1024 byte blocks

Andries,

That won't be possible. Since this initrd is my root file system, when the
kernel fails to mount it, it goes into a panic and I'm dead. Any other
suggestions?

Mark

-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Friday, April 12, 2002 5:17 PM
To: [email protected]; [email protected];
[email protected]
Subject: RE: PROBLEM: kernel mount of initrd fails unless mke2fs uses
1024 byt e blocks


The kernel does set_blocksize() to change the blocksize of your
device. This set_blocksize() throws away all buffers with the
now incorrect size. But your device is a ramdisk, and throwing
out these buffers kills all your data.

Andries,

Thanks for the update. So, what do I do now?
Wait for a fix for 2.2? Send my problem report to someone else?

First you check whether my analysis is correct:
check that after the failed mount attempt the ramdisk
does not hold any data anymore. (Say with od or so.)

Now we have a known problem. You can avoid meeting it
by only using blocksize 1024. On the kernel side this
of course will have to be fixed some time.
I think Adam Richter once submitted a patch to fix this,
but apparently it was not taken.
For 2.5 I think the aim must be to get rid of set_blocksize()
entirely. I don't know whether 2.2 and 2.4 will be fixed.

Andries