48 lines
1.2 KiB
Bash
Executable File
48 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
DISK="${DISK:-/dev/sda}"
|
|
|
|
echo "About to WIPE: ${DISK}"
|
|
lsblk "${DISK}" || true
|
|
read -r -p 'Type WIPE to continue: ' CONFIRM
|
|
if [ "${CONFIRM}" != "WIPE" ]; then
|
|
echo "Aborted."
|
|
exit 1
|
|
fi
|
|
|
|
wipefs -a "${DISK}"
|
|
parted -s "${DISK}" mklabel gpt
|
|
parted -s "${DISK}" mkpart ESP fat32 1MiB 513MiB
|
|
parted -s "${DISK}" set 1 esp on
|
|
parted -s "${DISK}" mkpart primary btrfs 513MiB 100%
|
|
|
|
EFI_PART="${DISK}1"
|
|
ROOT_PART="${DISK}2"
|
|
|
|
mkfs.fat -F 32 "${EFI_PART}"
|
|
mkfs.btrfs -f "${ROOT_PART}"
|
|
|
|
mount "${ROOT_PART}" /mnt
|
|
btrfs subvolume create /mnt/@
|
|
btrfs subvolume create /mnt/@home
|
|
umount /mnt
|
|
|
|
mount -o subvol=@,compress=zstd,noatime "${ROOT_PART}" /mnt
|
|
mkdir -p /mnt/home
|
|
mount -o subvol=@home,compress=zstd,noatime "${ROOT_PART}" /mnt/home
|
|
|
|
mkdir -p /mnt/boot/efi
|
|
mount "${EFI_PART}" /mnt/boot/efi
|
|
|
|
nixos-generate-config --root /mnt
|
|
|
|
echo
|
|
echo "Partitioning done."
|
|
echo "Generated /mnt/etc/nixos/hardware-configuration.nix"
|
|
echo "Next steps:"
|
|
echo "1) Put your flake repo at /mnt/etc/nixos (clone it there)."
|
|
echo "2) Copy /mnt/etc/nixos/hardware-configuration.nix into:"
|
|
echo " /mnt/etc/nixos/hosts/aspire-laptop/hardware-configuration.nix"
|
|
echo "3) Run: nixos-install --flake /mnt/etc/nixos#aspire-laptop"
|