Fix the disk detection issue on the installer
This commit is contained in:
parent
f861e50f3e
commit
be288a69c0
15
flake.lock
15
flake.lock
|
@ -238,17 +238,18 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711478570,
|
"lastModified": 1711499008,
|
||||||
"narHash": "sha256-qjzwq2qj0e9EpN7QYTnTXipHmrWWUG3bEARmzju81OI=",
|
"narHash": "sha256-uXUEpBFfa3e3g37XKJKnlns7wF8Jxq/OE2vvVNbYmo8=",
|
||||||
"ref": "refs/heads/v4",
|
"ref": "v4",
|
||||||
"rev": "2d459669cb67e1960579e97e05ccac05c993b70a",
|
"rev": "1f4e6f158ef5922c9b7d4214d0ba1de19b7dba63",
|
||||||
"revCount": 1063,
|
"revCount": 1065,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "file:///home/lxsameer/src/fg42"
|
"url": "https://devheroes.codes/FG42/FG42"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
"ref": "v4",
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "file:///home/lxsameer/src/fg42"
|
"url": "https://devheroes.codes/FG42/FG42"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
|
|
@ -30,8 +30,8 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
#fg42.url = "git+https://devheroes.codes/FG42/FG42?ref=v4";
|
fg42.url = "git+https://devheroes.codes/FG42/FG42?ref=v4";
|
||||||
fg42.url = "/home/lxsameer/src/fg42";
|
#g42.url = "/home/lxsameer/src/fg42";
|
||||||
|
|
||||||
flake_utils.url = "github:numtide/flake-utils";
|
flake_utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
|
|
@ -213,22 +213,26 @@ rec {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
disk = diskFile: grubPart: { lib, pkgs, inputs, hostBuilderConfig, ... }: {
|
disk-installer = host: diskFile: { lib, pkgs, inputs, hostBuilderConfig, ... }: {
|
||||||
# imports = if !hostBuilderConfig.inVM
|
imports = [];
|
||||||
# then [
|
|
||||||
# "${inputs.disko}/module.nix"
|
|
||||||
# ]
|
|
||||||
# else [];
|
|
||||||
imports = [
|
|
||||||
"${inputs.disko}/module.nix"
|
|
||||||
];
|
|
||||||
|
|
||||||
disko = if !hostBuilderConfig.inVM
|
|
||||||
then import diskFile
|
|
||||||
else {};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.disko
|
pkgs.disko
|
||||||
|
(pkgs.writeShellScriptBin "install-universe" ''
|
||||||
|
# if /etc/universe_release
|
||||||
|
export NIX_PATH=/etc/nix/inputs/
|
||||||
|
echo "Partitioning the disk..."
|
||||||
|
echo "${diskFile}"
|
||||||
|
cp "${diskFile}" /etc/sdisk.nix
|
||||||
|
${pkgs.disko}/bin/disko -m disko /etc/disks.nix
|
||||||
|
mkdir -p /mnt/etc/nix
|
||||||
|
ln -s /mnt/etc/nix/inputs/ /etc/nix/inputs/
|
||||||
|
cd /mnt
|
||||||
|
echo "running installer"
|
||||||
|
nixos-install --impure --flake self#${host} --root /mnt -v --show-trace
|
||||||
|
echo "done"
|
||||||
|
'')
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
|
@ -240,25 +244,20 @@ rec {
|
||||||
boot.loader.grub.efiInstallAsRemovable = true;
|
boot.loader.grub.efiInstallAsRemovable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
autoInstaller = host: partitioner: { lib, pkgs, ... }: {
|
disk = diskFile: { lib, pkgs, inputs, hostBuilderConfig, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
partitioner
|
"${inputs.disko}/module.nix"
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.writeShellScriptBin "install-universe" ''
|
disko = lib.optionalAttrs (!hostBuilderConfig.inVM) (import diskFile).disko;
|
||||||
# if /etc/universe_release
|
environment.etc = {
|
||||||
export NIX_PATH=/etc/nix/inputs/
|
"disks.nix".source = diskFile;
|
||||||
echo "Partitioning the disk..."
|
};
|
||||||
${pkgs.disko}/bin/disko -m disko /etc/disks.nix
|
|
||||||
mkdir -p /mnt/etc/nix
|
boot.loader.grub.device = "nodev";
|
||||||
ln -s /mnt/etc/nix/inputs/ /etc/nix/inputs/
|
boot.loader.grub.efiSupport = true;
|
||||||
cd /mnt
|
boot.loader.grub.efiInstallAsRemovable = true;
|
||||||
echo "running installer"
|
|
||||||
nixos-install --impure --flake self#${host} --root /mnt -v --show-trace
|
|
||||||
echo "done"
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
styles = { lib, pkgs, inputs, ...}: {
|
styles = { lib, pkgs, inputs, ...}: {
|
||||||
|
|
|
@ -65,7 +65,7 @@ rec {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
uid = 9000;
|
uid = 9000;
|
||||||
group = "lxsameer";
|
group = "mary";
|
||||||
|
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"wheel"
|
"wheel"
|
||||||
|
|
|
@ -43,7 +43,7 @@ in nixpkgs.lib.nixosSystem {
|
||||||
base
|
base
|
||||||
installerUser
|
installerUser
|
||||||
generator
|
generator
|
||||||
(autoInstaller host diskModule)
|
diskModule
|
||||||
]);
|
]);
|
||||||
|
|
||||||
# Pass these attributes to all the modules for this
|
# Pass these attributes to all the modules for this
|
||||||
|
|
|
@ -58,14 +58,14 @@ let
|
||||||
|
|
||||||
fg42 = inputs.fg42.packages.${system}.default;
|
fg42 = inputs.fg42.packages.${system}.default;
|
||||||
inVM = (utils.sanitizeBuilderConfig hostBuilderConfig).inVM;
|
inVM = (utils.sanitizeBuilderConfig hostBuilderConfig).inVM;
|
||||||
|
host = if inVM then "majinVM" else "majin";
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
installer = import ./installer.nix (params // {
|
installer = import ./installer.nix (params // {
|
||||||
host = if inVM then "majinVM" else "majin";
|
diskModule = (modules.disk-installer
|
||||||
diskModule = (modules.disk
|
host
|
||||||
(if inVM then ./majin/vm.disk.nix else ./majin/disks.nix)
|
(if inVM then ./majin/vm.disk.nix else ./majin/disks.nix));
|
||||||
(if inVM then "/dev/sda" else "/dev/disk/by-partlabel/disk-twoT-root"));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
majin = nixpkgs.lib.nixosSystem {
|
majin = nixpkgs.lib.nixosSystem {
|
||||||
|
@ -76,8 +76,7 @@ in {
|
||||||
"${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
|
"${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
|
||||||
this
|
this
|
||||||
(disk
|
(disk
|
||||||
(if inVM then ./majin/vm.disk.nix else ./majin/disks.nix)
|
(if inVM then ./majin/vm.disk.nix else ./majin/disks.nix))
|
||||||
(if inVM then "/dev/sda" else "/dev/disk/by-partlabel/disk-twoT-root"))
|
|
||||||
bootable
|
bootable
|
||||||
base
|
base
|
||||||
lxsameer.user
|
lxsameer.user
|
||||||
|
|
|
@ -40,7 +40,7 @@ let
|
||||||
|
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
services.xserver.displayManager.sddm.enable = true;
|
||||||
services.xserver.desktopManager.plasma6.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
|
|
||||||
# I want to fully control my users via nix
|
# I want to fully control my users via nix
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
|
@ -55,7 +55,7 @@ let
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home".neededForBoot = true;
|
fileSystems."/".neededForBoot = true;
|
||||||
services.gvfs.enable = true;
|
services.gvfs.enable = true;
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
|
@ -69,13 +69,16 @@ let
|
||||||
|
|
||||||
fg42 = inputs.fg42.packages.${system}.default;
|
fg42 = inputs.fg42.packages.${system}.default;
|
||||||
inVM = (utils.sanitizeBuilderConfig hostBuilderConfig).inVM;
|
inVM = (utils.sanitizeBuilderConfig hostBuilderConfig).inVM;
|
||||||
|
|
||||||
|
host = if inVM then "marylandVM" else "maryland";
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
installer = import ./installer.nix (params // {
|
installer = import ./installer.nix (params // {
|
||||||
host = if inVM then "marylandVM" else "maryland";
|
inherit host;
|
||||||
diskModule = (modules.disk
|
diskModule = (modules.disk-installer
|
||||||
(if inVM then ./maryland/vm.disk.nix else ./maryland/disks.nix)
|
host
|
||||||
(if inVM then "/dev/sda" else "/dev/nvme0n1"));
|
(if inVM then ./maryland/vm.disk.nix else ./maryland/disks.nix));
|
||||||
});
|
});
|
||||||
|
|
||||||
maryland = nixpkgs.lib.nixosSystem {
|
maryland = nixpkgs.lib.nixosSystem {
|
||||||
|
@ -86,8 +89,7 @@ in {
|
||||||
"${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
|
"${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
|
||||||
this
|
this
|
||||||
(disk
|
(disk
|
||||||
(if inVM then ./maryland/vm.disk.nix else ./maryland/disks.nix)
|
(if inVM then ./maryland/vm.disk.nix else ./maryland/disks.nix))
|
||||||
(if inVM then "/dev/sda" else "/dev/nvme0n1p3"))
|
|
||||||
bootable
|
bootable
|
||||||
base
|
base
|
||||||
mary.user
|
mary.user
|
||||||
|
@ -100,7 +102,7 @@ in {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
|
|
||||||
home-manager.users.lxsameer = mary.desktop;
|
home-manager.users.mary = mary.desktop;
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit inputs fg42;
|
inherit inputs fg42;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,35 +1,37 @@
|
||||||
{
|
{
|
||||||
devices = {
|
disko = {
|
||||||
disk = {
|
devices = {
|
||||||
main = {
|
disk = {
|
||||||
device = "/dev/nvme0n1";
|
main = {
|
||||||
type = "disk";
|
device = "/dev/nvme0n1";
|
||||||
content = {
|
type = "disk";
|
||||||
type = "gpt";
|
content = {
|
||||||
partitions = {
|
type = "gpt";
|
||||||
ESP = {
|
partitions = {
|
||||||
size = "1G";
|
ESP = {
|
||||||
type = "EF00";
|
size = "1G";
|
||||||
content = {
|
type = "EF00";
|
||||||
type = "filesystem";
|
content = {
|
||||||
format = "vfat";
|
type = "filesystem";
|
||||||
mountpoint = "/boot";
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
swap = {
|
||||||
swap = {
|
size = "64G";
|
||||||
size = "64G";
|
content = {
|
||||||
content = {
|
type = "swap";
|
||||||
type = "swap";
|
resumeDevice = true;
|
||||||
resumeDevice = true;
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
root = {
|
root = {
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
format = "ext4";
|
format = "ext4";
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue