Skip to Main Content

Infrastructure Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Force zpool import with missing log device and wrong hostid

997590Oct 30 2017 — edited Nov 6 2017

Hi,

I’m trying to recover a few files from a server with a fried motherboard. The server had a F20 flash accelerator that I suspect is also fried. The accelerator was used as rpool, L2ARC and ZIL. The data on a mirrored pair of HDDs.

I’ve mounted one of the HDDs in a Solaris 11.2 test server.

When I try to mount the pool as recovery (the test server already has a dpool), I get the following error:

zpool import dpool recovery
cannot import 'dpool': pool may be in use from other system,
it was last accessed by
xxxx (hostid: 0xca23a1) on Wed Oct 25 18:22:28 2017

So I tried to force it:

zpool import -f dpool recovery
cannot import 'dpool' as 'recovery': one or more devices is currently unavailable

When I add the -m argument to skip the log device:

zpool import -m dpool recovery
cannot import 'dpool': pool may be in use from other system,

When I add both -f and -m arguments:

zpool import -f -m dpool recovery
cannot import 'dpool' as 'recovery': one or more devices is currently unavailable

The command seems to ignore the -m argument when -f is used.

Here is the output of zdb:

zdb -l /dev/dsk/c1t0d0s0            
------------------------------------------
LABEL 0
------------------------------------------
    timestamp: 1421872465 UTC: Wed Jan 21 22:34:25 2015
    version: 35
    name: 'dpool'
    state: 0
    txg: 2845375
    pool_guid: 9618217514572069528
    hostid: 13247393
    hostname: 'xxxx'
    top_guid: 15931499441804555607
    guid: 5296962925871865692
    vdev_children: 2
    vdev_tree:
        type: 'mirror'
        id: 0
        guid: 15931499441804555607
        metaslab_array: 29
        metaslab_shift: 33
        ashift: 9
        asize: 996432412672
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 5296962925871865692
            path: '/dev/dsk/c3t4d0s0'
            devid: 'id1,sd@n50014ee20a21fce9/a'
            phys_path: '/pci@0,0/pci8086,c05@1,1/pci108e,7ab0@0/sd@4,0:a'
            whole_disk: 1
            DTL: 134
            create_txg: 4
        children[1]:
            type: 'disk'
            id: 1
            guid: 18238152700363014049
            path: '/dev/dsk/c3t5d0s0'
            devid: 'id1,sd@n50014ee20a219dac/a'
            phys_path: '/pci@0,0/pci8086,c05@1,1/pci108e,7ab0@0/sd@5,0:a'
            whole_disk: 1
            DTL: 126
            create_txg: 4

Here are the pool details:

zpool import -T 9618217514572069528     
  pool: dpool
    id: 9618217514572069528
state: UNAVAIL
status: The pool was last accessed by another system.
action: The pool cannot be imported due to unavailable devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: http://support.oracle.com/msg/ZFS-8000-EY
config:

        dpool        UNAVAIL  corrupted data
          mirror-0   DEGRADED
            c1t0d0   ONLINE
            c3t5d0   UNAVAIL  cannot open
        cache
          c3t3d0

device details:

        c3t5d0     UNAVAIL        cannot open
        status: ZFS detected errors on this device.
                The device was missing.

        missing-1  UNAVAIL        corrupted data
        status: ZFS detected errors on this device.
                The device has bad label or disk contents.

Please help me recover the files.

Best regards,

Mikko

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 4 2017
Added on Oct 30 2017
6 comments
2,165 views