1
0
mirror of synced 2026-01-14 15:35:18 +00:00

75 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
#
# This script ensures that the new guest images have a nicely
# populated /dev directory.
#
# Steve
# --
# https://steve.fi/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/share/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Test where MAKEDEV is located, assuming /sbin/ as default
#
MAKEDEV=''
MAKEDEV_PATHS="/sbin/MAKEDEV /dev/MAKEDEV"
for MAKEDEV_PATH in ${MAKEDEV_PATHS}; do
if [ -x "${prefix}${MAKEDEV_PATH}" ]; then
MAKEDEV="${prefix}${MAKEDEV_PATH}"
break
fi
done
if [ -n "${MAKEDEV}" ]; then
#
# Early termination if we have a couple of common devices present
# should speed up installs which use --copy/--tar
#
if ( test `ls -1 ${prefix}/dev | wc -l` -gt 10 ); then
#
# We still need to make sure the basic devices are present
#
cd ${prefix}/dev
${MAKEDEV} std
${MAKEDEV} hda
${MAKEDEV} sda
${MAKEDEV} tty1
logMessage "Terminating because there appear to be files in /dev already"
exit
fi
#
# Make the device nodes.
#
cd ${prefix}/dev
${MAKEDEV} generic
${MAKEDEV} std
fi # -n ${MAKEDEV}
#
# Log our finish
#
logMessage Script $0 finished