/usr/bin/undertaker-tracecontrol-prepare-debian is in undertaker 1.6.1-1.
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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | #!/bin/bash
# Copyright (C) 2012 Bernhard Heinloth <bernhard@heinloth.net>
# Copyright (C) 2012 Valentin Rothberg <valentinrothberg@gmail.com>
# Copyright (C) 2012 Andreas Ruprecht <rupran@einserver.de>
#
# This program 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 3 of the License, or
# (at your option) any later version.
#
# This program 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.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -e
TRACEUTIL=undertaker-traceutil
SCRIPTDIRINSTALLED="$(dirname "$(readlink -f "$0")")/../lib/undertaker/tailor/ubuntu-boot"
SCRIPTDIR="$(dirname "$(readlink -f "$0")")/boot"
FORCE=false
INITRAMFS="$(mktemp)"
INITRD="$(mktemp)"
function help {
echo "Usage $0 [arguments]"
echo
echo "Possible arguments:"
echo " -s <dir> Path to dir with bootscripts"
echo " -t <file> Path to trace util excecutable"
echo " -h Print this help"
echo " -f Force the actions"
}
while getopts "fs:t:h" options ; do
case "$options" in
h) help
exit 0
;;
f) FORCE=true
;;
s) if [[ -d "$OPTARG" ]] ; then
SCRIPTDIR="$OPTARG"
else
echo "scriptdir '$OPTARG' is not a directory - aborting"
exit 1
fi
;;
t) if [[ -x "$OPTARG" ]] ; then
TRACEUTIL="$(readlink -f "$OPTARG" )"
else
echo "traceutil '$OPTARG' is not an executable file - aborting"
exit 1
fi
;;
*) echo "Unknown Argument..."
help
exit 1
;;
esac
done
if [[ "$FORCE" = "false" ]] ; then
if ! which lsb_release > /dev/null 2>&1 || [[ ! "$(lsb_release -i -s)" = "Debian" ]] ; then
echo "This is not Debian..."
exit 1
fi
fi
if [[ ! -d "$SCRIPTDIR" ]] ; then
if [[ -d "$SCRIPTDIRINSTALLED" ]] ; then
SCRIPTDIR="$SCRIPTDIRINSTALLED"
else
echo "Could not find scriptdir at $SCRIPTDIR - aborting..."
exit 1
fi
fi
# Check for presence of traceutil
if [[ ! -x "$TRACEUTIL" ]] ; then
TRACEUTIL="$(type -P "$TRACEUTIL")"
fi
if [[ -z "$TRACEUTIL" || ! -x "$TRACEUTIL" ]] ; then
echo "ERROR: undertaker-traceutil was not found."
echo "If you only downloaded and\
compiled the undertaker sources, please provide the -t parameter with the\
path to the compiled undertaker-traceutil binary."
exit 1
fi
# If traceutil is not in the right spot, copy it there or issue warning
if [[ "$FORCE" = "true" || ( "$(id -u)" = "0" && "$TRACEUTIL" != "/usr/sbin/undertaker-traceutil" ) ]] ; then
cp -v "$TRACEUTIL" /usr/sbin/undertaker-traceutil
elif [[ "$(id -u)" != "0" ]] ; then
echo "WARNING: You are not root."
echo "Please make sure that \"$TRACEUTIL\" is somewhere \
under /usr/ (preferrably /usr/sbin/) to use early boot tracing. If it is not, \
copy it there yourself!"
fi
# Copy configuration file to /etc/init
if [[ "$FORCE" = "true" || "$(id -u)" = "0" ]] ; then
cp -v "$SCRIPTDIR/undertaker-trace" /etc/init.d/undertaker-trace
chmod +x /etc/init.d/undertaker-trace
update-rc.d undertaker-trace defaults
else
echo "WARNING: $SCRIPTDIR/undertaker-trace.conf could not be copied to /etc/init."
echo " You MUST do this if early boot tracing is desired!"
fi
# Create initrd in local directory, try to copy it to /boot afterwards
cd "$SCRIPTDIR" && find scripts/ | grep -v .svn | cpio -ov --format=newc | gzip -9 > "$INITRAMFS"
cd "$OLDPWD"
zcat "$INITRAMFS" | cpio -tv
cat "/boot/initrd.img-$(uname -r)" "$INITRAMFS" > "$INITRD"
# This needs root, otherwise warn user to copy the file.
if [[ "$FORCE" = "true" || "$(id -u)" = "0" ]] ; then
cp -v "$INITRD" "/boot/initrd.img-$(uname -r).ftrace"
else
cp -v "$INITRD" "./initrd.img-$(uname -r).ftrace"
echo "WARNING: You are not root, new initrd created as ./initrd.img-$(uname -r).ftrace."
echo "Please copy it to /boot as root."
fi
|