Hi everyone,
Normally it always easier in Sparc machine, i can set or manually use the boot-device in NVram to boot the mirrored disk. However I have a big trouble about x86 mirror for a long time. I have been doing anything i can: search document, google, ask the others.
Recently i did as follow guide
http://it.toolbox.com/wiki/index.ph
/Solaris_x86_root_filesystem_mirroring on my x86 machine for testing purpose. Hdd0 mirror with hdd2. Hdd0 have 3 silce: /, swap, metadb.
===================== This is my output ==================
X4450 Solaris 10 u5
#metastat
d110: Mirror
Submirror 0: d111
State: Okay
Submirror 1: d112
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 33559785 blocks (16 GB)
d111: Submirror of d110
State: Okay
Size: 33559785 blocks (16 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s1 0 No Okay Yes
d112: Submirror of d110
State: Okay
Size: 33559785 blocks (16 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t2d0s1 0 No Okay Yes
d100: Mirror
Submirror 0: d101
State: Okay
Submirror 1: d102
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 9863910 blocks (4.7 GB)
d101: Submirror of d100
State: Okay
Size: 9863910 blocks (4.7 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s0 0 No Okay Yes
d102: Submirror of d100
State: Okay
Size: 9863910 blocks (4.7 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t2d0s0 0 No Okay Yes
Device Relocation Information:
Device Reloc Device ID
c0t2d0 Yes id1,sd@TSun_____STK_RAID_INT____1387D8E3
c0t0d0 Yes id1,sd@TSun_____STK_RAID_INT____5577D8E3
#metadb
flags first blk block count
a m p luo 16 8192 /dev/dsk/c0t0d0s7
a p luo 8208 8192 /dev/dsk/c0t0d0s7
a p luo 16400 8192 /dev/dsk/c0t0d0s7
a p luo 16 8192 /dev/dsk/c0t2d0s7
a p luo 8208 8192 /dev/dsk/c0t2d0s7
a p luo 16400 8192 /dev/dsk/c0t2d0s7
#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/c0t0d0s1 - - swap - no -
/dev/md/dsk/d110 - - swap - no -
/dev/md/dsk/d100 /dev/md/rdsk/d100 / ufs 1 no -
#/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /metadb ufs 2 yes -
/devices - /devices devfs - no -
ctfs - /system/contract ctfs - no -
objfs - /system/object objfs - no -
swap - /tmp tmpfs - yes -
#fdisk /dev/rdsk/c0t2d0p0
Total disk size is 17833 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Active Solaris2 1 17832 17832 100
SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 5
bash-3.00# cat /boot/grub/menu.lst
#pragma ident "@(#)menu.lst 1.1 05/09/01 SMI"
#
# default menu entry to boot
default 0
#
# menu timeout in second before default OS is booted
# set to -1 to wait for user input
timeout 10
#
# To enable grub serial console to ttya uncomment the following lines
# and comment out the splashimage line below
# WARNING: don't enable grub serial console when BIOS console serial
# redirection is active!!!
# serial --unit=0 --speed=9600
# terminal serial
#
# Uncomment the following line to enable GRUB splashimage on console
splashimage /boot/grub/splash.xpm.gz
#
# To chainload another OS
#
# title Another OS
# root (hd<disk no>,<partition no>)
# chainloader +1
#
# To chainload a Solaris release not based on grub
#
# title Solaris 9
# root (hd<disk no>,<partition no>)
# chainloader +1
# makeactive
#
# To load a Solaris instance based on grub
#
# title Solaris <version>
# root (hd<disk no>,<partition no>,x) --x = Solaris root slice
# kernel /platform/i86pc/multiboot
# module /platform/i86pc/boot_archive
#
# To override Solaris boot args (see kernel(1M)), console device and
# properties set via eeprom(1M) edit the "kernel" line to:
#
# kernel /platform/i86pc/multiboot <boot-args> -B prop1=val1,prop2=val2,...
#
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris 10 5/08 s10x_u5wos_10 X86
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris failsafe
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Alternate boot
root (hd3,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
# Unknown partition of type 66 found on /dev/rdsk/c0t1d0p0 partition: 1
# It maps to the GRUB device: (hd1,0) .
# Unknown partition of type 66 found on /dev/rdsk/c0t1d0p0 partition: 2
# It maps to the GRUB device: (hd1,1) .
# Unknown partition of type 66 found on /dev/rdsk/c0t3d0p0 partition: 1
# It maps to the GRUB device: (hd3,0) .
# Unknown partition of type 66 found on /dev/rdsk/c0t3d0p0 partition: 2
# It maps to the GRUB device: (hd3,1) .
bash-3.00# bootadm list-menu
The location for the active GRUB menu is: /boot/grub/menu.lst
default 0
timeout 10
0 Solaris 10 5/08 s10x_u5wos_10 X86
1 Solaris failsafe
2 Alternate boot
=====================================================
I consider i have 3 problems needed help:
1. Mirror 2 hdd: hdd0,hdd1, unplug hdd0, hdd1 cannot boot. It show bad pbr sig
2. I don't know how to set boot from hdd1 slot of x86 machine.( Alternate boot from Grub menu not work )
3. A Hdd after create a Window mbr cannot use installgrub command.
On my Window soft mirror, i have a same problem as Solaris soft mirror. I did mirror with 2 hdd and if i unplug hdd0 and hdd1 cannot boot. Then i create a MBR on hdd1 and it can boot normally. But when i reinstall Solaris on these hdds. I cannot do installgrub command on hdd1.
Please suggest me anything i can do. THank for your attention