This file is indexed.

/usr/share/doc/dump/examples/dump_on_cd_3/dump_disk is in dump 0.4b44-5.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
#!/bin/sh

# This script dumps the specified Filesystem via dump on a CD/DVD
# DISK_CAPACITY defines the capacity in MB per disk.
# The script's own name $0 is passed via the -F option of dump
# When using cdrecord/dvdrecord and at least for my DVD-Recorder (a PHILIPS
# DVR-A03) it is necessary to define the tracksize for the next track before
# the DVD is written. This is done via the -tsize option of cdrecord. Since
# tsize takes its arguments in Bytes, the shell cannot compute the value
# correctly anymore (value too high), so I use bc.

# Set this to 4300 for DVD and 650 or 700 for CD
#DISK_CAPACITY=10	# testing
#DISK_CAPACITY=650
DISK_CAPACITY=4300

BSIZE="$(echo "$DISK_CAPACITY*1024" | bc -l )"
TSIZE="$(echo "$DISK_CAPACITY*1024*1024" | bc -l )"

# This is used for testing
#RECORD_BIN="dd of=/dev/null bs=1k if="

# This is for writing to CD with cdrtools, this uses track-at-once mode
# in case cdrtools does not support disk-at-once with your burner
#RECORD_BIN="/usr/bin/cdrecord dev=0,0,0 fs=64M speed=2 -eject -tao -pad -tsize=$TSIZE -data "

# This is for writing to DVD with cdrtools with DVD support, this has to
# use disk-at-once mode.
#RECORD_BIN="/usr/bin/cdrecord dev=0,0,0 fs=64M speed=2 -eject -dao -pad -tsize=$TSIZE -data "

# This is for writing to DVD with growisofs
RECORD_BIN="/usr/bin/growisofs -Z /dev/dvd="

FIFO="/tmp/dump.$$.fifo"
DUMP="/sbin/dump"

cleanup() {
	rm -f $FIFO
}

error_exit() {
	retcode=$?
	echo >&2 "Error $retcode: exiting"
	exit $retcode
}

trap error_exit ERR

write_output() {
	# supplied info from "dump -F":
	# $1 = filename
	# $2 = sequence number
	echo "Please insert disk No. $(($2+1))"
	ANSWER=""
	while [ "$ANSWER" != "y" ] ; do
		echo -n "Is the disk ready? (y/n) "
		read  </dev/tty ANSWER
		if [ "$ANSWER" = "y" ] ; then
			(${RECORD_BIN}${1}) &
			return 0
		elif [ "$ANSWER" = "n" ] ; then
			EXIT=""
			echo -n "Do you really want to exit? (y/n) "
			read </dev/tty EXIT
			if [ "$EXIT" = "y" ] ; then
				return 1
			fi
		fi
	done
}

if [ "$#" = "0" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
	echo >&2 "Usage: $0 <dump options>"
	echo >&2 "See 'man dump' for dump options"
	echo >&2 "the dump options -F -f -B are not required and are overridden"
	exit 1
fi

set -m	# We need proper job control

if [ "$#" = "2" ] && [ -p "$1" ]; then
	write_output "$@" || (kill $$ >/dev/null 2>&1; exit 1)
	exit 0
else
	mkfifo $FIFO
	trap cleanup EXIT
	if write_output "$FIFO" "0"; then
		if $DUMP "$@" -F "$0" -f "$FIFO" -B$BSIZE; then
			echo "Waiting for background writing process to complete"
			wait %			# Wait for the background writing process
		else
			kill % >/dev/null 2>&1	# or kill it
			exit 1
		fi
		exit 0
	else
		kill % >/dev/null 2>&1	# Kill the background writing process
		exit 1
	fi
fi