1#!/bin/ksh 2 3# 4# This file and its contents are supplied under the terms of the 5# Common Development and Distribution License ("CDDL"), version 1.0. 6# You may only use this file in accordance with the terms of version 7# 1.0 of the CDDL. 8# 9 10# 11# Description: 12# 13# Test whether zhack label repair can recover a device of varied size with 14# corrupted checksums and which has been detached. 15# 16# Strategy: 17# 18# 1. Create pool on a loopback device with some test data 19# 2. Detach either device from the mirror 20# 3. Export the pool 21# 4. Remove the non-detached device and its backing file 22# 5. Corrupt all label checksums on the remaining device 23# 6. Verify that the remaining detached device cannot be imported 24# 7. Verify that it cannot be imported after using zhack label repair -u 25# to ensure that the -u option will quit on corrupted checksums. 26# 8. Verify that it cannot be imported after using zhack label repair -c 27# -c should repair the checksums, but not undetach a device. 28# 9. Use zhack label repair -u on device 29# 10. Verify that the detached device can be imported and that data is intact 30 31. "$STF_SUITE"/tests/functional/cli_root/zhack/library.kshlib 32 33run_test_three "$(get_devsize)" 34