Keeping it enabled means that the module will keep the group and user reserved, reducing the issues with needing to relog to access files due to the group having been just created. |
||
---|---|---|
.. | ||
bare_install.bash | ||
default.nix | ||
hardware-configuration.nix | ||
install.bash | ||
mount.bash | ||
prep.bash | ||
readme.org |
Infini-DESKTOP Setup
Partition Scheme
Position | Label | FS Type | Size | Type |
---|---|---|---|---|
1 | boot |
vfat / fat32 |
511M | EFI System Partition |
2 | Infini-DESKTOP |
btrfs |
Rest | Root Partition |
3 | swap |
swap |
48G | Swap Space |
Configuration
Setup for my main desktop computer, using an Nvidia GPU and the desktop
form factor from hardware/form
.
Setup Scripts
<<boilerplate>>
<<mount_check>>
<<partitioning>>
<<filesystems>>
<<subvolumes>>
<<mount>>
<<installing>>
<<install_extra>>
<<cleanup>>
<<boilerplate>>
<<mount_check>>
<<mounting>>
<<installing>>
Script Boilerplate
DISK=$1
PART=$DISK$2
sudo mkdir -p /mnt
if mountpoint -q -- "/mnt"; then
echo "ERROR: /mnt is a mounted filesystem, aborting"
exit 1
fi
Partitioning
echo "LOG: Partitioning $DISK"
sudo parted $DISK -- mktable gpt
sudo parted $DISK -s -- mkpart ESP fat32 1MiB 512MiB
sudo parted $DISK -s -- mkpart primary btrfs 512MiB -48GiB
sudo parted $DISK -s -- mkpart primary linux-swap -48GiB 100%
sudo parted $DISK -s -- set 1 esp on
Making Filesystems
echo "LOG: Making filesystems"
echo "- Making fat32 filesystem on ${PART}1"
sudo mkfs.fat -F 32 -n boot "${PART}1"
echo "- Making btrfs filesystem on ${PART}2"
sudo mkfs.btrfs "${PART}2" -L "Infini-DESKTOP" -f
echo "- Making swap space on ${PART}3"
sudo mkswap -L swap "${PART}3"
Making Subvolumes
echo "LOG: Making subvolumes on ${PART}2"
sudo mount "${PART}2" /mnt
sudo btrfs subvolume create /mnt/root
sudo btrfs subvolume create /mnt/root/home
sudo mkdir -p /mnt/root/etc
sudo btrfs subvolume create /mnt/root/etc/nixos
sudo btrfs subvolume create /mnt/boot
sudo btrfs subvolume create /mnt/nix
sudo btrfs subvolume create /mnt/nix/store
sudo umount /mnt
Mounting Volumes
echo "LOG: Mounting tmpfs"
sudo mount -t tmpfs root /mnt
echo "LOG: - Mounting persistent directories"
sudo mkdir -p /mnt/persist /mnt/nix /mnt/boot
sudo mount -o subvol=root,autodefrag,noatime "${PART}2" /mnt/persist
sudo mount -o subvol=nix,autodefrag,noatime "${PART}2" /mnt/nix
sudo mount -o subvol=boot,autodefrag,noatime "${PART}2" /mnt/boot
echo "LOG: - - Mounting persistent subdirectories"
sudo mkdir -p /mnt/home
sudo mount --bind /mnt/persist/home /mnt/home
echo "LOG: - Mounting EFI System Partition"
sudo mkdir -p /mnt/boot/efi
sudo mount "${PART}1" /mnt/boot/efi
Installing
echo "LOG: Installing NixOS"
sudo nixos-install --flake /etc/nixos#Infini-DESKTOP --no-root-password
Extra (Install)
echo "LOG: Cloning configuration"
sudo chown -R infinidoge /mnt/persist/etc/nixos
git clone --no-hardlinks --progress https://gitlab.com/infinidoge/universe.git /mnt/persist/etc/nixos
echo "LOG: Installing Doom Emacs"
sudo mkdir -p /mnt/persist/home/infinidoge/.config/emacs
git clone --no-hardlinks --progress --depth 1 https://github.com/hlissner/doom-emacs /mnt/persist/home/infinidoge/.config/emacs
HOME=/mnt/persist/home/infinidoge /mnt/persist/home/infinidoge/.config/emacs/bin/doom -y install --no-config
Cleanup
echo "LOG: Unmounting all"
sudo umount -R /mnt