92 lines
1.8 KiB
Bash
92 lines
1.8 KiB
Bash
#!/bin/sh -e
|
|
|
|
Usage() {
|
|
>&2 echo "Usage: $0 hostname [vgname]"
|
|
exit 1
|
|
}
|
|
|
|
die() {
|
|
>&2 echo "died: $*"
|
|
exit 1
|
|
}
|
|
|
|
msg() {
|
|
>&2 printf '\e[34;1m%s\e[0m\n' "$*"
|
|
}
|
|
|
|
lv_exists() {
|
|
true && lvs --noheadings --options lv_name "$1"
|
|
case $? in
|
|
0) return 0 ;;
|
|
5) return 1 ;;
|
|
*) die "Error while determining, if lv «$1» exists" ;;
|
|
esac
|
|
}
|
|
|
|
alias blkuuid="blkid -ovalue -sUUID" blkfstype="blkid -ovalue -sTYPE"
|
|
|
|
[ X = X"$1" ] && Usage
|
|
[ X-h = X"$1" ] && Usage
|
|
[ X--help = X"$1" ] && Usage
|
|
|
|
hostname="$1"
|
|
#vgname="${2:-${hostname}sd}"
|
|
disc="/dev/mmcblk1"
|
|
pvpath="${disc}p2"
|
|
|
|
echo "Hostname: «$hostname»"
|
|
#echo "VG-name: «$vgname»"
|
|
echo
|
|
|
|
msg "Install needed tools..."
|
|
apt update
|
|
apt install -y lvm2 xfsprogs
|
|
|
|
msg "Set Hostname «$hostname»..."
|
|
oldhostname=`cat /etc/hostname`
|
|
sed -i -e "s/$oldhostname/$hostname/g" /etc/hosts
|
|
echo "$hostname" > /etc/hostname
|
|
|
|
vgname="`pvs --noheadings --options vg_name "$pvpath" | sed -e 's/^ *//'`"
|
|
# renaming does not work, because blockdevices will not be created.
|
|
# vgknodes, vgscan --mknodes tested.
|
|
#if [ "X$oldvgname" = "X$vgname" ]
|
|
#then
|
|
# msg "VG already named «$vgname»."
|
|
#else
|
|
# msg "Rename VG in «$vgname»..."
|
|
# vgrename "$oldvgname" "$vgname"
|
|
#fi
|
|
|
|
msg "Expand PV «$pvpath»..."
|
|
parted -ms "$disc" -- resizepart 2 -4MB print
|
|
pvresize "$pvpath"
|
|
|
|
msg "Expand root-LV..."
|
|
lvextend -rL4G "$vgname/root"
|
|
|
|
if lv_exists "$vgname/swap"
|
|
then
|
|
msg "LV «swap» already exists."
|
|
else
|
|
msg "Prepare swap-LV..."
|
|
lvcreate -nswap -L2G "$vgname"
|
|
mkswap "/dev/$vgname/swap"
|
|
echo "UUID=`blkuuid /dev/$vgname/swap` swap swap sw 0 0" >>/etc/fstab
|
|
fi
|
|
|
|
if lv_exists "$vgname/home"
|
|
then
|
|
msg "LV «home» already exists"
|
|
else
|
|
msg "Prepare home-LV..."
|
|
lvcreate -nhome -L4G "$vgname"
|
|
mkfs.xfs "/dev/$vgname/home"
|
|
echo "UUID=`blkuuid /dev/$vgname/home` /home xfs defaults 0 0" >>/etc/fstab
|
|
fi
|
|
|
|
msg "Install Updates..."
|
|
apt dist-upgrade -y
|
|
|
|
msg "ok"
|