#!/bin/sh set -ex stamp=/var/erase-other-disks.stamp if test -f $stamp; then logger -t osstest-erase-other-disks-$$ "Already ran, exiting" exit 0 fi >$stamp log () { logger -t osstest-erase-other-disks-$$ "$@" } log "Running..." zero () { if test -b $dev; then log "Erasing $dev" dd if=/dev/zero of=$dev count=64 ||: if test -e $dev && ! test -b $dev; then log "$dev still exists but is no longer a block device!" exit 1 fi else log "$dev does not exist or is not a block device." fi } rescan () { if ! test -b ${dev}; then return fi log "Rescaning partition table on ${dev}" echo 1 > /sys/block/${dev#/dev/}/device/rescan } udevadm settle for sd in sd hd; do log "${sd} devices present before: `echo /dev/${sd}*`" for b in a b c d e f; do for dev in /dev/${sd}${b}[0-9]; do zero done dev=/dev/${sd}${b} zero rescan done udevadm settle log "${sd} devices present after: `echo /dev/${sd}*`" done for dev in /dev/sda*; do zero done echo === set +e ls -l /dev/sd* true