Úterý VI 02, 2009

Error boot opensolaris 2008.05: panic Page fault occurred in module zfs due to a NULL pointer dereference or how to move boot file system to other zpool

I definitely recommend you to use opensolaris 2009.06, but if you for some reason stay on 2008.05 you can encounter problem same as I had. For me it came after power outage - and I wanted my system recovered as I use it as virtualization platform (14 quests) on VirtualBox hypervisor.

When booted into single-user from LiveCD I saw my booting ZFS pool and root file system is OK and consistent. It was not rpool zpool (the zpool name was bootpool) because I did "booting zpool migration" once in the past. So it came in my mind to try fix my system boot problem this way - creating new zpool and migrate booting file system into it. I'd tried to find proper steps in summer 2008, but even did boot filesystem migration successfully - I didn't documented the steps ;o(

The original thread is here: http://www.opensolaris.org/jive/thread.jspa?messageID=248211&#248211

Now my system was panicing in a loop on page fault occurred in module zfs due to a NULL pointer dereference, no matter I removed snapshots, clones, other boot environments (beadm (1M)). I'm not exactly sure of root cause - this happened just after system lost it power. I've never saw this system panic before this one for any reason.

The console output is here:

SunOS Release 5.11 Version snv_86 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: testopen

panic[cpu0]/thread=ffffff04e391f000: BAD TRAP: type=e (#pf Page fault) rp=ffffff001f2e7620 addr=28 occurred in module "zfs" due to a NULL pointer dereference

zfs: #pf Page fault
Bad kernel fault at addr=0x28
pid=80, pc=0xfffffffff78599ec, sp=0xffffff001f2e7710, eflags=0x10282
cr0: 8005003b<pg,wp,ne,et,ts,mp,pe> cr4: 6f8<xmme,fxsr,pge,mce,pae,pse,de>
cr2: 28cr3: 1fffd1000cr8: c

        rdi:                0 rsi:                1 rdx:                2
        rcx:                3  r8:       28004fac00  r9:                1
        rax:                0 rbx:                0 rbp: ffffff001f2e7720
        r10:                1 r11:                1 r12: ffffff04f35e26c0
        r13:                0 r14:           280a0b r15:                0
        fsb:                0 gsb: fffffffffbc259f0  ds:               4b
         es:               4b  fs:                0  gs:              1c3
        trp:                e err:                0 rip: fffffffff78599ec
         cs:               30 rfl:            10282 rsp: ffffff001f2e7710
         ss:               38

ffffff001f2e7500 unix:die+c8 ()
ffffff001f2e7610 unix:trap+13b9 ()
ffffff001f2e7620 unix:cmntrap+e9 ()
ffffff001f2e7720 zfs:vdev_is_dead+c ()
ffffff001f2e7770 zfs:vdev_mirror_child_select+68 ()
ffffff001f2e77b0 zfs:vdev_mirror_io_start+11f ()
ffffff001f2e77f0 zfs:zio_vdev_io_start+156 ()
ffffff001f2e7820 zfs:zio_execute+7f ()
ffffff001f2e7860 zfs:zio_wait+2e ()
ffffff001f2e7910 zfs:arc_read+6e3 ()
ffffff001f2e79d0 zfs:dmu_objset_open_impl+d1 ()
ffffff001f2e7a40 zfs:dsl_pool_open+59 ()
ffffff001f2e7b00 zfs:spa_load+37d ()
ffffff001f2e7b70 zfs:spa_open_common+cc ()
ffffff001f2e7be0 zfs:spa_get_stats+4a ()
ffffff001f2e7c30 zfs:zfs_ioc_pool_stats+32 ()
ffffff001f2e7cb0 zfs:zfsdev_ioctl+10d ()
ffffff001f2e7cf0 genunix:cdev_ioctl+48 ()
ffffff001f2e7d30 specfs:spec_ioctl+86 ()
ffffff001f2e7db0 genunix:fop_ioctl+7b ()
ffffff001f2e7ec0 genunix:ioctl+174 ()
ffffff001f2e7f10 unix:brand_sys_syscall32+197 ()

syncing file systems... done
dumping to /dev/dsk/c10t0d0s1, offset 431030272, content: kernel
100% done: 225221 pages dumped, compression ratio 5.53, dump succeeded
rebooting...

 

When you want just migrate your booting zpool  into another zpool the process is the same as there is nothing specific to my problem - you can consider my system to be operational again as side effect here.

so here you can read the steps which lead back to working system after new booting zpool was created:

1. =>BOOT FROM LIVECD OF THE SAME OPENSOLARIS VERSION TO SINGLE USERMODE

SunOS Release 5.11 Version snv_86 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Hostname: opensolaris
Remounting root read/write
Probing for device nodes ...
Preparing live image for use
Done mounting Live image
USB keyboard
 1. Albanian                      22. Latvian
 2. Belarusian                    23. Macedonian
 3. Belgian                       24. Malta_UK
 4. Bulgarian                     25. Malta_US
 5. Croatian                      26. Norwegian
 6. Czech                         27. Polish
 7. Danish                        28. Portuguese
 8. Dutch                         29. Russian
 9. Finnish                       30. Serbia-And-Montenegro
10. French                        31. Slovenian
11. French-Canadian               32. Slovakian
12. Hungarian                     33. Spanish
13. German                        34. Swedish
14. Greek                         35. Swiss-French
15. Icelandic                     36. Swiss-German
16. Italian                       37. Traditional-Chinese
17. Japanese-type6                38. TurkishQ
18. Japanese                      39. TurkishF
19. Korean                        40. UK-English
20. Latin-American                41. US-English
21. Lithuanian
To select the keyboard layout, enter a number [default 41]:
1. Chinese - Simplified
2. Chinese - Traditional
3. English
4. French
5. German
6. Italian
7. Japanese
8. Korean
9. Portuguese - Brazil
10. Russian
11. Spanish
12. Swedish
To select the desktop language, enter a number [default 3]:
Configuring devices.
Mounting local partitions/cdroms
Using physical swap on hdd (/dev/dsk/c10t0d0s1)
Requesting System Maintenance Mode
SINGLE USER MODE
Root password for system maintenance (control-d to bypass):
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode

PASSWORD IS "opensolaris"

 

2. =>IMPORT ORIGINAL BOOT ZPOOL WITH -f

May 26 09:39:16 su: 'su root' succeeded for root on /dev/console
zpool imSun Microsystems Inc.   SunOS 5.11      snv_86  January 2008
port bo-bash-3.2# zpool import bootpool
cannot import 'bootpool': pool may be in use from other system
use '-f' to import anyway
-bash-3.2# zpool import -f bootpool


3. =>CREATE OR IMPORT OTHER ZPOOL (SAME PHYS HDD TYPE SHOULD BE PREFERRED) WHICH RESIDES ON SOLARIS2 FDISK PARTITION AND HAS SLICE DEFINED

-bash-3.2# zpool import bootpool2
cannot import 'bootpool2': pool may be in use from other system
use '-f' to import anyway
-bash-3.2# zpool import -f bootpool2
-bash-3.2#
-bash-3.2# zpool list
NAME        SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
bootpool    928G  90.1G   838G     9%  ONLINE  -
bootpool2   928G  2.39M   928G     0%  ONLINE  -

This could be second disk in ZFS mirror, this mean you have to detach this disk from zpool first and force -f the zpool creation.


4. =>CREATE ZFS SNAPSHOTS FOR YOUR ORIGINAL FSs HERE NAMED AS @2

-bash-3.2# zfs list
NAME                                                        USED  AVAIL  REFER  MOUNTPOINT
bootpool                                                   90.1G   823G  56.5K  /bootpool
bootpool@2                                                   19K      -  56.5K  -
bootpool/ROOT                                              90.1G   823G    18K  /bootpool/ROOT
bootpool/ROOT@2                                              15K      -    18K  -
bootpool/ROOT/opensolaris                                  90.1G   823G  65.2G  legacy
bootpool/ROOT/opensolaris@Mar032009befVirtBOXupgradeTo214  24.8G      -  66.8G  -
bootpool/ROOT/opensolaris@send2backup                        68K      -  65.2G  -
bootpool/ROOT/opensolaris@2                                    0      -  65.2G  -
bootpool2                                                  2.29M   913G  56.5K  /bootpool2
bootpool2@2                                                    0      -  56.5K  -
bootpool2/ROOT                                               18K   913G    18K  /bootpool2/ROOT
bootpool2/ROOT@2                                               0      -    18K  -
-bash-3.2#
<l/ROOT/opensolaris@2 | zfs receive bootpool2/ROOT/opensolaris


5. =>SEND THE SNAPHOST's DATA INTO NEW ZPOOL CREATED EARLIER

zfs send bootpool@2 | zfs receive -F bootpool2
zfs send bootpool/ROOT@2 | zfs receive bootpool2/ROOT
zfs send bootpool/ROOT/opensolaris@2 | zfs receive bootpool2/ROOT/opensolaris

This will sent all file systems' data into new zpool created in step 3.


6. =>SET NEW ROOT FS MOUNT POINT AS LEGACY

-bash-3.2# zfs get mountpoint bootpool/ROOT/opensolaris
NAME                       PROPERTY    VALUE                      SOURCE
bootpool/ROOT/opensolaris  mountpoint  legacy                     local
-bash-3.2# zfs get mountpoint bootpool2/ROOT/opensolaris
NAME                        PROPERTY    VALUE                        SOURCE
bootpool2/ROOT/opensolaris  mountpoint  /bootpool2/ROOT/opensolaris  default
-bash-3.2#
-bash-3.2# zfs set mountpoint=legacy bootpool2/ROOT/opensolaris
-bash-3.2# zfs get mountpoint bootpool2/ROOT/opensolaris
NAME                        PROPERTY    VALUE                       SOURCE
bootpool2/ROOT/opensolaris  mountpoint  legacy                      local
-bash-3.2#

This need to be done for proper boot process and to be referenced in /etc/vfstab see step 8.


7. =>MOUNT THE NEW ROOT

mount -F zfs bootpool2/ROOT/opensolaris /mnt


8. =>EDIT MENU.LST AND VFSTAB IN NEW ZPOOL TO REFLECT ZPOOL NAME CHANGE

 -bash-3.2# cat /bootpool2/boot/grub/menu.lst
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal serial
##splashimage /boot/grub/splash.xpm.gz
timeout 30
default 0
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title OpenSolaris 2008.05 snv_86_rc3 X86 IEDIed
bootfs bootpool2/ROOT/opensolaris
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=ttya
module$ /platform/i86pc/$ISADIR/boot_archive
#---------------------END BOOTADM--------------------

# Unknown partition of type 238 found on /dev/rdsk/c10t1d0p0 partition: 1
# It maps to the GRUB device: (hd0,0) .

# Unknown partition of type 238 found on /dev/rdsk/c10t4d0p0 partition: 1
# It maps to the GRUB device: (hd1,0) .
title bootCLONE
bootfs bootpool/ROOT/bootCLONE
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
#============ End of LIBBE entry =============
-bash-3.2#
-bash-3.2# cat /mnt/etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
/devices        -       /devices        devfs   -       no      -
/proc   -       /proc   proc    -       no      -
ctfs    -       /system/contract        ctfs    -       no      -
objfs   -       /system/object  objfs   -       no      -
sharefs -       /etc/dfs/sharetab       sharefs -       no      -
fd      -       /dev/fd fd      -       no      -
swap    -       /tmp    tmpfs   -       yes     -
bootpool2/ROOT/opensolaris      -       /       zfs     -       no      -
/dev/dsk/c10t0d0s1      -       -       swap    -       no      -
/dev/dsk/c10t4d0s1      -       -       swap    -       no      -
-bash-3.2#


9. =>EXPORT ORIGINAL BOOT ZPOOL AND LEAVE ONLY NEW ZPOOL IMPORTED THAT COPY ZPOOL.CACHE TO NEW ROOT

-bash-3.2# zpool list
NAME        SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
bootpool    928G  90.1G   838G     9%  ONLINE  -
bootpool2   928G  65.2G   863G     7%  ONLINE  -
-bash-3.2# ls -l /etc/zfs/zpool.cache
-rw-r--r--   1 root     root        2084 May 26 09:41 /etc/zfs/zpool.cache
-bash-3.2# zpool export bootpool
-bash-3.2# ls -l /etc/zfs/zpool.cache
-rw-r--r--   1 root     root        1040 May 27 01:29 /etc/zfs/zpool.cache
-bash-3.2# ls -l /mnt/etc/zfs
total 52
-rw-r--r--   1 root     root       13140 Apr 10 06:19 _no_zpool.cache
-rw-r--r--   1 root     root       11988 May 15 04:52 zpool.cache
-bash-3.2# mv /mnt/etc/zfs/zpool.cache /mnt/etc/zfs/_no2_zpool.cache
-bash-3.2# ls -l /mnt/etc/zfs
total 52
-rw-r--r--   1 root     root       11988 May 15 04:52 _no2_zpool.cache
-rw-r--r--   1 root     root       13140 Apr 10 06:19 _no_zpool.cache
-bash-3.2#
-bash-3.2#
-bash-3.2# cp /etc/zfs/zpool.cache /mnt/etc/zfs/
-bash-3.2# ls -l /mnt/etc/zfs
total 56
-rw-r--r--   1 root     root       11988 May 15 04:52 _no2_zpool.cache
-rw-r--r--   1 root     root       13140 Apr 10 06:19 _no_zpool.cache
-rw-r--r--   1 root     root        1040 May 27 01:36 zpool.cache
-bash-3.2#

Copy your zpool.cache (when still booted form LiveCD) in new zpool root file system.


10. =>SET BOOTFS FOR THE NEW ZPOOL

-bash-3.2# zpool get bootfs bootpool2
NAME       PROPERTY  VALUE      SOURCE
bootpool2  bootfs    -          default
-bash-3.2#
-bash-3.2# zpool set bootfs=bootpool2/ROOT/opensolaris bootpool2
-bash-3.2# zpool get bootfs bootpool2
NAME       PROPERTY  VALUE                       SOURCE
bootpool2  bootfs    bootpool2/ROOT/opensolaris  local
-bash-3.2#

11. =>UPDATE BOOT ARCHIVE ON NEW ROOT

-bash-3.2#
-bash-3.2# bootadm update-archive -v -R /mnt
cannot find: /mnt/etc/cluster/nodeid: No such file or directory
cannot find: /mnt/etc/devices/mdi_ib_cache: No such file or directory
cannot find: /mnt/etc/devices/retire_store: No such file or directory
cannot find: /mnt/platform/i86pc/ucode/AuthenticAMD: No such file or directory
    changed /mnt/etc/zfs/zpool.cache
Creating boot_archive for /mnt
updating /mnt/platform/i86pc/amd64/boot_archive
updating /mnt/platform/i86pc/boot_archive
-bash-3.2#
-bash-3.2#


12. => UMOUNT ROOT

-bash-3.2# umount /mnt


13. =>NOW BOOT FROM NEW ROOT - CHECK SYSTEM BIOS TO TARGET RIGTH DISK FOR BOOTING

-bash-3.2# reboot
syncing file systems... done
rebooting...
S

    GNU GRUB  version 0.95  (619K lower / 4094912K upper memory)

 +-------------------------------------------------------------------------+
 | OpenSolaris 2008.05 snv_86_rc3 X86 IEDIed                               |
 | bootCLONE                                                               |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, or 'c' for a command-line.

    GNU GRUB  version 0.95  (619K lower / 4094912K upper memory)

 +-------------------------------------------------------------------------+
 | bootfs bootpool2/ROOT/opensolaris                                       |
 | kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=tt>  |
 | module$ /platform/i86pc/$ISADIR/boot_archive                            |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press 'b' to boot, 'e' to edit the selected command in the
      boot sequence, 'c' for a command-line, 'o' to open a new line
      after ('O' for before) the selected line, 'd' to remove the
      selected line, or escape to go back to the main menu.
SunOS Release 5.11 Version snv_86 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: testopen
Reading ZFS config: done.
Mounting ZFS filesystems: (3/3)
May 27 09:26:39 testopen smbsrv: NOTICE: SmbOplocks: disabled
May 27 09:26:44 testopen smbd[409]: Failed to load share share2
May 27 09:26:44 testopen smbd[409]: Failed to load share share3
May 27 09:26:44 testopen smbd[409]: Failed to load share sharerow
May 27 09:26:44 testopen smbd[409]: Failed to load share share1

testopen console login: row
Password:
No directory! Logging in with home=/
Last login: Mon May 11 11:50:19 from sr1-eprg06-07.c
Sun Microsystems Inc.   SunOS 5.11      snv_86  January 2008
-bash-3.2$ su -
Password:
May 27 09:35:38 testopen last message repeated 2 times
May 27 09:35:55 testopen su: 'su root' succeeded for row on /dev/console
Sun Microsystems Inc.   SunOS 5.11      snv_86  January 2008
-bash-3.2#
-bash-3.2#
-bash-3.2#
-bash-3.2# zpool list
NAME        SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
bootpool2   928G  66.2G   862G     7%  ONLINE  -
-bash-3.2# zpool status
  pool: bootpool2
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        bootpool2   ONLINE       0     0     0
          c8t4d0s0  ONLINE       0     0     0

errors: No known data errors
-bash-3.2# df -h
Filesystem             size   used  avail capacity  Mounted on
bootpool2/ROOT/opensolaris
                       914G    66G   847G     8%    /
/devices                 0K     0K     0K     0%    /devices
/dev                     0K     0K     0K     0%    /dev
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                    16G   836K    16G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/usr/lib/libc/libc_hwcap2.so.1
                       913G    66G   847G     8%    /lib/libc.so.1
fd                       0K     0K     0K     0%    /dev/fd
swap                    16G    16K    16G     1%    /tmp
swap                    16G    56K    16G     1%    /var/run
bootpool2              914G    56K   847G     1%    /bootpool2
bootpool2/ROOT         914G    18K   847G     1%    /bootpool2/ROOT
-bash-3.2#

Now you can try to boot from new zpool - in GRUB you can type "e" - edit to see if your booting zpool change is in place (the menu.lst file). Be careful the directive "bootfs" is specific to same releases of opensolaris, new versions use "findroot" directive.

Zpool cache file replacement caused all other zpools not to be imported this time - you need to do it manualy just once in the next step to make it automatic during boot.


14. =>RUN ZPOOL IMPORT TO FIND&IDENTIFY ALL OTHER ZPOOLs YOU NEED AND IMPORT THEM (THEY WILL BE IMPORTED AUTOMATICATILY NEXT TIME - ZPOOL.CACHE)

-bash-3.2#
-bash-3.2# zpool import
  pool: VBOXvms1
    id: 1020763366063509716
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        VBOXvms1     ONLINE
          mirror     ONLINE
            c11t0d0  ONLINE
            c4t0d0   ONLINE

  pool: bootpoolBackup
    id: 15922132069583834627
 state: UNAVAIL
status: The pool is formatted using an incompatible version.
action: The pool cannot be imported.  Access the pool on a system running newer
        software, or recreate the pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-A5
config:

        bootpoolBackup  UNAVAIL  newer version
          c12t7d0   ONLINE

  pool: bootpool
    id: 2411838337529240089
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        bootpool    ONLINE
          c8t0d0s0  ONLINE

  pool: CIFSshare2
    id: 14937498107472144881
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        CIFSshare2   ONLINE
          mirror     ONLINE
            c12t1d0  ONLINE
            c12t3d0  ONLINE
          mirror     ONLINE
            c9t5d0   ONLINE
            c9t6d0   ONLINE

  pool: CIFSshare
    id: 6146690073225590487
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        CIFSshare    ONLINE
          mirror     ONLINE
            c12t2d0  ONLINE

c9t4d0   ONLINE           mirror     ONLINE             c9t2d0   ONLINE             c12t4d0  ONLINE

  pool: rpool
    id: 10610396790796762733
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        rpool       ONLINE
          mirror    ONLINE
            c5t0d0  ONLINE
            c9t3d0  ONLINE
          mirror    ONLINE
            c5t1d0  ONLINE
            c5t2d0  ONLINE
          mirror    ONLINE
            c9t1d0  ONLINE
            c5t3d0  ONLINE

-bash-3.2#
-bash-3.2# zpool import VBOXvms1
-bash-3.2# zpool import CIFSshare2
-bash-3.2# zpool import CIFSshare
-bash-3.2# zpool import rpool
-bash-3.2#

Import all zpools you want to be imported automatically during boot process.


15. =>IMPORT ORGINAL POOL AND DESTROY IT

-bash-3.2#
-bash-3.2# zpool import bootpool
-bash-3.2# zpool destroy bootpool

He is time to destroy original booting zpool, which cannot be used for boot anyway and you probably want to release the disk for mirroring in new zpool created in step 3.


16. =>ATTACH SECOND DISK TO THE BOOTING ONE (YOU SHOULD BE ABLE TO DO WITHOUT  -f)

-bash-3.2# zpool status bootpool2
  pool: bootpool2
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        bootpool2   ONLINE       0     0     0
          c8t4d0s0  ONLINE       0     0     0

errors: No known data errors

-bash-3.2# zpool attach -f bootpool2 c8t4d0s0 c8t0d0s0
-bash-3.2# zpool status bootpool2
  pool: bootpool2
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h0m, 0.51% done, 0h22m to go
config:

        NAME          STATE     READ WRITE CKSUM
        bootpool2     ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c8t4d0s0  ONLINE       0     0     0
            c8t0d0s0  ONLINE       0     0     0

errors: No known data errors
-bash-3.2# zpool status bootpool2
  pool: bootpool2
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h1m, 5.69% done, 0h27m to go
config:

        NAME          STATE     READ WRITE CKSUM
        bootpool2     ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c8t4d0s0  ONLINE       0     0     0
            c8t0d0s0  ONLINE       0     0     0

errors: No known data errors
-bash-3.2#

Whenever you need -f or not depends on attached disk history.

 
  

17. =>AFTER RESILVER COMPLETES YOU CAN REBOOT TO SEE EVERYTHING OK

-bash-3.2# zpool status bootpool2
  pool: bootpool2
 state: ONLINE
 scrub: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        bootpool2     ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c8t4d0s0  ONLINE       0     0     0
            c8t0d0s0  ONLINE       0     0     0

errors: No known data errors
-bash-3.2#
-bash-3.2# fdisk c8t0d0p0
             Total disk size is 60800 cylinders
             Cylinder size is 32130 (512 byte) blocks

                                               Cylinders
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1       Active    Solaris2          1  60799    60799    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: 6

-bash-3.2# fdisk c8t4d0p0
             Total disk size is 60800 cylinders
             Cylinder size is 32130 (512 byte) blocks

                                               Cylinders
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1       Active    Solaris2          1  60799    60799    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: 6

-bash-3.2# prtvtoc /dev/rdsk/c8t0d0s2
* /dev/rdsk/c8t0d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*     126 sectors/track
*     255 tracks/cylinder
*   32130 sectors/cylinder
*   60799 cylinders
*   60797 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00    4241160 1949166450 1953407609
       1      3    01      32130   4209030   4241159
       2      5    01          0 1953407610 1953407609
       8      1    01          0     32130     32129
-bash-3.2#
-bash-3.2# prtvtoc /dev/rdsk/c8t4d0s2
* /dev/rdsk/c8t4d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*     126 sectors/track
*     255 tracks/cylinder
*   32130 sectors/cylinder
*   60799 cylinders
*   60797 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00    4241160 1949166450 1953407609
       1      3    01      32130   4209030   4241159
       2      5    01          0 1953407610 1953407609
       8      1    01          0     32130     32129
-bash-3.2#
-bash-3.2#

PARTITION TABLES AND VTOCs ARE HERE JUST FOR REFERENCE PURPOSE. 

 

18. =>IF YOU ARE RECOVERING YOU ODLER BOOT DISKS THE GRUB SHOULD BE THERE ON BOTH DISKS OTHERWISE USE INSTALLGRUB