rewrite hosts

This commit is contained in:
Hendrik Sokolowski 2023-11-11 01:06:36 +01:00
parent d27c37cc16
commit b682bba164
40 changed files with 159 additions and 153 deletions

View file

@ -1,7 +1,7 @@
{ {
pkgs, pkgs,
config, config,
self, flake,
... ...
}: let }: let
containerStateDir = "/var/lib/authelia-gssws"; containerStateDir = "/var/lib/authelia-gssws";
@ -11,19 +11,19 @@
servicePort = 9091; servicePort = 9091;
in { in {
age.secrets.authelia_users = { age.secrets.authelia_users = {
file = "${self}/secrets/chonk_authelia_users.age"; file = "${flake.self}/secrets/chonk_authelia_users.age";
owner = "999"; owner = "999";
group = "999"; group = "999";
}; };
age.secrets.authelia_storage_encryption_key = { age.secrets.authelia_storage_encryption_key = {
file = "${self}/secrets/chonk_authelia_storage_encryption_key.age"; file = "${flake.self}/secrets/chonk_authelia_storage_encryption_key.age";
owner = "999"; owner = "999";
group = "999"; group = "999";
}; };
age.secrets.authelia_jwt_secret = { age.secrets.authelia_jwt_secret = {
file = "${self}/secrets/chonk_authelia_jwt_secret.age"; file = "${flake.self}/secrets/chonk_authelia_jwt_secret.age";
owner = "999"; owner = "999";
group = "999"; group = "999";
}; };

View file

@ -1,11 +1,11 @@
{ {
config, config,
lib, lib,
self, flake,
... ...
}: { }: {
age.secrets.restic_repository_password.file = "${self}/secrets/chonk_restic_repository_password.age"; age.secrets.restic_repository_password.file = "${flake.self}/secrets/chonk_restic_repository_password.age";
age.secrets.restic_nextcloud_password.file = "${self}/secrets/chonk_restic_nextcloud_password.age"; age.secrets.restic_nextcloud_password.file = "${flake.self}/secrets/chonk_restic_nextcloud_password.age";
programs.ssh.extraConfig = '' programs.ssh.extraConfig = ''
Host backup Host backup

View file

@ -1,8 +1,8 @@
{ {
self,
config, config,
pkgs, pkgs,
lib, lib,
flake,
... ...
}: let }: let
psCfg = config.pub-solar; psCfg = config.pub-solar;
@ -10,7 +10,7 @@ in {
age.secrets.nix-builder-private-key = { age.secrets.nix-builder-private-key = {
owner = "builder"; owner = "builder";
group = "builder"; group = "builder";
file = "${self}/secrets/chonk_nix_builder_private_key.age"; file = "${flake.self}/secrets/chonk_nix_builder_private_key.age";
}; };
nix = { nix = {

View file

@ -4,29 +4,6 @@
pkgs, pkgs,
... ...
}: { }: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
./acme.nix
./backup.nix
./drone.nix
./home-assistant.nix
./nextcloud.nix
./wireguard.nix
./builder.nix
./invidious.nix
./factorio.nix
./invoiceplane.nix
#./tang.nix
#./whiteboard.nix
./libvirt-container.nix
./monitoring.nix
./authelia.nix
];
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
@ -41,5 +18,8 @@
networking.firewall.allowedTCPPorts = [80 443 2222]; networking.firewall.allowedTCPPorts = [80 443 2222];
networking.firewall.allowedUDPPorts = [51899]; networking.firewall.allowedUDPPorts = [51899];
pub-solar.server.enable = true;
hardware.ksm.enable = true;
system.stateVersion = "21.05"; # Did you read the comment? system.stateVersion = "21.05"; # Did you read the comment?
} }

View file

@ -2,5 +2,24 @@
imports = [ imports = [
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
./acme.nix
./backup.nix
./drone.nix
./home-assistant.nix
./nextcloud.nix
./wireguard.nix
./builder.nix
./invidious.nix
./factorio.nix
./invoiceplane.nix
#./tang.nix
#./whiteboard.nix
./libvirt-container.nix
./monitoring.nix
./authelia.nix
]; ];
} }

View file

@ -1,11 +1,11 @@
{ {
self,
config, config,
pkgs, pkgs,
flake,
... ...
}: { }: {
age.secrets.drone_exec_runner_config = { age.secrets.drone_exec_runner_config = {
file = "${self}/secrets/chonk_drone_exec_runner_config.age"; file = "${flake.self}/secrets/chonk_drone_exec_runner_config.age";
owner = "999"; owner = "999";
}; };

View file

@ -1,5 +1,4 @@
{ {
self,
lib, lib,
config, config,
pkgs, pkgs,
@ -152,6 +151,10 @@ with pkgs; let
}; };
in rec in rec
{ {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"factorio-headless"
];
services.factorio = { services.factorio = {
enable = true; enable = true;
package = pkgs.factorio-headless-experimental; package = pkgs.factorio-headless-experimental;

View file

@ -5,13 +5,8 @@
config, config,
lib, lib,
pkgs, pkgs,
modulesPath,
... ...
}: { }: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["ehci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"]; boot.initrd.availableKernelModules = ["ehci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = ["raid1"]; boot.initrd.kernelModules = ["raid1"];
boot.kernelModules = ["kvm-intel"]; boot.kernelModules = ["kvm-intel"];

View file

@ -1,5 +1,4 @@
{ {
self,
pkgs, pkgs,
config, config,
... ...

View file

@ -1,12 +1,12 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...
}: let }: let
domain = "yt.gssws.de"; domain = "yt.gssws.de";
in { in {
age.secrets.invidious_db_password.file = "${self}/secrets/chonk_invidious_db_password.age"; age.secrets.invidious_db_password.file = "${flake.self}/secrets/chonk_invidious_db_password.age";
services.invidious = { services.invidious = {
inherit domain; inherit domain;

View file

@ -1,5 +1,4 @@
{ {
self,
config, config,
pkgs, pkgs,
... ...

View file

@ -1,7 +1,7 @@
{ {
config, config,
lib, lib,
self, flake,
... ...
}: { }: {
pub-solar.monitoring-server = { pub-solar.monitoring-server = {

View file

@ -1,5 +1,4 @@
{ {
self,
pkgs, pkgs,
config, config,
lib, lib,

View file

@ -1,5 +1,5 @@
{ {
self, flake,
pkgs, pkgs,
config, config,
lib, lib,
@ -15,13 +15,13 @@ in {
age.secrets.nextcloud_db_pass = { age.secrets.nextcloud_db_pass = {
owner = "nextcloud"; owner = "nextcloud";
group = "nextcloud"; group = "nextcloud";
file = "${self}/secrets/chonk_nextcloud_db_pass.age"; file = "${flake.self}/secrets/chonk_nextcloud_db_pass.age";
}; };
age.secrets.nextcloud_admin_pass = { age.secrets.nextcloud_admin_pass = {
owner = "nextcloud"; owner = "nextcloud";
group = "nextcloud"; group = "nextcloud";
file = "${self}/secrets/chonk_nextcloud_admin_pass.age"; file = "${flake.self}/secrets/chonk_nextcloud_admin_pass.age";
}; };
# HTTP # HTTP

View file

@ -1,5 +1,4 @@
{ {
self,
config, config,
pkgs, pkgs,
... ...

View file

@ -1,10 +1,10 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...
}: { }: {
age.secrets.home_controller_wireguard.file = "${self}/secrets/chonk_wireguard_key.age"; age.secrets.home_controller_wireguard.file = "${flake.self}/secrets/chonk_wireguard_key.age";
systemd.services.wireguard-wg0.serviceConfig.Restart = "on-failure"; systemd.services.wireguard-wg0.serviceConfig.Restart = "on-failure";
systemd.services.wireguard-wg0.serviceConfig.RestartSec = "5s"; systemd.services.wireguard-wg0.serviceConfig.RestartSec = "5s";

View file

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ {
inputs, flake,
pkgs, pkgs,
builtins, builtins,
config, config,
@ -10,11 +10,12 @@
... ...
}: { }: {
imports = [ imports = [
./hardware-configuration.nix
./home-controller.nix ./home-controller.nix
./home-assistant.nix ./home-assistant.nix
]; ];
pub-solar.server.enable = true;
hardware.ksm.enable = true;
boot.loader.timeout = lib.mkForce 0; boot.loader.timeout = lib.mkForce 0;
boot.loader.generic-extlinux-compatible.enable = lib.mkForce false; boot.loader.generic-extlinux-compatible.enable = lib.mkForce false;
@ -26,7 +27,7 @@
device = "nodev"; device = "nodev";
extraInstallCommands = '' extraInstallCommands = ''
cp -r ${inputs.nixpkgs-hensoko.packages.aarch64-linux.raspberrypi4_firmware_uefi}/share/raspberrypi4-firmware-uefi/* /boot/ cp -r ${flake.inputs.nixpkgs-hensoko.packages.aarch64-linux.raspberrypi4_firmware_uefi}/share/raspberrypi4-firmware-uefi/* /boot/
''; '';
}; };

View file

@ -8,10 +8,6 @@
modulesPath, modulesPath,
... ...
}: { }: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["xhci_pci" "usbhid" "usb_storage" "uas"]; boot.initrd.availableKernelModules = ["xhci_pci" "usbhid" "usb_storage" "uas"];
#boot.kernelParams = [ "usb-storage.quirks=2109:0716:u,174c:55aa:u" ]; #boot.kernelParams = [ "usb-storage.quirks=2109:0716:u,174c:55aa:u" ];

View file

@ -1,5 +1,5 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...

View file

@ -1,11 +1,11 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...
}: { }: {
config = { config = {
age.secrets.home_controller_wireguard.file = "${self}/secrets/home_controller_companion_wireguard_key.age"; age.secrets.home_controller_wireguard.file = "${flake.self}/secrets/home_controller_companion_wireguard_key.age";
pub-solar.home-controller = { pub-solar.home-controller = {
enable = true; enable = true;

View file

@ -1,5 +1,5 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...
@ -10,7 +10,7 @@ let
in in
{ {
age.secrets.backup_restic_htpasswd = { age.secrets.backup_restic_htpasswd = {
file = "${self}/secrets/cox_backup_restic_htpasswd.age"; file = "${flake.self}/secrets/cox_backup_restic_htpasswd.age";
owner = "${toString config.ids.uids.restic}"; owner = "${toString config.ids.uids.restic}";
}; };

View file

@ -9,7 +9,6 @@
}: { }: {
imports = [ imports = [
./backup.nix ./backup.nix
./hardware-configuration.nix
./home-controller.nix ./home-controller.nix
./paperless.nix ./paperless.nix
]; ];

View file

@ -1,11 +1,11 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...
}: { }: {
config = { config = {
age.secrets.home_controller_wireguard.file = "${self}/secrets/home_controller_cox_wireguard_key.age"; age.secrets.home_controller_wireguard.file = "${flake.self}/secrets/home_controller_cox_wireguard_key.age";
pub-solar.home-controller = { pub-solar.home-controller = {
enable = true; enable = true;

View file

@ -4,12 +4,8 @@
pkgs, pkgs,
... ...
}: { }: {
imports = [ pub-solar.server.enable = true;
# Include the results of the hardware scan. hardware.ksm.enable = true;
./hardware-configuration.nix
./home-controller.nix
];
pub-solar.core.disk-encryption-active = false; pub-solar.core.disk-encryption-active = false;
networking.networkmanager.enable = lib.mkForce false; networking.networkmanager.enable = lib.mkForce false;

View file

@ -21,10 +21,10 @@ in
(mkNixosConfig "cube" "x86_64-linux" "iot") // (mkNixosConfig "cube" "x86_64-linux" "iot") //
(mkNixosConfig "falcone" "aarch64-linux" "iot") // (mkNixosConfig "falcone" "aarch64-linux" "iot") //
(mkNixosConfig "giggles" "aarch64-linux" "iot") // (mkNixosConfig "giggles" "aarch64-linux" "iot") //
(mkNixosConfig "harrison" "x86_64-linux" "iot") // (mkNixosConfig "harrison" "x86_64-linux" "hensoko") //
(mkNixosConfig "norman" "x86_64-linux" "iot") // (mkNixosConfig "norman" "x86_64-linux" "hensoko") //
(mkNixosConfig "redpanda" "x86_64-linux" "iot") // (mkNixosConfig "redpanda" "x86_64-linux" "hensoko") //
(mkNixosConfig "ringo" "x86_64-linux" "iot") // (mkNixosConfig "ringo" "x86_64-linux" "hensoko") //
(mkNixosConfig "surfplace" "x86_64-linux" "iot"); (mkNixosConfig "surfplace" "x86_64-linux" "hensoko");
}; };
} }

View file

@ -5,11 +5,6 @@
{ inputs, pkgs, builtins, config, lib, ... }: { inputs, pkgs, builtins, config, lib, ... }:
{ {
imports =
[
./hardware-configuration.nix
];
boot.plymouth.enable = lib.mkForce false; boot.plymouth.enable = lib.mkForce false;
pub-solar.nextcloud.enable = lib.mkForce false; pub-solar.nextcloud.enable = lib.mkForce false;
pub-solar.core.disk-encryption-active = false; pub-solar.core.disk-encryption-active = false;

View file

@ -16,7 +16,7 @@
#boot.initrd.supportedFilesystems = [ "zfs" ]; #boot.initrd.supportedFilesystems = [ "zfs" ];
#boot.supportedFilesystems = [ "zfs" ]; #boot.supportedFilesystems = [ "zfs" ];
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_5_19; boot.kernelPackages = lib.mkForce pkgs.linuxPackages;
fileSystems."/" = fileSystems."/" =
{ {

View file

@ -5,7 +5,6 @@
... ...
}: { }: {
imports = [ imports = [
./hardware-configuration.nix
./network.nix ./network.nix
./network-dhcp.nix ./network-dhcp.nix
./avahi-reflector.nix ./avahi-reflector.nix
@ -19,6 +18,8 @@
# ./tang-container.nix # ./tang-container.nix
]; ];
pub-solar.server.enable = true;
hardware.ksm.enable = true;
boot.loader.timeout = 0; boot.loader.timeout = 0;
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
boot.loader.generic-extlinux-compatible.enable = lib.mkForce false; boot.loader.generic-extlinux-compatible.enable = lib.mkForce false;

View file

@ -1,5 +1,5 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
python3Packages, python3Packages,
@ -9,7 +9,7 @@
{ {
age.secrets.home-assistant_giggles_secrets = { age.secrets.home-assistant_giggles_secrets = {
file = "${self}/secrets/home-assistant_giggles_secrets.age"; file = "${flake.self}/secrets/home-assistant_giggles_secrets.age";
path = "${config.services.home-assistant.configDir}/secrets.yaml"; path = "${config.services.home-assistant.configDir}/secrets.yaml";
owner = config.systemd.services.home-assistant.serviceConfig.User; owner = config.systemd.services.home-assistant.serviceConfig.User;
group = config.systemd.services.home-assistant.serviceConfig.Group; group = config.systemd.services.home-assistant.serviceConfig.Group;

View file

@ -1,11 +1,11 @@
{ {
self, flake,
config, config,
pkgs, pkgs,
... ...
}: { }: {
config = { config = {
age.secrets.home_controller_wireguard.file = "${self}/secrets/home_controller_giggles_wireguard_key.age"; age.secrets.home_controller_wireguard.file = "${flake.self}/secrets/home_controller_giggles_wireguard_key.age";
pub-solar.home-controller = { pub-solar.home-controller = {
enable = true; enable = true;

View file

@ -1,6 +1,8 @@
{pkgs, ...}: { pkgs, lib, ...}:
{ {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "mongodb" "unifi-controller" ];
networking.firewall.allowedTCPPorts = [8443]; # open unifi web interface port networking.firewall.allowedTCPPorts = [8443]; # open unifi web interface port
services.unifi = { services.unifi = {

View file

@ -8,12 +8,48 @@ let
psCfg = config.pub-solar; psCfg = config.pub-solar;
in in
{ {
imports = # work
[ pub-solar.docker.enable = true;
# Include the results of the hardware scan. pub-solar.nextcloud.enable = true;
./hardware-configuration.nix pub-solar.social.enable = true;
pub-solar.office.enable = true;
systemd.enableUnifiedCgroupHierarchy = true;
environment.systemPackages = with pkgs; [
jetbrains.goland
minicom
openjdk11
putty
remmina
thunderbird
vscode
vscode-extensions.golang.go
vscode-extensions.ms-python.python
wireshark
go_1_20
meld
ardour
helm
]; ];
# unfree
hardware.enableRedistributableFirmware = true;
# graphical
pub-solar.graphical.enable = true;
pub-solar.sway.enable = true;
# daw
pub-solar.audio.enable = lib.mkForce true;
musnix.enable = true;
services.pipewire.jack.enable = true;
# gaming
pub-solar.gaming.enable = true;
# emulated building for raspi
boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
home-manager.users."${psCfg.user.name}".xdg.configFile = lib.mkIf psCfg.sway.enable { home-manager.users."${psCfg.user.name}".xdg.configFile = lib.mkIf psCfg.sway.enable {
@ -21,7 +57,6 @@ in
}; };
pub-solar.paranoia.enable = true; pub-solar.paranoia.enable = true;
pub-solar.nextcloud.enable = true;
programs.ausweisapp.enable = true; programs.ausweisapp.enable = true;
services.pcscd = { services.pcscd = {

View file

@ -1,6 +1,6 @@
{ suites, ... }: { ... }: {
{
imports = [ imports = [
./harrison.nix ./configuration.nix
] ++ suites.harrison; ./hardware-configuration.nix
];
} }

View file

@ -1,28 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
with pkgs;
let
psCfg = config.pub-solar;
in
{
imports = [
./configuration.nix
];
config = {
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
home-manager.users."${psCfg.user.name}".xdg.configFile = mkIf psCfg.sway.enable {
"sway/config.d/10-screens.conf".source = ./.config/sway/config.d/screens.conf;
};
pub-solar.paranoia.enable = true;
pub-solar.nextcloud.enable = true;
programs.ausweisapp.enable = true;
services.pcscd = {
enable = true;
plugins = [ pkgs.pcsc-cyberjack ];
};
};
}

View file

@ -12,15 +12,43 @@ let
in in
{ {
imports = [ imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
./wireguard.nix ./wireguard.nix
./builder.nix ./builder.nix
]; ];
pub-solar.docker.enable = true;
pub-solar.nextcloud.enable = true;
pub-solar.social.enable = true;
pub-solar.office.enable = true;
systemd.enableUnifiedCgroupHierarchy = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"goland"
];
environment.systemPackages = with pkgs; [
jetbrains.goland
minicom
openjdk11
putty
remmina
thunderbird
vscode
vscode-extensions.golang.go
vscode-extensions.ms-python.python
wireshark
go_1_20
meld
factorio-experimental
];
hardware.enableRedistributableFirmware = true;
pub-solar.graphical.enable = true;
pub-solar.sway.enable = true;
boot.binfmt.emulatedSystems = ["aarch64-linux"]; boot.binfmt.emulatedSystems = ["aarch64-linux"];
environment.systemPackages = [pkgs.factorio-experimental];
pub-solar.audio.bluetooth.enable = false; pub-solar.audio.bluetooth.enable = false;

View file

@ -5,12 +5,6 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
imports =
[
# Include the results of the hardware scan.
./hardware-configuration.nix
];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;

View file

@ -5,12 +5,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports =
[
./hardware-configuration.nix
./home-controller.nix
];
pub-solar.core.lite = true; pub-solar.core.lite = true;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.

View file

@ -4,8 +4,6 @@
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = [ ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];

View file

@ -5,13 +5,13 @@
{ inputs, pkgs, builtins, config, lib, ... }: { inputs, pkgs, builtins, config, lib, ... }:
{ {
imports =
[
./hardware-configuration.nix
];
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
pub-solar.social.enable = true;
hardware.enableRedistributableFirmware = true;
pub-solar.graphical.enable = true;
pub-solar.sway.enable = true;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;

View file

@ -2,6 +2,7 @@
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ {
inputs,
config, config,
lib, lib,
pkgs, pkgs,
@ -9,13 +10,14 @@
... ...
}: { }: {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") #(modulesPath + "/installer/scan/not-detected.nix")
#inputs.nixos-hardware.nixosModules.raspberry-pi-4
]; ];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"];
boot.extraModulePackages = [config.boot.kernelPackages.rtl88x2bu]; boot.extraModulePackages = [config.boot.kernelPackages.rtl88x2bu];
microsoft-surface.kernelVersion = "6.5.5"; #microsoft-surface.kernelVersion = "6.5.5";
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-label/root"; device = "/dev/disk/by-label/root";