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