| #!/bin/bash | |
| TS_TOPDIR="${0%/*}/../.." | |
| TS_DESC="wipefs" | |
| . $TS_TOPDIR/functions.sh | |
| ts_init "$*" | |
| ts_check_test_command "$TS_CMD_WIPEFS" | |
| ts_skip_nonroot | |
| # set global variable TS_DEVICE | |
| ts_scsi_debug_init dev_size_mb=50 num_parts=2 | |
| # remove old backups | |
| rm -rf $HOME/wipefs-$(basename ${TS_DEVICE})-*.bak | |
| #remove the magic byte, back it up | |
| $TS_CMD_WIPEFS --all --backup ${TS_DEVICE} &>/dev/null || ts_die "wipefs failed" | |
| #there should be just one magic string/backup file in this case | |
| INFILE=$(ls $HOME/wipefs-$(basename ${TS_DEVICE})-*.bak) | |
| OFFT=$(echo $INFILE | sed 's/^.*-\(.*\).bak$/\1/') | |
| dd if=$INFILE of=$TS_DEVICE bs=1 conv=notrunc seek=$(($OFFT)) &>/dev/null | |
| #the bytes should be copied back, check if wipefs can recognize it | |
| $TS_CMD_WIPEFS -a ${TS_DEVICE} > $TS_OUTDIR/out 2>/dev/null | |
| # check for output | |
| [ -s $TS_OUTDIR/out ] && echo "OK" &> $TS_OUTPUT || exit 1 | |
| ts_finalize |