diff --git a/hosts/ess-helm/boot.nix b/hosts/ess-helm/boot.nix index 53a9686..77a2903 100644 --- a/hosts/ess-helm/boot.nix +++ b/hosts/ess-helm/boot.nix @@ -1,7 +1,9 @@ { - boot.loader.systemd-boot = { - enable = true; - configurationLimit = 10; + boot.loader = { + grub = { + enable = true; + device = "/dev/sda"; + }; + timeout = 1; }; - boot.loader.efi.canTouchEfiVariables = true; } diff --git a/hosts/ess-helm/disks.sh b/hosts/ess-helm/disks.sh index 88814b1..53d824a 100644 --- a/hosts/ess-helm/disks.sh +++ b/hosts/ess-helm/disks.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -SSD='/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_116314040' +SSD='/dev/sda' MNT='/mnt' SWAP_GB=1 @@ -14,50 +14,61 @@ wait_for_device() { echo "Device $device is ready." } -# Function to install a package if it's not already installed -install_if_missing() { - local cmd="$1" - local package="$2" - if ! command -v "$cmd" &> /dev/null; then - echo "$cmd not found, installing $package..." - nix-env -iA "nixos.$package" - fi -} - -install_if_missing "sgdisk" "gptfdisk" -install_if_missing "partprobe" "parted" - +swapoff --all +udevadm settle wait_for_device $SSD echo "Wiping filesystem on $SSD..." wipefs -a $SSD -echo "Clearing partition table on $SSD..." -sgdisk --zap-all $SSD +echo "Creating new MBR partition table on $SSD..." +fdisk $SSD << EOF +o +w +EOF echo "Partitioning $SSD..." -sgdisk -n1:1M:+1G -t1:EF00 -c1:BOOT $SSD -sgdisk -n2:0:+"$SWAP_GB"G -t2:8200 -c2:SWAP $SSD -sgdisk -n3:0:0 -t3:8304 -c3:ROOT $SSD +fdisk $SSD << EOF +n +p +1 + ++512M +a +n +p +2 + ++${SWAP_GB}G +t +2 +82 +n +p +3 + + +w +EOF + partprobe -s $SSD udevadm settle - -wait_for_device ${SSD}-part1 -wait_for_device ${SSD}-part2 -wait_for_device ${SSD}-part3 +wait_for_device "${SSD}1" +wait_for_device "${SSD}2" +wait_for_device "${SSD}3" echo "Formatting partitions..." -mkfs.vfat -F 32 -n BOOT "${SSD}-part1" -mkswap -L SWAP "${SSD}-part2" -mkfs.ext4 -L ROOT "${SSD}-part3" +mkfs.ext4 -L BOOT "${SSD}1" +mkswap -L SWAP "${SSD}2" +mkfs.ext4 -L ROOT "${SSD}3" echo "Mounting partitions..." -mount -o X-mount.mkdir "${SSD}-part3" "$MNT" +mount -o X-mount.mkdir "${SSD}3" "$MNT" mkdir -p "$MNT/boot" -mount -t vfat -o fmask=0077,dmask=0077,iocharset=iso8859-1 "${SSD}-part1" "$MNT/boot" +mount "${SSD}1" "$MNT/boot" echo "Enabling swap..." -swapon "${SSD}-part2" +swapon "${SSD}2" echo "Partitioning and setup complete:" lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL diff --git a/hosts/ess-helm/hardware.nix b/hosts/ess-helm/hardware.nix index 2bfd7b4..a95d46d 100644 --- a/hosts/ess-helm/hardware.nix +++ b/hosts/ess-helm/hardware.nix @@ -8,19 +8,16 @@ { imports = [ - (modulesPath + "/installer/scan/not-detected.nix") + (modulesPath + "/profiles/qemu-guest.nix") ]; boot.initrd.availableKernelModules = [ "ahci" - "nvme" - "sd_mod" - "sdhci_pci" - "sr_mod" - "usb_storage" + "xhci_pci" "virtio_pci" "virtio_scsi" - "xhci_pci" + "sd_mod" + "sr_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ ]; @@ -33,14 +30,12 @@ fileSystems."/boot" = { device = "/dev/disk/by-label/BOOT"; - fsType = "vfat"; - options = [ - "fmask=0022" - "dmask=0022" - ]; + fsType = "ext4"; }; - swapDevices = [ { device = "/dev/disk/by-label/SWAP"; } ]; + swapDevices = [ + { device = "/dev/disk/by-label/SWAP"; } + ]; networking.useDHCP = lib.mkDefault true;