Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
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

2 Answers 2

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.

share|improve this answer
    
Could you add the relevant portion of the solution proposed in that link to your question? Just in case the link stops working. –  dawud Sep 7 '13 at 10:10

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
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.