tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: vnd.c 1.254
Date: Sun, 17 Jan 2016 23:26:35 +0100
From: Michael van Elst <mlelstv%serpens.de@localhost>
Message-ID: <20160117222634.GA5226%serpens.de@localhost>
| I'd rather have something that lists existing devices, allocates
| a fresh one and tells me the name and works for all such pseudo disks.
I use the following script. You will probably want to remove the
"echo cgd0" bit - I do that to permanently reserve cgd0 from this kind
of use (all my systems use that one for one particular purpose.)
I call it next_avail - usage is something like
VND=$( next_avail vnd )
CGD=$( next_avail cgd )
(and whatever else is similar, I know there is at least one more, but I
have forgotten which it is .. oh yes, raid of course...)
kre
#! /bin/sh
# Usage: next_avail cloner-type-disk
# eg; next_avail vnd
# (or cgd or raid ...)
next_avail ()
{
local dev="$1"
local N=$(( ${#dev} + 1 ))
local unit units
units=$(
( sysctl -n hw.disknames ; echo cgd0 ) |
tr ' ' '\012' |
grep '^'"${dev}"'[0-9]' |
sort -u -n -k 1.$N )
test -z "${units}" && {
test -e "/dev/${dev}0a" || {
echo >&2 "No ${dev}s available!"
return 1
}
echo "${dev}0"
return
}
N=0
for unit in ${units}
do
if [ "${unit}" = "${dev}${N}" ]
then
N=$(( N + 1 ))
else
echo "${dev}${N}"
return
fi
done
test -e /dev/"${dev}${N}a" || {
echo >&2 "All ${dev}s in use"
return 1
}
echo "${dev}${N}"
}
for A
do
next_avail "${A}"
done
Home |
Main Index |
Thread Index |
Old Index