Add script for automatic disk extension + swap creation
This commit is contained in:
parent
58622fa5b6
commit
c6c50bb3c5
@ -46,13 +46,11 @@ echo -n 'password' | cryptsetup open --type luks /dev/sda2 system
|
|||||||
# Set up LVM
|
# Set up LVM
|
||||||
pvcreate /dev/mapper/system
|
pvcreate /dev/mapper/system
|
||||||
vgcreate vg0 /dev/mapper/system
|
vgcreate vg0 /dev/mapper/system
|
||||||
lvcreate -L 4G vg0 -n swap
|
|
||||||
lvcreate -l 100%FREE vg0 -n root
|
lvcreate -l 100%FREE vg0 -n root
|
||||||
|
|
||||||
# Format
|
# Format
|
||||||
mkfs.ext4 -m0 /dev/sda1
|
mkfs.ext4 -m0 /dev/sda1
|
||||||
mkfs.ext4 -m1 /dev/vg0/root
|
mkfs.ext4 -m1 /dev/vg0/root
|
||||||
mkswap /dev/vg0/swap
|
|
||||||
|
|
||||||
# Mount
|
# Mount
|
||||||
mount -t ext4 /dev/vg0/root /mnt
|
mount -t ext4 /dev/vg0/root /mnt
|
||||||
@ -97,7 +95,6 @@ dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/sda
|
|||||||
# Unmount and shut down
|
# Unmount and shut down
|
||||||
umount /mnt/boot
|
umount /mnt/boot
|
||||||
umount /mnt
|
umount /mnt
|
||||||
swapoff -a
|
|
||||||
vgchange -a n
|
vgchange -a n
|
||||||
cryptsetup luksClose system
|
cryptsetup luksClose system
|
||||||
poweroff
|
poweroff
|
||||||
|
5
basic.sh
5
basic.sh
@ -5,7 +5,7 @@ SOURCE_DIR=$(realpath $(dirname "${0}"))/basic
|
|||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
apk --no-cache add --virtual .useful git file htop less openssh-server openssh-sftp-server
|
apk --no-cache add --virtual .useful git file htop less openssh-server openssh-sftp-server
|
||||||
apk --no-cache add curl docker gettext kbd-misc libressl python3 py3-bcrypt py3-cffi py3-dnspython py3-jinja2 py3-requests py3-six py3-werkzeug nginx
|
apk --no-cache add curl docker e2fsprogs-extra gettext kbd-misc libressl python3 py3-bcrypt py3-cffi py3-dnspython py3-jinja2 py3-requests py3-six py3-werkzeug nginx util-linux
|
||||||
|
|
||||||
# Copy profile files and settings
|
# Copy profile files and settings
|
||||||
mkdir -p /root/.config/htop /root/.ssh
|
mkdir -p /root/.config/htop /root/.ssh
|
||||||
@ -17,6 +17,7 @@ cp ${SOURCE_DIR}/root/.config/htop/htoprc /root/.config/htop/htoprc
|
|||||||
cp ${SOURCE_DIR}/boot/extlinux.conf /boot/extlinux.conf
|
cp ${SOURCE_DIR}/boot/extlinux.conf /boot/extlinux.conf
|
||||||
cp ${SOURCE_DIR}/boot/spotter.txt /boot/spotter.txt
|
cp ${SOURCE_DIR}/boot/spotter.txt /boot/spotter.txt
|
||||||
cp ${SOURCE_DIR}/etc/inittab /etc/inittab
|
cp ${SOURCE_DIR}/etc/inittab /etc/inittab
|
||||||
|
cp ${SOURCE_DIR}/sbin/extend-disk /sbin/extend-disk
|
||||||
>/etc/motd
|
>/etc/motd
|
||||||
|
|
||||||
# Enable support for Czech characters
|
# Enable support for Czech characters
|
||||||
@ -47,7 +48,7 @@ cp -r ${SOURCE_DIR}/srv/spotter /srv/spotter
|
|||||||
ln -s /srv/spotter/cli.py /usr/bin/spotter-appmgr
|
ln -s /srv/spotter/cli.py /usr/bin/spotter-appmgr
|
||||||
|
|
||||||
# Configure services
|
# Configure services
|
||||||
for SERVICE in consolefont crond nginx ntpd sshd spotter-appmgr; do
|
for SERVICE in consolefont crond nginx ntpd sshd spotter-appmgr swap; do
|
||||||
rc-update add ${SERVICE} boot
|
rc-update add ${SERVICE} boot
|
||||||
service ${SERVICE} start
|
service ${SERVICE} start
|
||||||
done
|
done
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
::sysinit:/sbin/openrc sysinit >/dev/null 2>&1
|
::sysinit:/sbin/openrc sysinit >/dev/null 2>&1
|
||||||
::sysinit:/sbin/openrc boot >/dev/null 2>&1
|
::sysinit:/sbin/openrc boot >/dev/null 2>&1
|
||||||
|
::wait:/sbin/extend-disk >/dev/null 2>&1
|
||||||
::wait:/sbin/openrc default >/dev/null 2>&1
|
::wait:/sbin/openrc default >/dev/null 2>&1
|
||||||
|
|
||||||
# Set up getty
|
# Set up getty
|
||||||
|
39
basic/sbin/extend-disk
Executable file
39
basic/sbin/extend-disk
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# No resizing with less than 10k unused blocks
|
||||||
|
BLOCKS_FREE=$(/usr/bin/awk '/sda$/ {blocks = $3} /sda\d/ {blocks -= $3} END {print blocks}' /proc/partitions)
|
||||||
|
[ ${BLOCKS_FREE} -lt 10240 ] && exit 0
|
||||||
|
|
||||||
|
# Resize physical partition
|
||||||
|
# Force busybox fdisk as util-linux fdisk breaks subsequent partx command
|
||||||
|
cat <<EOF | /bin/busybox fdisk /dev/sda || /bin/true
|
||||||
|
d
|
||||||
|
2
|
||||||
|
n
|
||||||
|
p
|
||||||
|
2
|
||||||
|
|
||||||
|
|
||||||
|
t
|
||||||
|
2
|
||||||
|
8e
|
||||||
|
w
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Re-read partition table
|
||||||
|
/usr/sbin/partx -u /dev/sda2
|
||||||
|
|
||||||
|
# Resize dmcrypt and LVM PV
|
||||||
|
/sbin/cryptsetup resize system
|
||||||
|
/sbin/pvresize /dev/mapper/system
|
||||||
|
|
||||||
|
# Create swap if it doesn't exist
|
||||||
|
if [ ! -e /dev/vg0/swap ]; then
|
||||||
|
/sbin/lvcreate -L 4G vg0 -n swap
|
||||||
|
/sbin/mkswap /dev/vg0/swap
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extend LV and underlying filesystem
|
||||||
|
/sbin/lvextend -l +100%FREE vg0/root
|
||||||
|
/usr/sbin/resize2fs /dev/vg0/root
|
Loading…
Reference in New Issue
Block a user