From 88198da01b6b082f3e588a61185ea6d6b1f91a0f Mon Sep 17 00:00:00 2001 From: lub Date: Sun, 14 Sep 2025 14:28:41 +0200 Subject: [PATCH] implement LVM makes more flexible use of the available disk space (untested) --- config/etc/crypttab | 2 +- config/etc/fstab | 3 +-- hardware/hetzner_ax51-nvme/boot | 2 +- hardware/hetzner_ax51-nvme/esp | 2 +- hardware/hetzner_ax51-nvme/longhorn | 1 + hardware/hetzner_ax51-nvme/parted.sh | 23 +++++++++++------------ hardware/hetzner_ax51-nvme/root | 2 +- post-debootstrap-installer.sh | 10 ++-------- setup.sh | 7 +++---- 9 files changed, 22 insertions(+), 30 deletions(-) create mode 120000 hardware/hetzner_ax51-nvme/longhorn diff --git a/config/etc/crypttab b/config/etc/crypttab index 5c7757a..7da8233 100644 --- a/config/etc/crypttab +++ b/config/etc/crypttab @@ -1,2 +1,2 @@ # -root-unlocked UUID=%root_uuid% none luks,discard +root-unlocked /dev/mapper/all_vg-root_striped none luks,discard diff --git a/config/etc/fstab b/config/etc/fstab index 4b85bd1..c6bedd8 100644 --- a/config/etc/fstab +++ b/config/etc/fstab @@ -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 diff --git a/hardware/hetzner_ax51-nvme/boot b/hardware/hetzner_ax51-nvme/boot index 62da020..82982d7 120000 --- a/hardware/hetzner_ax51-nvme/boot +++ b/hardware/hetzner_ax51-nvme/boot @@ -1 +1 @@ -/dev/nvme0n1p2 \ No newline at end of file +/dev/nvme0n1p1 \ No newline at end of file diff --git a/hardware/hetzner_ax51-nvme/esp b/hardware/hetzner_ax51-nvme/esp index 09d1323..62da020 120000 --- a/hardware/hetzner_ax51-nvme/esp +++ b/hardware/hetzner_ax51-nvme/esp @@ -1 +1 @@ -/dev/nvme0n1p3 \ No newline at end of file +/dev/nvme0n1p2 \ No newline at end of file diff --git a/hardware/hetzner_ax51-nvme/longhorn b/hardware/hetzner_ax51-nvme/longhorn new file mode 120000 index 0000000..0777aaa --- /dev/null +++ b/hardware/hetzner_ax51-nvme/longhorn @@ -0,0 +1 @@ +/dev/mapper/all_vg-longhorn_striped \ No newline at end of file diff --git a/hardware/hetzner_ax51-nvme/parted.sh b/hardware/hetzner_ax51-nvme/parted.sh index d9d61cd..94b29f8 100755 --- a/hardware/hetzner_ax51-nvme/parted.sh +++ b/hardware/hetzner_ax51-nvme/parted.sh @@ -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 diff --git a/hardware/hetzner_ax51-nvme/root b/hardware/hetzner_ax51-nvme/root index 82982d7..742a2bc 120000 --- a/hardware/hetzner_ax51-nvme/root +++ b/hardware/hetzner_ax51-nvme/root @@ -1 +1 @@ -/dev/nvme0n1p1 \ No newline at end of file +/dev/mapper/all_vg-root_striped \ No newline at end of file diff --git a/post-debootstrap-installer.sh b/post-debootstrap-installer.sh index 565e15e..07cbd5d 100755 --- a/post-debootstrap-installer.sh +++ b/post-debootstrap-installer.sh @@ -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 diff --git a/setup.sh b/setup.sh index 5cd3aec..b23b3b9 100755 --- a/setup.sh +++ b/setup.sh @@ -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