implement LVM

makes more flexible use of the available disk space

(untested)
master
lub 1 day ago
parent 6491b1de9f
commit 88198da01b

@ -1,2 +1,2 @@
# <target> <source device> <key file> <options>
root-unlocked UUID=%root_uuid% none luks,discard
root-unlocked /dev/mapper/all_vg-root_striped none luks,discard

@ -7,5 +7,4 @@
UUID=%boot_uuid% /boot ext4 relatime 0 2
UUID=%esp_uuid% /boot/efi vfat relatime 0 2
UUID=%disk1_uuid% /longhorn/01 ext4 relatime 0 2
UUID=%disk2_uuid% /longhorn/02 ext4 relatime 0 2
/dev/mapper/all_vg-longhorn_striped /longhorn ext4 relatime 0 2

@ -1 +1 @@
/dev/nvme0n1p2
/dev/nvme0n1p1

@ -1 +1 @@
/dev/nvme0n1p3
/dev/nvme0n1p2

@ -0,0 +1 @@
/dev/mapper/all_vg-longhorn_striped

@ -1,22 +1,21 @@
#!/bin/bash
set -e
# / 1020GB
# /boot 1GB
# /boot/efi 1GB
# free 0GB
parted -- /dev/nvme0n1 mklabel msdos
parted -- /dev/nvme0n1 mkpart primary 1 1020GB
parted -- /dev/nvme0n1 mkpart primary 1020GB 1022GB
parted -- /dev/nvme0n1 mkpart primary 1022GB 1024GB
parted -- /dev/nvme0n1 mkpart primary 1 1GB # /boot
parted -- /dev/nvme0n1 mkpart primary 1GB 2GB #/boot/efi
parted -- /dev/nvme0n1 mkpart primary 2GB -1 # LVM
# set flag for ESP
parted -- /dev/nvme0n1 set 3 boot on
parted -- /dev/nvme0n1 set 2 boot on
parted -- /dev/nvme1n1 mklabel gpt
parted -- /dev/nvme1n1 mkpart primary 1 -1
parted -- /dev/nvme1n1 mkpart primary 1 -1 # LVM
parted -- /dev/nvme2n1 mklabel gpt
parted -- /dev/nvme2n1 mkpart primary 1 -1
parted -- /dev/nvme2n1 mkpart primary 1 -1 # LVM
pvcreate /dev/nvme0n1p3 /dev/nvme1n1p1 /dev/nvme2n1p1
vgcreate all_vg /dev/nvme0n1p3 /dev/nvme1n1p1 /dev/nvme2n1p1
lvcreate --stripes 3 --extents 100GB -n root_striped
lvcreate --stripes 3 --extents 100%FREE -n longhorn_striped longhorn
sleep 1

@ -1 +1 @@
/dev/nvme0n1p1
/dev/mapper/all_vg-root_striped

@ -42,21 +42,15 @@ if [ -d /sys/firmware/efi ]; then
else
apt-get -y install grub-pc
root_disk="/dev/$(lsblk -no pkname $(cryptsetup status root-unlocked | grep device | perl -pe 's#.*device.* (.*)#$1#') | sort | head -n1)"
grub-install "$root_disk"
boot_disk=$(mount | grep ' on /boot ' | cut -d' ' -f1)
grub-install "$boot_disk"
fi
# edit uuids in fstab
root_uuid=$(blkid --output value "$(cryptsetup status root-unlocked | grep device | perl -pe 's#.*device.* (.*)#$1#')" | head -n1)
boot_uuid=$(blkid --output value "/hardware-setup/hardware/${1}/boot" | head -n1)
esp_uuid=$(blkid --output value "/hardware-setup/hardware/${1}/esp" | head -n1)
disk1_uuid=$(blkid --output value "/dev/nvme1n1p1" | head -n1)
disk2_uuid=$(blkid --output value "/dev/nvme2n1p1" | head -n1)
sed -i "s/%root_uuid%/${root_uuid}/" /etc/crypttab
sed -i "s/%boot_uuid%/${boot_uuid}/" /etc/fstab
sed -i "s/%esp_uuid%/${esp_uuid}/" /etc/fstab
sed -i "s/%disk1_uuid%/${disk1_uuid}/" /etc/fstab
sed -i "s/%disk2_uuid%/${disk2_uuid}/" /etc/fstab
# install longhorn dependencies
apt-get -y install open-iscsi nfs-common

@ -10,6 +10,7 @@ apt-get -y install mdadm cryptsetup debootstrap
root="hardware/${1}/root"
boot="hardware/${1}/boot"
esp="hardware/${1}/esp"
longhorn="hardware/${1}/longhorn"
# encrypt and unlock root device
echo -n 'Enter luks password: '
@ -40,10 +41,8 @@ mkdir "$chroot/boot/efi"
mount "$esp" "$chroot/boot/efi"
# additional data disks
mkfs.ext4 /dev/nvme1n1p1
mkdir --parents "$chroot/longhorn/01"
mkfs.ext4 /dev/nvme2n1p1
mkdir --parents "$chroot/longhorn/02"
mkfs.ext4 "$longhorn"
mkdir "$chroot/longhorn"
# debootstrap

Loading…
Cancel
Save