Goodbye old friend, you served me well. But Neovim serves me better now. You shall live on forever in my commit history. The melodramatic vimmer returns home.
4.1 KiB
4.1 KiB
Infini-FRAMEWORK Setup
Partition Scheme
Position | Label | FS Type | Size | Type |
---|---|---|---|---|
1 | boot |
vfat / fat32 |
511M | EFI System Partition |
2 | Infini-FRAMEWORK |
btrfs |
Rest | Root Partition |
3 | swap |
swap |
24G | Swap Space |
Configuration
My main laptop, the Framework Laptop.
Specs
Component | |
---|---|
CPU | 11th Gen Intel i5-1135G7 |
GPU | Iris Xe Integrated Graphics |
RAM | 16gb |
Storage | 1tb SSD |
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 -24GiB
sudo parted $DISK -s -- mkpart primary linux-swap -24GiB 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-FRAMEWORK" -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-FRAMEWORK --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
Cleanup
echo "LOG: Unmounting all"
sudo umount -R /mnt