From 57909d702c4d636a5f733309202c36fe006d84e9 Mon Sep 17 00:00:00 2001 From: "Lakshmipathi.G" Date: Sat, 15 Apr 2017 15:43:08 +0530 Subject: btrfs-progs: misc-tests: Superblock corruption and recovery using backup Signed-off-by: Lakshmipathi.G Signed-off-by: David Sterba --- .../020-fix-superblock-corruption/test.sh | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 tests/misc-tests/020-fix-superblock-corruption/test.sh (limited to 'tests') diff --git a/tests/misc-tests/020-fix-superblock-corruption/test.sh b/tests/misc-tests/020-fix-superblock-corruption/test.sh new file mode 100755 index 00000000..77c1a5aa --- /dev/null +++ b/tests/misc-tests/020-fix-superblock-corruption/test.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Corrupt primary superblock and restore it using backup superblock. + +source "$TOP/tests/common" + +check_prereq btrfs-select-super +check_prereq btrfs + +setup_root_helper +prepare_test_dev + +FIRST_SUPERBLOCK_OFFSET=65536 + +test_superblock_restore() +{ + run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV" + + # Corrupt superblock checksum + run_check $SUDO_HELPER dd if=/dev/zero of="$TEST_DEV" \ + seek="$FIRST_SUPERBLOCK_OFFSET" bs=1 count=4 conv=notrunc + + # Run btrfs check to detect corruption + run_mayfail "$TOP/btrfs" check "$TEST_DEV" && \ + _fail "btrfs check should detect corruption" + + # Copy backup superblock to primary + run_check "$TOP/btrfs-select-super" -s 1 "$TEST_DEV" + + # Perform btrfs check + run_check "$TOP/btrfs" check "$TEST_DEV" +} + +test_superblock_restore -- cgit v1.2.3