Did a mirror (RAID1) with Solaris 10 in x86. Everything OK. Now, I´m trying to make the second disk booteable, this is: from grub or in case of failure of disk1.
I edited /boot/grub/menu.lst:
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris 10 9/10 s10x_u9wos_14a X86
findroot (rootfs1,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris failsafe
findroot (rootfs1,0,a)
kernel /boot/multiboot -s
module /boot/amd64/x86.miniroot-safe
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris failsafe
findroot (rootfs1,0,a)
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
#---------------------END BOOTADM--------------------
#Make second disk booteable!!!!!!!
title alternate boot
findroot (rootfs1,1,a)
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
But is not working. In the BIOS, when I select "alternate boot" I get:
Error 15: 15 file not found
also, how to configure to GRUB to make the disk2 to boot in case of error in disk1?
Additionally, I did (but not related to GRUB):
eeprom altbootpath=/devices/pci@0,0/pci108e,5352@1f,2/disk@1,0:a
Here is the output of some commands that may help you:
/sbin/biosdev
0x80 /pci@0,0/pci108e,5352@1f,2/disk@0,0
0x81 /pci@0,0/pci108e,5352@1f,2/disk@1,0
ls -l /dev/dsk/c1t?d0s0
lrwxrwxrwx 1 root root 50 Jul 7 12:01 /dev/dsk/c1t0d0s0 -> ../../devices/pci@0,0/pci108e,5352@1f,2/disk@0,0:a
lrwxrwxrwx 1 root root 50 Jul 7 12:01 /dev/dsk/c1t1d0s0 -> ../../devices/pci@0,0/pci108e,5352@1f,2/disk@1,0:a
more /boot/solaris/bootenv.rc
setprop ata-dma-enabled '1'
setprop atapi-cd-dma-enabled '0'
setprop ttyb-rts-dtr-off 'false'
setprop ttyb-ignore-cd 'true'
setprop ttya-rts-dtr-off 'false'
setprop ttya-ignore-cd 'true'
setprop ttyb-mode '9600,8,n,1,-'
setprop ttya-mode '9600,8,n,1,-'
setprop lba-access-ok '1'
setprop prealloc-chunk-size '0x2000'
setprop bootpath '/pci@0,0/pci108e,5352@1f,2/disk@0,0:a'
setprop keyboard-layout 'US-English'
setprop console 'text'
setprop altbootpath '/pci@0,0/pci108e,5352@1f,2/disk@1,0:a'
cat /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
fd - /dev/fd fd - no -
/proc - /proc proc - no -
#/dev/dsk/c1t0d0s1 - - swap - no -
/dev/md/dsk/d1 - - swap - no -
/dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no -
/devices - /devices devfs - no -
sharefs - /etc/dfs/sharetab sharefs - no -
ctfs - /system/contract ctfs - no -
objfs - /system/object objfs - no -
swap - /tmp tmpfs - yes -
df -h
Filesystem size used avail capacity Mounted on
/dev/md/dsk/d0 909G 11G 889G 2% /
/devices 0K 0K 0K 0% /devices
ctfs 0K 0K 0K 0% /system/contract
proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
swap 14G 972K 14G 1% /etc/svc/volatile
objfs 0K 0K 0K 0% /system/object
sharefs 0K 0K 0K 0% /etc/dfs/sharetab
/usr/lib/libc/libc_hwcap1.so.1
909G 11G 889G 2% /lib/libc.so.1
fd 0K 0K 0K 0% /dev/fd
swap 14G 40K 14G 1% /tmp
swap 14G 28K 14G 1% /var/run
Best Answer
On an x86 system you have to tell the BIOS to use the second disk before you boot into grub. This can be done in ILOM according to http://docs.oracle.com/cd/E19860-01/E21549/z40015871020900.html or you can push the F2 key (or CTRL-e if you do this through the serial console) during bootup to enter the BIOS settings.
On the Solaris side of things you don't need any special entries in menu.lst for booting from the alternate disk. The error you are getting means that grub couldn't find the boot signature rootfs1 on partition 2, slice a (root partition), something you probably didn't want to do. The second parameter of findroot is not the drive number but the number of the partition (starting at 0).
Now, in the case you want to boot grub from the primary disk and then use it to boot the system from an alternate disk, you can use the root command in menu.lst which allows you to set a drive (Shamelessly stolen from http://it.toolbox.com/wiki/index.php/Solaris_x86_root_filesystem_mirroring):