So as part of switching to using OpenSolaris on my laptop full time I needed to repartition the drive to give enough space to it so I can update and have annoying things like OpenOffice installed (well and a compiler suite and the ON sources, etc). So this seems like a simple task right? Wrong... I've done this sort of thing so many times before you'd think that I'd have learnt by now that it is never simple.

So I started with the obvious things, rsynced a copy of the important bits I wanted to keep. I then installed Ubuntu Intrepid Ibix Alpha 6 (because clearly stable OS releases are for losers). So far so good. A few teething pains, but nothing to write home about. So now that that system is mostly fine the time has come to load OpenSolaris 2008.05 onto the system (don't worry I'm going to upgrade it as soon as it's installed because having something that works problem on a system just makes me nervous...)

Fortunately I'd been attending SDC whilst this was going on and passing out OpenSolaris DVDs to promote using it. I just took one of these for myself to use. I installed it no problems (well my battery ran out during the install, but that's not really worthy of note). Ok so now I have both OpenSolaris and Ubuntu installed (well and Vista, but I don't like to talk about that). So now I upgrade OpenSolaris to build 98, again no real problems.

So now I try and boot Ubuntu again, it won't boot... It recognises the partition as being ext3, but can't read any files. I leap to the obvious (and wrong) conclusion that somehow OpenSolaris GRUB has broken compatibility with Linux... So I try downgrading GRUB on Solaris and get something that looks like a brick that will only boot Vista (essentially a brick). Hmm what's going on here. So I then spent some time rebuilding and putting grub in the appropriate place. I get back to the point where OpenSolaris will boot fine, but Ubuntu is still unable to boot.

At this point I did some digging Google is your friend. So it turns out that the problem is a little while back the size of the inode for ext3 was increased to 256 bytes to make it more forward compatible with ext4. My old Ubuntu and OpenSolaris setup never hit this because the filesystems were set up with the older sized inodes.

So I did some further digging. I was able to come across a patch for grub to add support for the larger inodes.

With this patch I applied it to the OpenSolaris Grub sources and rebuilt. With these binaries in hand I then judiciously applied them with installgrub (remember in Solaris it starts at s0 _not_ s1). Now I have a working system! It boots both Ubuntu and OpenSolaris. The only thing left is for me to file a bug and provide this patch so we don't have the problem with 2008.11.

Comments:

Post a Comment:
Comments are closed for this entry.

This blog copyright 2009 by Peter Buckingham