#!/bin/bash # # This file is part of util-linux. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # TS_TOPDIR="${0%/*}/../.." TS_DESC="wipe" . $TS_TOPDIR/functions.sh ts_init "$*" ts_check_test_command "$TS_CMD_SFDISK" ts_check_test_command "$TS_CMD_WIPEFS" ts_check_test_command "$TS_CMD_MKSWAP" ts_skip_nonroot SFDISK_OPTS="--no-tell-kernel --no-reread" # set global variable TS_DEVICE ts_scsi_debug_init dev_size_mb=50 sector_size=512 physblk_exp=3 ts_init_subtest "gpt-to-dos" ts_separator "Create GPT" echo ',,L' | $TS_CMD_SFDISK $SFDISK_OPTS --label=gpt ${TS_DEVICE} >> $TS_OUTPUT 2>&1 udevadm settle ts_separator "Create DOS" echo ',,L' | $TS_CMD_SFDISK $SFDISK_OPTS --wipe=always --label=dos ${TS_DEVICE} >> $TS_OUTPUT 2>&1 ts_fdisk_clean $TS_DEVICE udevadm settle ts_separator "Check content" $TS_CMD_WIPEFS -O OFFSET,TYPE ${TS_DEVICE} >> $TS_OUTPUT 2>&1 ts_finalize_subtest # Same as previous test, but without --wipe=always, sfdisk has to wipe # the device automatically when switch from one PT to another PT # ts_init_subtest "gpt-to-dos-auto" ts_separator "Create GPT" echo ',,L' | $TS_CMD_SFDISK $SFDISK_OPTS --label=gpt ${TS_DEVICE} >> $TS_OUTPUT 2>&1 udevadm settle ts_separator "Create DOS" echo ',,L' | $TS_CMD_SFDISK $SFDISK_OPTS --label=dos ${TS_DEVICE} >> $TS_OUTPUT 2>&1 ts_fdisk_clean $TS_DEVICE udevadm settle ts_separator "Check content" $TS_CMD_WIPEFS -O OFFSET,TYPE ${TS_DEVICE} >> $TS_OUTPUT 2>&1 ts_finalize_subtest ts_init_subtest "fs-to-dos" ts_separator "Create FS" $TS_CMD_WIPEFS -a ${TS_DEVICE} &> /dev/null udevadm settle $TS_CMD_MKSWAP ${TS_DEVICE} &> /dev/null udevadm settle ts_separator "Create DOS" echo ',,L' | $TS_CMD_SFDISK $SFDISK_OPTS --wipe=always --label=dos ${TS_DEVICE} >> $TS_OUTPUT 2>&1 ts_fdisk_clean $TS_DEVICE udevadm settle ts_separator "Check content" $TS_CMD_WIPEFS -O OFFSET,TYPE ${TS_DEVICE} >> $TS_OUTPUT 2>&1 ts_finalize_subtest ts_init_subtest "partition" ts_separator "Create GPT" $TS_CMD_WIPEFS -a ${TS_DEVICE} &> /dev/null udevadm settle echo ',,L' | $TS_CMD_SFDISK --no-reread --label=gpt ${TS_DEVICE} >> $TS_OUTPUT 2>&1 udevadm settle ts_separator "Create FS in partition" $TS_CMD_MKSWAP ${TS_DEVICE}1 &> /dev/null udevadm settle ts_separator "Wipe whole-disk device" $TS_CMD_WIPEFS -a ${TS_DEVICE} &> /dev/null udevadm settle ts_separator "Create GPT (again)" echo ',,L' | $TS_CMD_SFDISK --no-reread --wipe-partition=always --label=gpt ${TS_DEVICE} >> $TS_OUTPUT 2>&1 udevadm settle ts_separator "Check content (disk)" $TS_CMD_WIPEFS -O OFFSET,TYPE ${TS_DEVICE} >> $TS_OUTPUT 2>&1 udevadm settle ts_separator "Check content (partition)" $TS_CMD_WIPEFS -O OFFSET,TYPE ${TS_DEVICE}1 >> $TS_OUTPUT 2>&1 ts_fdisk_clean $TS_DEVICE ts_finalize_subtest udevadm settle ts_finalize