| #!/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 |