1

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
  • I don't know how this is done on solaris, but on linux you would do `grub-install /dev/sdb` to install GRUB to the second drive's MBR. – DerfK Jul 11 '12 at 14:40
  • Hello: I did `/sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0` and in fact it was installed. But when I have to select in GRUB where to boot, I got the error 15 thing :/ –  Jul 11 '12 at 14:48
  • At least with ZFS I never had to add grub entries. I've even swapped both disks from my root pool without touching the grub config, so are you sure you need to? Also, why aren't you using zfs? – bahamat Jul 11 '12 at 15:31
  • I´m working in a very conservative environment, they won´t install ZFS ever (sadly) –  Jul 11 '12 at 15:35
  • I have been looking to do something similar and came across this response from an SVM Engineer at Oracle: https://blogs.oracle.com/jerrysblog/entry/solaris_volume_manager_x86_root I hope this helps! – waligi Sep 18 '15 at 15:49

1 Answers1

1

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):

title alternate boot
root (hd1, 0, a)
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
mghocke
  • 796
  • 4
  • 5
  • Thank you! Worked perfectly (I just wrote it without spaces -(hd1,0,a)- to avoid an **Error 11**. Now I have a **mini-question**: I´m entering in mini-root. Should be this the "proper way" or I should put it to enter booting Solaris. In your experience, what would you recommend me? Or I could replicate the GRUB from disk1 in disk2, this is: **normal boot** and the **failsafe**. –  Jul 12 '12 at 13:23
  • 1
    I would add both options, normal and failsafe. If your server lost the primary disk and you are not given any time to do real maintenance on it you have to boot it up into normal mode and wait for a maintenance window to come around. It really depends on your environment, though. – mghocke Jul 12 '12 at 16:51