GRUB Can't boot to hd1 if hd0 fails -- findroot(rootfs1, 0, a) no workie
807559Oct 22 2009 — edited Nov 9 2009This computer is AMD 64 based Solaris 10 10/08 x86 - Phoenix 2.3 BIOS, w / LSI Logic SCSI and two HD's in a two-slot tray: /dev/dsk/c0t0d0s0 and /dev/dsk/c0t1d0s0 -- both have boot environment installed (whole OS in fact). The BIOS has both drives in the boot order.
I have what seems to be a very simple requirement on a simple system. System always boots to HD0 but if that drive fails, it needs to boot to HD1 until someone fixes the bad drive. The secondary drive can be mirrored, but doesn't have to be.
This HD's store no valuable data, only one passive non-data storing application that just displays a pictorial based status of a network.
(This gets installed on a Navy Ship, it's the network that allows machinery of the ship to talk to each other, this Solaris system just displays the status of it, it doesn't control anything. There will be no sysadmin person around to re-jigger this system if a HD fails, only sailors, so basic failover that will keep working until next port of call is a requirement).
I've tried allowing automatic failover using SVM RAID-1 mirroring, which works to keep the system going if one disk fails, but if it gets rebooted while running on one disk, it fails to boot up with "findroot (rootfs0,0,a) Error 15: File not found, Press any key to continue..." if HD0 is taken off line, and grub entry 0 with: findroot(rootfs0,0,a) is selected, or if findroot(rootfs1,0,a) is selected the system tries to load, it gets the "Sun OS 5.10..." screen up, then just reboots.
Grub is supposed to support 'fallback' with something like:
default saved
timeout 10
fallback 1
...
standard menu.lst stuff with rootfs0 and rootfs1 options...
...
But I can't get anything like this to work on my system.
Questions and ponderances I need help with to make this work -- please help if you can!
==================================================================
- where/how is rootfs0 and rootfs1 defined?
- do you have to use findroot(x,x,x) in Solaris 10 10/08, or can root(hd0,0) and root(hd1,0) be used ?
- it looks to me like /boot/solaris/bootenv.rc refers to one and only one HD "setprop bootpath .../sd@0,0:a", so it can't boot to another one
- when I setup using SVM I did specify altbootpath in bootenv.rc, but saw on a thread this is never used in x86, looks that way to me.
- the boot-archive is going to always have/pick the bootenv.rc from the last disk it booted from, so if that disk fails, tough luck?
- I would like to make this work without SVM mirroring if possible, shouldn't GRUB be able to find a bootable secondary drive if primary fails?
Thanks!