Benutzer Diskussion:PaulRiegel/NixOS: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 270: | Zeile 270: | ||
21. nixos-install | 21. nixos-install | ||
== [https://nixos.wiki/wiki/NixOS_on_ZFS NixOs mit nativ encrypted zfs (uefi)] == | |||
1. Download [https://nixos.org/releases/tmp/release-nixos-unstable-small/ NixOs 18.03] | |||
2. Bootfähigen USB erstellen | |||
3. Installation von NixOs starten | |||
4. Mit nano in /etc/nixos/configuration.nix | |||
$ nano /etx/nixos/configuration.nix | |||
folgendes einfügen (Reihenfolge entscheidend): | |||
boot.zfs.enableUnstable = true; | |||
boot.supportedFilesystems = [ "zfs" ]; | |||
5. Laden der Packages | |||
$ nixos-rebuild switch | |||
6. ZFS in den Kernel laden | |||
$ modprobe zfs | |||
7. Partitionierung von /dev/sda mit gdisk oder fdisk: | |||
/dev/sda1 100MB code: ef00 (Boot-Partition) | |||
/dev/sda2 restliche Platte fstyp: solaris /home mit code: bf05 erhältlich (Pool) | |||
8. Vollständig encrypted Pool anlegen (zroot kann auch anders benannt werden, ashift=12 für 4k Blocksize) | |||
$ zpool create -o ashift=12 -o altroot="/mnt" -O encryption=aes-256-gcm -O keyformat=passphrase zroot /dev/sda2 | |||
9. | |||
$ zfs create -o mountpoint=none zroot/root | |||
$ zfs create -o mountpoint=legacy -o sync=disabled zroot/root/tmp | |||
$ zfs create -o mountpoint=legacy zroot/root/home | |||
$ zfs create -o mountpoint=legacy zroot/root/nixos | |||
$ zfs set compression=lz4 zpool/pool/home | |||
10. Mount zroot/root/nixos nach /mnt | |||
$ mount -t zfs zroot/root/nixos /mnt | |||
11. Unter /mnt die Ordner home, tmp und boot anlegen | |||
$ mkdir /mnt/{home,tmp,boot} | |||
12. Dateisystem (vfat) für die Boot-Partition /dev/sda1 festlegen und Mount von /dev/sda1 nach /mnt/boot | |||
$ mkfs.vfat /dev/sda1 | |||
$ mount /dev/sda1 /mnt/boot/ | |||
13. Die restlichen Verzeichnisse mounten | |||
$ mount -t zfs zroot/root/home /mnt/home/ | |||
$ mount -t zfs zroot/root/tmp /mnt/tmp/ | |||
14. NixOs hardware-configuration.nix erzeugen | |||
$ nixos-generate-config --root /mnt | |||
Diese sollte so ähnlich aussehen: | |||
fileSystems."/" = | |||
{ device = "zpool/root/nixos"; | |||
fsType = "zfs"; | |||
}; | |||
fileSystems."/home" = | |||
{ device = "zpool/root/home"; | |||
fsType = "zfs"; | |||
}; | |||
fileSystems."/tmp" = | |||
{ device = "zpool/root/tmp"; | |||
fsType = "zfs"; | |||
}; | |||
fileSystems."/boot" = | |||
{ device = "/dev/disk/by-uuid/..."; | |||
fsType = "vfat"; | |||
}; | |||
15. Zum Schluss die configuration.nix im neuen System anpassen unter /mnt/etc/nixos/configuration.nix | |||
$ nano /mnt/etc/nixos/configuration.nix | |||
folgende Zeilen einfügen (Reihenfolge entscheidend): | |||
boot.zfs.enableUnstable = true; | |||
boot.supportedFilesystems = [ "zfs" ]; | |||
networking.hostId = "ac174b52"; | |||
(15.1 Gegebenenfalls in dieser Datei die Zeile powerManagement auskommentieren) | |||
16. nixos-install | |||
Version vom 9. November 2017, 15:25 Uhr
foo rund um die Installation
- ZFS
Neben
boot.supportedFilesystems = [ "zfs" ];
muss wohl auch noch
networking.hostId = "ac174b52";
angegeben werden. Das ist für solaris porting layer spl.
running unstable
boot.zfs.enableUnstable = true;
Mic's OS
- https://github.com/Mic92/dotfiles/blob/master/nixos/images/install-iso.nix
- https://github.com/NixOS/nixpkgs/pull/29426
- https://d3g5gsiof5omrk.cloudfront.net/nixos/unstable/nixos-18.03pre115461.9e7db9a9f9
17.09 meets zfs
nano /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
boot.supportedFilesystems = [ "zfs" ];
}
nixos-rebuild switch
modprobe zfs
fdisk /dev/sda
sgdisk --zap-all /dev/sda
sgdisk -a1 -n2:34:2047 -t2:EF02 /dev/sda
sgdisk -n1:0:0 -t1:BF01 /dev/sda
zpool create -o ashift=12 -o altroot=/mnt rpool /dev/sda2
zfs create -o mountpoint=none rpool/root
zfs create -o mountpoint=legacy rpool/root/nixos
zfs create -o mountpoint=legacy rpool/home
zfs set compression=lz4 rpool/home
mount -t zfs rpool/root/nixos /mnt
mkdir /mnt/home
mount -t zfs rpool/home /mnt/home
___
mkfs.ext4 -m 0 -L boot -j /dev/sda1
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot
nixos-generate-config --root /mnt
less /mnt/etc/nixos/hardware-configuration.nix
nano /mnt/etc/nixos/configuration.nix
nano /mnt/etc/nixos/configuration.nix
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
# boot.loader.grub.efiSupport = true;
# boot.loader.grub.efiInstallAsRemovable = true;
# boot.loader.efi.efiSysMountPoint = "/boot/efi";
# Define on which hard drive you want to install Grub.
# boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
boot.loader.grub.device = "/dev/sda";
boot.supportedFilesystems = [ "zfs" ];
#### config.networking.hostId = "70cccxx";
#### networking.hostId = "70cccxx";
#### networking.hostId = "$hostIdHex";
networking.hostId = "4e98920d";
networking.hostName = "nixos"; # Define your hostname.
networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Select internationalisation properties.
# i18n = {
# consoleFont = "Lat2-Terminus16";
# consoleKeyMap = "us";
# defaultLocale = "en_US.UTF-8";
# };
# Set your time zone.
# time.timeZone = "Europe/Amsterdam";
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
wget vim
nano
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.bash.enableCompletion = true;
# programs.mtr.enable = true;
# programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.layout = "us";
services.xserver.xkbOptions = "eurosign:e";
# Enable touchpad support.
services.xserver.libinput.enable = true;
# Enable the KDE Desktop Environment.
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
# users.extraUsers.guest = {
# isNormalUser = true;
# uid = 1000;
# };
# This value determines the NixOS release with which your system is to be
# compatible, in order to avoid breaking some software such as database
# servers. You should change this only after NixOS release notes say you
# should.
system.stateVersion = "17.09"; # Did you read the comment?
}
nixos-install
nixos mit zfs (uefi)
1. Folgende Zeile, der configuration.nix des livesystems hinzufuegen:
boot.supportedFilesystems = [ "zfs" ];
2. nixos-rebuild switch
3. nano /etc/nixos/configuration.nix 3.1 configuration.nix hinzufuegen:
boot.supportedFilesystems = [ "zfs" ];
4. nixos-rebuild switch
5. modprobe zfs
6. Partitionierung mit gdisk von sda:
6.1 sda1 100MB boot partition mit code ef00 6.2 sda2 restliche Platte eine Partition fstyp solaris /home (bf05)
7. zpool create -o ashift=12 -o altroot=/mnt rpool /dev/sda2
8. zfs create -o mountpoint=none rpool/root
9. zfs create -o mountpoint=legacy rpool/root/nixos
10. zfs create -o mountpoint=legacy rpool/home
11. zfs set compression=lz4 rpool/home
12. mount -t zfs rpool/root/nixos /mnt
13. mkdir /mnt/home
14. mount -t zfs rpool/home /mnt/home
15. mkfs.vfat /dev/sda1
16. mkdir mnt/boot
17. mount /dev/disk/by-id/"festplattenname"-part1 /mnt/boot
18. nixos-generate-config --root /mnt
19. nano /mnt/etc/nixos/hardware-configuration.nix
19.1 sollte enthalten:
fileSystems."/" =
{ device = "rpool/root/nixos";
fsType = "zfs";
};
fileSystems."/home" =
{ device = "rpool/home";
fsType = "zfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/...";
fsType = "vfat";
};
20. nano /mnt/etc/nixos/configuration.nix
20.1 das einfuegen:
boot.supportedFilesystems = [ "zfs" ];
networking.hostId = "ac174b52";
21. nixos-install
NixOs mit nativ encrypted zfs (uefi)
1. Download NixOs 18.03
2. Bootfähigen USB erstellen
3. Installation von NixOs starten
4. Mit nano in /etc/nixos/configuration.nix
$ nano /etx/nixos/configuration.nix
folgendes einfügen (Reihenfolge entscheidend):
boot.zfs.enableUnstable = true; boot.supportedFilesystems = [ "zfs" ];
5. Laden der Packages
$ nixos-rebuild switch
6. ZFS in den Kernel laden
$ modprobe zfs
7. Partitionierung von /dev/sda mit gdisk oder fdisk:
/dev/sda1 100MB code: ef00 (Boot-Partition) /dev/sda2 restliche Platte fstyp: solaris /home mit code: bf05 erhältlich (Pool)
8. Vollständig encrypted Pool anlegen (zroot kann auch anders benannt werden, ashift=12 für 4k Blocksize)
$ zpool create -o ashift=12 -o altroot="/mnt" -O encryption=aes-256-gcm -O keyformat=passphrase zroot /dev/sda2
9.
$ zfs create -o mountpoint=none zroot/root $ zfs create -o mountpoint=legacy -o sync=disabled zroot/root/tmp $ zfs create -o mountpoint=legacy zroot/root/home $ zfs create -o mountpoint=legacy zroot/root/nixos $ zfs set compression=lz4 zpool/pool/home
10. Mount zroot/root/nixos nach /mnt
$ mount -t zfs zroot/root/nixos /mnt
11. Unter /mnt die Ordner home, tmp und boot anlegen
$ mkdir /mnt/{home,tmp,boot}
12. Dateisystem (vfat) für die Boot-Partition /dev/sda1 festlegen und Mount von /dev/sda1 nach /mnt/boot
$ mkfs.vfat /dev/sda1 $ mount /dev/sda1 /mnt/boot/
13. Die restlichen Verzeichnisse mounten
$ mount -t zfs zroot/root/home /mnt/home/ $ mount -t zfs zroot/root/tmp /mnt/tmp/
14. NixOs hardware-configuration.nix erzeugen
$ nixos-generate-config --root /mnt
Diese sollte so ähnlich aussehen:
fileSystems."/" =
{ device = "zpool/root/nixos";
fsType = "zfs";
};
fileSystems."/home" =
{ device = "zpool/root/home";
fsType = "zfs";
};
fileSystems."/tmp" =
{ device = "zpool/root/tmp";
fsType = "zfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/...";
fsType = "vfat";
};
15. Zum Schluss die configuration.nix im neuen System anpassen unter /mnt/etc/nixos/configuration.nix
$ nano /mnt/etc/nixos/configuration.nix
folgende Zeilen einfügen (Reihenfolge entscheidend):
boot.zfs.enableUnstable = true; boot.supportedFilesystems = [ "zfs" ]; networking.hostId = "ac174b52";
(15.1 Gegebenenfalls in dieser Datei die Zeile powerManagement auskommentieren)
16. nixos-install