mirror of
https://github.com/tboerger/nixos-config
synced 2024-06-09 04:46:03 +02:00
fix: better handling for partitioning
This commit is contained in:
parent
f7ff1dcec9
commit
b379af2bac
59
README.md
59
README.md
|
@ -17,50 +17,12 @@ chmod u=rw,g=,o= $HOME/.ssh/id_*
|
|||
|
||||
## Prepare
|
||||
|
||||
## Midgard
|
||||
|
||||
### Bootstrap
|
||||
|
||||
```console
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tboerger/nixos-config/master/scripts/partitions)" midgard
|
||||
nixos-install --root /mnt --flake github:tboerger/nixos-config\#midgard
|
||||
```
|
||||
|
||||
### Updates
|
||||
|
||||
If the repository had been cloned you could just execute `make switch`,
|
||||
otherwise there is still this long option to update the deployment:
|
||||
|
||||
```console
|
||||
nixos-rebuild switch \
|
||||
--flake github:tboerger/nixos-config\#midgard
|
||||
```
|
||||
|
||||
## Utgard
|
||||
|
||||
### Bootstrap
|
||||
|
||||
```console
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tboerger/nixos-config/master/scripts/partitions)" utgard
|
||||
nixos-install --root /mnt --flake github:tboerger/nixos-config\#utgard
|
||||
```
|
||||
|
||||
### Updates
|
||||
|
||||
If the repository had been cloned you could just execute `make switch`,
|
||||
otherwise there is still this long option to update the deployment:
|
||||
|
||||
```console
|
||||
nixos-rebuild switch \
|
||||
--flake github:tboerger/nixos-config\#utgard
|
||||
```
|
||||
|
||||
## Asgard
|
||||
|
||||
### Bootstrap
|
||||
|
||||
```console
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tboerger/nixos-config/master/scripts/partitions)" asgard
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tboerger/nixos-config/master/scripts/asgard-partitions)"
|
||||
nixos-install --root /mnt --flake github:tboerger/nixos-config\#asgard
|
||||
```
|
||||
|
||||
|
@ -74,6 +36,25 @@ nixos-rebuild switch \
|
|||
--flake github:tboerger/nixos-config\#asgard
|
||||
```
|
||||
|
||||
## Utgard
|
||||
|
||||
### Bootstrap
|
||||
|
||||
```console
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tboerger/nixos-config/master/scripts/utgard-partitions)"
|
||||
nixos-install --root /mnt --flake github:tboerger/nixos-config\#utgard
|
||||
```
|
||||
|
||||
### Updates
|
||||
|
||||
If the repository had been cloned you could just execute `make switch`,
|
||||
otherwise there is still this long option to update the deployment:
|
||||
|
||||
```console
|
||||
nixos-rebuild switch \
|
||||
--flake github:tboerger/nixos-config\#utgard
|
||||
```
|
||||
|
||||
## Security
|
||||
|
||||
If you find a security issue please contact thomas@webhippie.de first.
|
||||
|
|
24
flake.nix
24
flake.nix
|
@ -69,18 +69,6 @@
|
|||
overlay = import ./overlays;
|
||||
|
||||
nixosConfigurations = {
|
||||
midgard = {
|
||||
system = "x86_64-linux";
|
||||
inherit inputs;
|
||||
|
||||
modules = [
|
||||
inputs.homemanager.nixosModules.home-manager
|
||||
inputs.agenix.nixosModules.age
|
||||
sharedNixosConfiguration
|
||||
./machines/midgard
|
||||
./profiles/thomas
|
||||
];
|
||||
};
|
||||
utgard = {
|
||||
system = "x86_64-linux";
|
||||
inherit inputs;
|
||||
|
@ -105,6 +93,18 @@
|
|||
./profiles/thomas
|
||||
];
|
||||
};
|
||||
midgard = {
|
||||
system = "aarch64-linux";
|
||||
inherit inputs;
|
||||
|
||||
modules = [
|
||||
inputs.homemanager.nixosModules.home-manager
|
||||
inputs.agenix.nixosModules.age
|
||||
sharedNixosConfiguration
|
||||
./machines/midgard
|
||||
./profiles/thomas
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
midgard = self.nixosConfigurations.midgard.system;
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
|
||||
if [ "${EUID}" -ne 0 ]; then
|
||||
echo "Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
read -p "Are you sure you want to wipe all partitions? " awnser
|
||||
|
||||
case ${awnser} in
|
||||
[Yy]*)
|
||||
break
|
||||
;;
|
||||
[Nn]*)
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
echo "Please answer yes or no!"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "----> Drop existing partitions"
|
||||
sgdisk --zap-all /dev/sda
|
||||
sgdisk -og /dev/sda
|
||||
sgdisk --zap-all /dev/sdb
|
||||
sgdisk -og /dev/sdb
|
||||
sgdisk --zap-all /dev/sdc
|
||||
sgdisk -og /dev/sdc
|
||||
sgdisk --zap-all /dev/sdd
|
||||
sgdisk -og /dev/sdd
|
||||
sgdisk --zap-all /dev/sde
|
||||
sgdisk -og /dev/sde
|
||||
|
||||
echo "-----> Create boot partition"
|
||||
sgdisk -n 0:0:+1G -t 0:ef00 -c 0:boot /dev/sde
|
||||
|
||||
echo "-----> Create root partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:data /dev/sde
|
||||
|
||||
echo "-----> Create data pv"
|
||||
pvcreate /dev/disk/by-partlabel/data
|
||||
|
||||
echo "-----> Create data vg"
|
||||
vgcreate system /dev/disk/by-partlabel/data
|
||||
|
||||
echo "-----> Create swap volume"
|
||||
lvcreate --size 24G --name swap system
|
||||
|
||||
echo "-----> Create root volume"
|
||||
lvcreate --size 50G --name root system
|
||||
|
||||
echo "-----> Create home volume"
|
||||
lvcreate --size 50G --name home system
|
||||
|
||||
echo "-----> Enable swap partition"
|
||||
mkswap -L swap /dev/system/swap
|
||||
swapon /dev/system/swap
|
||||
|
||||
echo "-----> Create root filesystem"
|
||||
mkfs.ext4 -L root /dev/system/root
|
||||
|
||||
echo "-----> Mount root filesystem"
|
||||
mount -t ext4 /dev/system/root /mnt
|
||||
|
||||
echo "-----> Create home filesystem"
|
||||
mkfs.ext4 -L home /dev/system/home
|
||||
|
||||
echo "-----> Mount home filesystem"
|
||||
mkdir /mnt/home
|
||||
mount -t ext4 /dev/system/home /mnt/home
|
||||
|
||||
echo "-----> Create boot filesystem"
|
||||
mkfs.vfat -n boot /dev/disk/by-partlabel/boot
|
||||
|
||||
echo "-----> Wait for boot"
|
||||
sleep 3
|
||||
|
||||
echo "-----> Mount boot filesystem"
|
||||
mkdir /mnt/boot
|
||||
mount /dev/disk/by-label/boot /mnt/boot
|
||||
|
||||
echo "-----> Create tank partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sda
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdb
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdc
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdd
|
||||
|
||||
echo "-----> Create raid volume"
|
||||
mdadm --create /dev/md0 --level=1 --raid-devices=4 /dev/sda1 /dev/sdb1
|
||||
mdadm --create /dev/md1 --level=1 --raid-devices=4 /dev/sdc1 /dev/sdd1
|
||||
|
||||
echo "-----> Create tank pv"
|
||||
pvcreate /dev/md0 /dev/md1
|
||||
|
||||
echo "-----> Create tank vg"
|
||||
vgcreate tank /dev/md0 /dev/md1
|
|
@ -1,155 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
|
||||
if [ "${#}" -ne 1 ]; then
|
||||
echo "Missing host name!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${EUID}" -ne 0 ]; then
|
||||
echo "Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
read -p "Are you sure you want to wipe all partitions? " awnser
|
||||
|
||||
case ${awnser} in
|
||||
[Yy]*)
|
||||
break
|
||||
;;
|
||||
[Nn]*)
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
echo "Please answer yes or no!"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "${1}" in
|
||||
"utgard")
|
||||
SWAP_SIZE=24G
|
||||
ROOT_SIZE=50G
|
||||
HOME_SIZE=50G
|
||||
ROOT_DISK=/dev/sda
|
||||
|
||||
echo "----> Drop existing partitions"
|
||||
sgdisk --zap-all /dev/sda
|
||||
sgdisk -og /dev/sda
|
||||
sgdisk --zap-all /dev/sdb
|
||||
sgdisk -og /dev/sdb
|
||||
|
||||
;;
|
||||
"asgard")
|
||||
SWAP_SIZE=24G
|
||||
ROOT_SIZE=50G
|
||||
HOME_SIZE=50G
|
||||
ROOT_DISK=/dev/sde
|
||||
|
||||
echo "----> Drop existing partitions"
|
||||
sgdisk --zap-all /dev/sda
|
||||
sgdisk -og /dev/sda
|
||||
sgdisk --zap-all /dev/sdb
|
||||
sgdisk -og /dev/sdb
|
||||
sgdisk --zap-all /dev/sdc
|
||||
sgdisk -og /dev/sdc
|
||||
sgdisk --zap-all /dev/sdd
|
||||
sgdisk -og /dev/sdd
|
||||
sgdisk --zap-all /dev/sde
|
||||
sgdisk -og /dev/sde
|
||||
|
||||
;;
|
||||
*)
|
||||
SWAP_SIZE=24G
|
||||
ROOT_SIZE=50G
|
||||
HOME_SIZE=50G
|
||||
ROOT_DISK=/dev/sda
|
||||
|
||||
echo "----> Drop existing partitions"
|
||||
sgdisk --zap-all /dev/sda
|
||||
sgdisk -og /dev/sda
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "-----> Create boot partition"
|
||||
sgdisk -n 0:0:+1G -t 0:ef00 -c 0:boot ${ROOT_DISK}
|
||||
|
||||
echo "-----> Create root partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:data ${ROOT_DISK}
|
||||
|
||||
echo "-----> Create data pv"
|
||||
pvcreate /dev/disk/by-partlabel/data
|
||||
|
||||
echo "-----> Create data vg"
|
||||
vgcreate system /dev/disk/by-partlabel/data
|
||||
|
||||
echo "-----> Create swap volume"
|
||||
lvcreate --size ${SWAP_SIZE} --name swap system
|
||||
|
||||
echo "-----> Create root volume"
|
||||
lvcreate --size ${ROOT_SIZE} --name root system
|
||||
|
||||
echo "-----> Create home volume"
|
||||
lvcreate --size ${HOME_SIZE} --name home system
|
||||
|
||||
echo "-----> Enable swap partition"
|
||||
mkswap -L swap /dev/system/swap
|
||||
swapon /dev/system/swap
|
||||
|
||||
echo "-----> Create root filesystem"
|
||||
mkfs.ext4 -L root /dev/system/root
|
||||
|
||||
echo "-----> Mount root filesystem"
|
||||
mount -t ext4 /dev/system/root /mnt
|
||||
|
||||
echo "-----> Create home filesystem"
|
||||
mkfs.ext4 -L home /dev/system/home
|
||||
|
||||
echo "-----> Mount home filesystem"
|
||||
mkdir /mnt/home
|
||||
mount -t ext4 /dev/system/home /mnt/home
|
||||
|
||||
echo "-----> Create boot filesystem"
|
||||
mkfs.vfat -n boot /dev/disk/by-partlabel/boot
|
||||
|
||||
echo "-----> Wait for boot"
|
||||
sleep 3
|
||||
|
||||
echo "-----> Mount boot filesystem"
|
||||
mkdir /mnt/boot
|
||||
mount /dev/disk/by-label/boot /mnt/boot
|
||||
|
||||
case "${1}" in
|
||||
"utgard")
|
||||
echo "-----> Create tank partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdb
|
||||
|
||||
echo "-----> Create tank pv"
|
||||
pvcreate /dev/disk/by-partlabel/tank
|
||||
|
||||
echo "-----> Create tank vg"
|
||||
vgcreate tank /dev/disk/by-partlabel/tank
|
||||
|
||||
;;
|
||||
|
||||
"asgard")
|
||||
echo "-----> Create tank partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sda
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdb
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdc
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdd
|
||||
|
||||
echo "-----> Create raid volume"
|
||||
mdadm --create /dev/md0 --level=1 --raid-devices=4 /dev/sda1 /dev/sdb1
|
||||
mdadm --create /dev/md1 --level=1 --raid-devices=4 /dev/sdc1 /dev/sdd1
|
||||
|
||||
echo "-----> Create tank pv"
|
||||
pvcreate /dev/md0 /dev/md1
|
||||
|
||||
echo "-----> Create tank vg"
|
||||
vgcreate tank /dev/md0 /dev/md1
|
||||
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,86 @@
|
|||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
|
||||
if [ "${EUID}" -ne 0 ]; then
|
||||
echo "Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
read -p "Are you sure you want to wipe all partitions? " awnser
|
||||
|
||||
case ${awnser} in
|
||||
[Yy]*)
|
||||
break
|
||||
;;
|
||||
[Nn]*)
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
echo "Please answer yes or no!"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "----> Drop existing partitions"
|
||||
sgdisk --zap-all /dev/sda
|
||||
sgdisk -og /dev/sda
|
||||
sgdisk --zap-all /dev/sdb
|
||||
sgdisk -og /dev/sdb
|
||||
|
||||
echo "-----> Create boot partition"
|
||||
sgdisk -n 0:0:+1G -t 0:ef00 -c 0:boot /dev/sda
|
||||
|
||||
echo "-----> Create root partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:data /dev/sda
|
||||
|
||||
echo "-----> Create data pv"
|
||||
pvcreate /dev/disk/by-partlabel/data
|
||||
|
||||
echo "-----> Create data vg"
|
||||
vgcreate system /dev/disk/by-partlabel/data
|
||||
|
||||
echo "-----> Create swap volume"
|
||||
lvcreate --size 24G --name swap system
|
||||
|
||||
echo "-----> Create root volume"
|
||||
lvcreate --size 50G --name root system
|
||||
|
||||
echo "-----> Create home volume"
|
||||
lvcreate --size 50G --name home system
|
||||
|
||||
echo "-----> Enable swap partition"
|
||||
mkswap -L swap /dev/system/swap
|
||||
swapon /dev/system/swap
|
||||
|
||||
echo "-----> Create root filesystem"
|
||||
mkfs.ext4 -L root /dev/system/root
|
||||
|
||||
echo "-----> Mount root filesystem"
|
||||
mount -t ext4 /dev/system/root /mnt
|
||||
|
||||
echo "-----> Create home filesystem"
|
||||
mkfs.ext4 -L home /dev/system/home
|
||||
|
||||
echo "-----> Mount home filesystem"
|
||||
mkdir /mnt/home
|
||||
mount -t ext4 /dev/system/home /mnt/home
|
||||
|
||||
echo "-----> Create boot filesystem"
|
||||
mkfs.vfat -n boot /dev/disk/by-partlabel/boot
|
||||
|
||||
echo "-----> Wait for boot"
|
||||
sleep 3
|
||||
|
||||
echo "-----> Mount boot filesystem"
|
||||
mkdir /mnt/boot
|
||||
mount /dev/disk/by-label/boot /mnt/boot
|
||||
|
||||
echo "-----> Create tank partition"
|
||||
sgdisk -n 0:0:0 -t 0:8300 -c 0:tank /dev/sdb
|
||||
|
||||
echo "-----> Create tank pv"
|
||||
pvcreate /dev/disk/by-partlabel/tank
|
||||
|
||||
echo "-----> Create tank vg"
|
||||
vgcreate tank /dev/disk/by-partlabel/tank
|
Loading…
Reference in New Issue