Helps! Muh ILOM's borked!

Last updated: Wed, 04 Mar 2009 08:36:00 GMT

What do you do when your Sun reseller ships you an X4500 with forgotten ILOM and Solaris root passwords?

I'll keep this quick, because my beer's getting warm, but this is exactly what happened today. I'd suggested that there must be a fit-the-jumper-and-cycle-twice style reset to put the ILOM back to defaults, so that it could be JumpStarted, but the SA who was doing the work followed the Sun tech article he found, performed the reset, no dice. And with a bog standard SDS-mirror Solaris 10 on there already, its own root password forgotten, access is denied.

Here's how it went down:

  • attach a monitor and keyboard
  • boot to GRUB menu
  • boot to Solaris Failsafe
  • make a pair of mountpoints (say /tmp/mnt/a, /tmp/mnt/b)
  • mount both halves of the root mirror pair
  • perl -p -i -e 's/^root:[^:]+:/root::/' /tmp/mnt/a/etc/shadow
  • perl -p -i -e 's/^root:[^:]+:/root::/' /tmp/mnt/b/etc/shadow
  • unmount the two halves of the root pair
  • reboot, all the way up to... probably single user
  • hit RETURN once to enter your now-blank root password
  • ipmitool -I bmc user set password 2
  • hit RETURN twice for blank password

Your ILOM's root account now has a blank password, so set /SP/network it toot sweet and get out of that windy, noisy machine room. If you know what the hell I'm talking about, you're probably already asking me why I bothered with this foolishness when I could have just hit a function key and kicked off the PXEboot as soon as I'd put a monitor and keyboard on this thing. Well, uh, I dunno. I was asked to get access to the ILOM and I'm, like, totally anal.

I'm not quite sure why the ILOM's root user is UID 2, but it is, across a couple of different platforms that I tested today. If I had to make a wild and unsupported guess, I'd suggest that the ILOM's visible UIDs start at 2, because the underlying PPC Linux has its own root user at UID 0, and let's take a poke at an init user at UID 1.

Oh, and I used that wacky Perl in-place incantation because the terminfo DB under Solaris Failsafe seems not to include an entry to match the locally-attached VGA monitor, so I couldn't use vi(1). I'd say "thank you Sun-tards" but they'd just point out that I'm not l33t enough to use vi(1) in line mode. I suppose I could have exported a little TERM=vt100, too. Gah, I give up. Let's call it quits.

Right, me beer's still cold!