moar progress
This commit is contained in:
parent
fdd9ec1568
commit
99605585e1
5 changed files with 50 additions and 10 deletions
|
@ -20,7 +20,7 @@
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
grub = {
|
grub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
device = "/dev/nvme0"; # [managed by install.sh] { grub device }
|
device = "/dev/nvme0n1"; # [managed by install.sh]
|
||||||
efiSupport = true;
|
efiSupport = true;
|
||||||
gfxmodeEfi = "1920x1080";
|
gfxmodeEfi = "1920x1080";
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
disk = {
|
disk = {
|
||||||
master = {
|
master = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = ""; # [managed by install.sh] { device }
|
device = "/dev/nvme0n1"; # [managed by install.sh]
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
extraArgs = [ "-f" "-L nixos" ];
|
extraArgs = [ "-f" "-L nixos" ];
|
||||||
postCreateHook = ''
|
postCreateHook = ''
|
||||||
TMP_MNT=$(mktemp -d)
|
TMP_MNT=$(mktemp -d)
|
||||||
MNT_PART="" # [managed by install.sh] { root partition }
|
MNT_PART="/dev/nvme0n1" # [managed by install.sh]
|
||||||
mount "$MNT_PART" "$TMP_MNT" -o subvol=/
|
mount "$MNT_PART" "$TMP_MNT" -o subvol=/
|
||||||
trap 'umount "$TMP_MNT"; rm -rf "$TMP_MNT"' EXIT
|
trap 'umount "$TMP_MNT"; rm -rf "$TMP_MNT"' EXIT
|
||||||
btrfs subvolume snapshot "$TMP_MNT/root" "$TMP_MNT/blank"
|
btrfs subvolume snapshot "$TMP_MNT/root" "$TMP_MNT/blank"
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
loader = {
|
loader = {
|
||||||
grub = {
|
grub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
device = "/dev/nvme0n1"; # [managed by install.sh] { grub device }
|
device = "/dev/sda"; # [managed by install.sh]
|
||||||
gfxmodeEfi = "1920x1080";
|
gfxmodeEfi = "1920x1080";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -45,6 +45,6 @@
|
||||||
# these specific partitions.
|
# these specific partitions.
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.11"; # [managed by install.sh] { state version }
|
system.stateVersion = "24.11"; # [managed by install.sh]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
disk = {
|
disk = {
|
||||||
master = {
|
master = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = ""; # [managed by install.sh] { device }
|
device = "/dev/sda"; # [managed by install.sh]
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
extraArgs = [ "-f" "-L nixos" ];
|
extraArgs = [ "-f" "-L nixos" ];
|
||||||
postCreateHook = ''
|
postCreateHook = ''
|
||||||
TMP_MNT=$(mktemp -d)
|
TMP_MNT=$(mktemp -d)
|
||||||
MNT_PART="" # [managed by install.sh] { root partition }
|
MNT_PART="/dev/sda2" # [managed by install.sh]
|
||||||
mount "$MNT_PART" "$TMP_MNT" -o subvol=/
|
mount "$MNT_PART" "$TMP_MNT" -o subvol=/
|
||||||
trap 'umount "$TMP_MNT"; rm -rf "$TMP_MNT"' EXIT
|
trap 'umount "$TMP_MNT"; rm -rf "$TMP_MNT"' EXIT
|
||||||
btrfs subvolume snapshot "$TMP_MNT/root" "$TMP_MNT/blank"
|
btrfs subvolume snapshot "$TMP_MNT/root" "$TMP_MNT/blank"
|
||||||
|
|
46
install.sh
46
install.sh
|
@ -72,19 +72,59 @@ args() {
|
||||||
args_ensure_is_set "--host" "$DOTNIX_HOSTNAME"
|
args_ensure_is_set "--host" "$DOTNIX_HOSTNAME"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sed_safe () {
|
||||||
|
# I got this off of some random StackOverflow answer. Don't put too much trust in this.
|
||||||
|
printf "%s" "$1" | sed -r 's/([\$\.\*\/\[\\^])/\\\1/g' | sed 's/[]]/\[]]/g'
|
||||||
|
}
|
||||||
|
|
||||||
|
partition_num_for_device() {
|
||||||
|
parent_dir="$(basename "$(dirname "$1")")"
|
||||||
|
if [ "$parent_dir" = "disk" ]; then
|
||||||
|
>&2 echo "Don't use persistent device names. They will automatically be set later on."
|
||||||
|
exit 1
|
||||||
|
elif [ "$parent_dir" = "mapper" ]; then
|
||||||
|
>&2 echo "lvm volumes are not supported."
|
||||||
|
exit 1
|
||||||
|
elif [ "$parent_dir" != "dev" ]; then
|
||||||
|
>&2 echo "Block device directory not recognized: $parent_dir"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$(basename "$1")" in
|
||||||
|
"nvme"* | "mmcblk"*)
|
||||||
|
printf "%s" "${1}p${2}"
|
||||||
|
;;
|
||||||
|
"sda"* | "vda"* | "hda"*)
|
||||||
|
printf "%s" "${1}${2}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
>&2 echo "Invalid block device type '$(basename "$1")'"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
update_managed_values() {
|
update_managed_values() {
|
||||||
echo "piss"
|
sed -i 's/\( *device = \)".*"\(; #.*\)/\1"'"$(sed_safe "$DOTNIX_INSTALL_DEVICE")"'"\2/' "./hosts/$DOTNIX_HOSTNAME/default.nix"
|
||||||
|
sed -i 's/\( *device = \)".*"\(; #.*\)/\1"'"$(sed_safe "$DOTNIX_INSTALL_DEVICE")"'"\2/' "./hosts/$DOTNIX_HOSTNAME/disko.nix"
|
||||||
|
sed -i 's/\( *MNT_PART=\)".*"\( #.*\)/\1"'"$(sed_safe \
|
||||||
|
"$(partition_num_for_device "$DOTNIX_INSTALL_DEVICE" "2")")"'"\2/' "./hosts/$DOTNIX_HOSTNAME/disko.nix"
|
||||||
}
|
}
|
||||||
|
|
||||||
main () {
|
main () {
|
||||||
args "$@"
|
args "$@"
|
||||||
|
|
||||||
update_managed_values
|
|
||||||
|
|
||||||
if [ "$(id -u)" != "0" ]; then
|
if [ "$(id -u)" != "0" ]; then
|
||||||
>&2 echo "The installation script must be run as root to work."
|
>&2 echo "The installation script must be run as root to work."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -d /sys/firmware/efi ]; then
|
||||||
|
>&2 echo "Legacy BIOS is unsupported"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_managed_values
|
||||||
}
|
}
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
Loading…
Add table
Reference in a new issue