> My recollection from my last job (unemployed for the time being :-),
> where I was building kernels with ext3 is correct.
> 
> If you have a kernel with ext2 linked statically and ext3 as a module,
> even if you load the ext3 module in the initrd, the filesystem will
> still be mounted with the ext2 driver.
> 
> This is because when the kernel tries to mount the root filesystem, it
> goes through it's list of filesystem drivers and uses the first one
> that recognizes the filesystem.  Statically linked drivers are tried
> before modular loaded drivers.  Because the disk format of ext2 and
> ext3 are the same, ext2 will successfully mount the root filesystem
> before ext3 gets a try.
> 
> There are two possible solutions to this problem.  The kernels that I
> was building used both.  :-)  The first solution is to link ext2
> dynamically (modular) and load it in the initrd on systems where the
> root filesystem is ext2 (no journal).  If you want the root filesystem
> mounted using the journal (ext3) then the initrd should load the ext3
> module (before the ext2 module if you wish to load it in the initrd,
> which is really not necessary).  The initrd should be a ROMFS
> filesystme with the romfs driver statically linked into the kernel.
> 
> The other solution is to use one of the following patches:
> 
> http://web.gnu.walfield.org/mail-archive/linux-fsdevel/2000-
> February/0148.html
> http://web.gnu.walfield.org/mail-archive/linux-fsdevel/2000-
> February/0144.html
> 
> I think I personally like the first one even though I used the second
> one in my kernels when I worked with Peter.
>

I prefer the second (may be because I am used to it since SVR4).

Mandrake, what would you speak up? :-)

-andrej 

Reply via email to