First let me say self-inflicted last minute installs are a bitch. As mentioned in my last post I finally took care of enough pre-work to finally rebuild my laptop. While I mentioned the extra motivation to rebuild was the presentations being done at my customer what I didn't say was that my laptop was going to be used by our Communications Area VP and a Solaris Product Marketing manager. So beyond the fact that I wanted to have to latest and greatest bits rocking and rolling (my previous beta build 62 was ancient) it would really have been a personal defeat for me to have our folks talking about the virtues of Solaris while Windows XP was really driving the projector - not that there's anything wrong with that. That said I knew I was talking a risk starting an install at 1:00 AM of a new Solaris Express build that just incorporated the new boot architecture and slew of other goodies (sorry only available internally thus far).
First scare of the night was forgetting the new boot architecture in Solaris likes the BIOS to be PnP friendly like modern operating systems (thank god Solaris is finally getting up to snuff in some critical areas - more on that later). I've been scanning all the relevant internal mailing lists so I quickly recovered from that slip and the installation via DVD went smoothly (finally with DMA now set to on by default the installation speed is on par with our peers). I thought I would be in bed easily by 3 AM, catch 6 hrs of sleep, run to pick up some materials from a VAR partner for the event, head to martial arts class, and have my laptop all ready to go well before showtime. Boy was that wishful thinking...
The first problem was after the Solaris bits got installed and I rebooted. Solaris Express for x86/x64 now uses a modified GRUB as it's boot loader - our GRUB implementation understands UFS file systems so we can read a GRUB configuration file as well as kick start a kernel on a slice within a primary disk partition. Upon the reboot my laptop stalled at the grub prompt. Right away I knew something was wrong with my menu.lst configuration file so I booted from the DVD again into single user mode and mounted the partition to see what got installed. My menu.lst file had nothing but comments in it thus the stall since GRUB had no idea what to do. So I fired up vi, reviewed the comments, and put what I thought was the right configuration to boot either Solaris or XP. My first mistake was bringing too much from my previous menu.lst configuration (GRUB from JDS that managed a triple-boot setup). I added the following then rebooted:
title Solaris Nevada Build 14
title Windows XP
which got me in trouble. I first tried to boot into XP to make sure my existing setup didn't get trashed - I wanted to know immediately I didn't have a boat anchor on my hands. XP booted successfully and things looked sane so I rebooted so I could switch to my new Solaris install. Brick wall number 2: upon reboot no GRUB menu was presented - my laptop booted right into XP. For the life of me I couldn't figure out what the hell ws going on since my menu.lst configuration wasn't drastically different from my previous setup but unfortunately I'm not a Jedi in the ways of GRUB. After banging my head against the wall I gave up at 5:30 AM and hit the sack. Three hours later I went at it again. Fortunately you can count on Sun folks lurking on aliases 24 hrs a day and got got help from Casper Dik no less. I didn't need the makeactive command in my XP section of the menu.lst configuration. Thats makes sense but it's not clear to me why I was instructed have it in my preivous configuration which worked flawlessly but I'll investigate that another day.
So now I was back to rebooting and GRUB was back but it couldn't get Solaris booted. After more banging my head against the wall another Sun co-worker showed me the light. My GRUB root command in Solaris section of the menu.lst configuration was malformed but I say I was a victim of one of Sun's major DNA flaws (more on that later). The default menu.lst we install should be commented better. Everyone here in my office I show the current menu.lst comment to
root (hd<disk no>,<partition no>,x) --x = Solaris root slice
thinks something like this
root (hd0,1,0) \* WRONG \*
would be the correct GRUB command rather than this
root (hd0,1,a) \* RIGHT \*
Sun needs to do a better job making things more clear for first timers in this arena. IMHO Sun makes great stuff but we make it more difficult than our peers to get to the goods. All I know is that if I'm tripping on stuff like this I know paying customers are going to run into walls with far more negative reprecussions. Simply commenting the file better and adding examples for how other operating systems should be configured to boot would save a ton of headaches for customer and our support folks but Sun for some reason historically doesn't have a good history of doing this. As a result I'm starting a new category in my blog that is going to be dedicated to giving advice to Sun on how to better focus our resources to solve problems that we should have never had in the first place .
In the end the speed bumps were overcome, I got the materials from our VAR partner, broke the speed limit getting to my customer, and I got my laptop up to snuff 5 minutes before our folks started to present. And now you don't have to ask why my nickname is still "curtain time"...