在 x86 中使用 Solaris 10 做了一个镜像 (RAID1)。一切还好。现在,我试图使第二个磁盘可启动,这是:从 grub 或在 disk1 出现故障的情况下。
我编辑了/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
但是没有用。在 BIOS 中,当我选择“alternate boot”时,我得到:
Error 15: 15 file not found
另外,如何配置GRUB 使disk2 在disk1 出错的情况下启动?
此外,我做了(但与 GRUB 无关):
eeprom altbootpath=/devices/pci@0,0/pci108e,5352@1f,2/disk@1,0:a
以下是一些可能对您有帮助的命令的输出:
/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
在 x86 系统上,您必须在引导进入 grub 之前告诉 BIOS 使用第二个磁盘。这可以根据http://docs.oracle.com/cd/E19860-01/E21549/z40015871020900.html在 ILOM 中完成,或者您可以按 F2 键(如果您通过串行控制台执行此操作,则按 CTRL-e)在启动过程中进入 BIOS 设置。
在 Solaris 方面,您不需要 menu.lst 中的任何特殊条目即可从备用磁盘引导。您得到的错误意味着 grub 无法在分区2上找到引导签名rootfs1,切片a(根分区),您可能不想这样做。findroot的第二个参数不是驱动器号而是分区号(从0开始)。
现在,如果您想从主磁盘引导 grub,然后使用它从备用磁盘引导系统,您可以使用 menu.lst 中的root命令,它允许您设置一个驱动器(无耻地从http: //it.toolbox.com/wiki/index.php/Solaris_x86_root_filesystem_mirroring):