5

We had a power outage last weekend that seems to have done some very bad things to one of our x86 Solaris machines. It is refusing to boot, and dropping me to the "grub>" prompt when started. I can get it to recognize the multiboot kernel and module, and it will try to start booting, but it hangs almost immediately. These are the commands I'm entering and their results:

grub> find /boot/grub/stage1
 (hd1,0,a)
 (hd2,0,a)
 (hd4,0,a)

grub> root (hd1,0,a)

grub> kernel /platform/i86pc/multiboot kernel/unix
   [Multiboot-elf, <0x1000000:0x141eb:0x128f5>, shtab=0x1027258, entry=0x1000000]

grub> module /platform/i86pc/boot_archive
   [Multiboot-module @ 0x1034000, 0x5ed3800 bytes]

grub> boot

After I issue the boot command, the terminal tries to clear, the cursor goes back to top-left, and I see this on the top line:

                             eric_138889-08 32-bit     

and then the whole system hangs.

It's been long enough since I've poked Solaris that I have no idea what to do next to try and get this beast booted - can anyone give me some advice on where to go / what to try next?

John
  • 8,920
  • 1
  • 28
  • 34
  • 1
    Is recovering from backup an option? Because you could spend a lot of time poking at this, only to find that the actual data you care about could also be corrupted. – mfinni Dec 26 '12 at 15:13
  • Recovering is an option, but we're trying to not have to do that - because this is the backup server. There's not much "data" on the system that we need to recover so much as there are settings, but recovering it would be difficult to say the least. Drat that chicken-egg thing... – John Dec 26 '12 at 15:15
  • 1
    Process-wise, you need to make recovery of this system easier, if that's currently a sticking point. If you are ever in a DR situation offsite, this *will* be the first thing that you're doing and everything else depends on it going smoothly. What's the backup software? – mfinni Dec 26 '12 at 15:41
  • We are involved in making recovery of this system easier now. This is in the DR environment, so in a DR, this system wouldn't be recovered, it would be used to recover another system. Right now, we're just trying to get the OS to boot. – John Dec 26 '12 at 15:53
  • 1
    Looks like the `eric` line is the greeting of the kernel, and then stuff goes downhill. If so, the kernel is shot, and that doesn't bode well... do you have the partition layout? Try to use an installation disk as rescue, recover the configurations before messing around anymore (and perhaps reinstalling)? BTW, one of the reasons we migrated from Solaris to Linux in 2000 is that _this_ didn't happen (or much, much less). – vonbrand Feb 17 '13 at 18:43
  • Have you tried a rescue cd? Boot with the cd and try and mount the data partition? – Danie May 16 '13 at 13:34
  • I do not recall the specifics, but I ran into similar problems when running solaris x86. I believe it was because of a kernel patch; when you installed the patch you were supposed to also update grub manually. I unfortunately do not remember the fix. – Dan Pritts Jul 15 '13 at 03:17

2 Answers2

2

For ufs file system

1) boot from solaris media (DVD) in single-user mode

2) Mount the root file system to /a, e.g:

mount /dev/dsk/c0t0d0s0 /a

3)Install grub and update the boot_archive file on your boot disks:

cd /a/boot/grub

installgrub -fm stage1 stage2 /dev/rdsk/c0t0d0s0

4) update the boot_archive via bootadm command:

bootadm update-archive -fv -R /a

if you using zfs file system

1) boot from solaris media (DVD) in single-user mode

2) Import the ZFS root pool on the /a mountpoint

zpool import -R /a rpool

3) Mount the data set which contains the operating system

zfs mount rpool/ROOT/sol10-u10

4)Install grub and update the boot_archive file on your boot disks:

cd /a/boot/grub

installgrub -fm stage1 stage2 /dev/rdsk/c0t0d0s0

5) update the boot_archive via bootadm command:

bootadm update-archive -fv -R /a
dhelios
  • 31
  • 3
0

This is a common problem on Solaris x86/64. Looks like the boot_archive is in an inconsistent state thanks to an ungraceful shutdown. Since PC hardware doesn't have Sun/Oracle's OpenBoot, it's emulated in software. The boot_archive contains that information.

Instructions on fixing the boot_archive can be found here.

dawud
  • 14,918
  • 3
  • 41
  • 61
dperry1973
  • 141
  • 5