diff --git a/flake.lock b/flake.lock index f1b33a1..900955b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1726524467, + "narHash": "sha256-xkPPPvfHhHK7BNX5ZrQ9N6AIEixCmFzRZHduDf0zv30=", + "owner": "nix-community", + "repo": "disko", + "rev": "22ee467a54a3ab7fa9d637ccad5330c6c087e9dc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "disko", + "type": "github" + } + }, "dotfiles": { "flake": false, "locked": { @@ -70,6 +90,7 @@ }, "root": { "inputs": { + "disko": "disko", "dotfiles": "dotfiles", "home-manager": "home-manager", "nixpkgs": "nixpkgs", diff --git a/flake.nix b/flake.nix index ca08d39..7da18c5 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,11 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; + disko = { + url = "github:nix-community/disko"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + dotfiles = { url = "git+https://code.m3tam3re.com/m3tam3re/dotfiles-flake-demo.git"; flake = false; @@ -26,6 +31,7 @@ outputs = { self, + disko, dotfiles, home-manager, nixpkgs, @@ -47,7 +53,10 @@ nixosConfigurations = { m3-kratos-vm = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; - modules = [./hosts/m3-kratos]; + modules = [ + ./hosts/m3-kratos + inputs.disko.nixosModules.disko + ]; }; }; homeConfigurations = { diff --git a/hosts/common/users/m3tam3re b/hosts/common/users/m3tam3re deleted file mode 120000 index 69af36b..0000000 --- a/hosts/common/users/m3tam3re +++ /dev/null @@ -1 +0,0 @@ -../../../home/m3tam3re \ No newline at end of file diff --git a/hosts/common/users/m3tam3re.nix b/hosts/common/users/m3tam3re.nix index 9387387..5ca242e 100644 --- a/hosts/common/users/m3tam3re.nix +++ b/hosts/common/users/m3tam3re.nix @@ -26,5 +26,5 @@ packages = [inputs.home-manager.packages.${pkgs.system}.default]; }; home-manager.users.m3tam3re = - import m3tam3re/${config.networking.hostName}.nix; + import ../../../home/m3tam3re/${config.networking.hostName}.nix; } diff --git a/hosts/m3-kratos/configuration.nix b/hosts/m3-kratos/configuration.nix index 1ea4660..2273336 100644 --- a/hosts/m3-kratos/configuration.nix +++ b/hosts/m3-kratos/configuration.nix @@ -4,13 +4,13 @@ {pkgs, ...}: { imports = [ # Include the results of the hardware scan. + ./disko-config.nix ./hardware-configuration.nix ]; # Bootloader. - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/vda"; - boot.loader.grub.useOSProber = true; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "m3-kratos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. diff --git a/hosts/m3-kratos/disko-config.nix b/hosts/m3-kratos/disko-config.nix new file mode 100644 index 0000000..8125cd3 --- /dev/null +++ b/hosts/m3-kratos/disko-config.nix @@ -0,0 +1,36 @@ +{ + disko.devices = { + disk = { + nixos = { + type = "disk"; + device = "/dev/vda"; + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/m3-kratos/hardware-configuration.nix b/hosts/m3-kratos/hardware-configuration.nix index 4fdf053..37f6224 100644 --- a/hosts/m3-kratos/hardware-configuration.nix +++ b/hosts/m3-kratos/hardware-configuration.nix @@ -1,24 +1,21 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/profiles/qemu-guest.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + ]; - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/b3fbba01-1206-44d9-9b15-72e6313b4f72"; - fsType = "ext4"; - }; - - swapDevices = [ ]; + boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -29,4 +26,3 @@ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; } -