Diskussion:NixOS
Ideen für Ideen zu und rund um NixOS
NixOS meets iRedMail
(g)ui the whole configuration.nix
- gui oder wui
- Unmöglichkeit von Typos
- bessere Übersicht zu (allen) verfügbaren Optionen
- ...
NixOS as FreeBSD
- aka uNix oder FreeNix oder NixBSD
nixpkgs on BSD
- Anwendungsbeispiele
- nix für Jails
my perfect NixOS laptop installation
The goal is to set up a sweet default for the usage of a (usual) laptop running NixOS.
- Probably we are going to use a ThinkPad (idea of the project denkende Bretter bohren). Of course everybody can bring their own device.
The "perfect" setup seems to be:
- NixOS
- ZFS (for everything but /boot)
- ext4 might be possible also but is not as feature rich. btrfs should be also available to install (NixOS) on.
- 2 mirrored disks (nice to have)
- (A caddy for a second disk (for a ThinkPad) will be there for testing such a setup. user:vater has got one.)
- all data encrypted (as far as possible - for / but probably without /boot)
- Probably we have to use the 18.03 (version of NixOS, a prerelease) b/c we also want to test native ZFS encryption.
- (maybe a device or file for swap)
Installation
Hardware
- Laptop
- lenovo ThikPad T430
- Massenspeicher
- 2 x 500 GB HDD
- 1 x 24 GB SSD
- 1 x 16 GB USB
- Arbeitsspeicher
- 2 x 8 GB DDR3
Partitionieren und Formatieren
Bestandsaufnahme der verfuegbaren Geraete an Massenspeicher
lsblk
fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
fdisk -l /dev/sdb
Disk /dev/sdb: 22.4 GiB, 24015495168 bytes, 46905264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
fdisk -l /dev/sdc
Disk /dev/sdc: 14.9 GiB, 16005464064 bytes, 31260672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
fdisk -l /dev/sdd
Disk /dev/sdd: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Partitionierung eines verfuegbaren Geraetes an Massenspeicher
- Pauschales Erstellen einer neuen Partitionstabelle auf jedem Geraet, das kuenftig Bestandteil vom Setup sein soll
- BTW: Das kann auch gern auf der grafischen Oberflaeche mit GParted gemacht werden.
- Geraet im Dropdown-Menue auswaehlen
- Device -> Create Partion Table
- gpt im Dropdown-Menue auswaehlen
- Bestaetigen
???
sgdisk -p /dev/sda
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
2 2099200 976773119 464.8 GiB 8300 Linux filesystem
sgdisk -Z /dev/sda
GPT data structures destroyed! You may now partition the disk using fdisk or other utilities.
sgdisk -o /dev/sda
Creating new GPT entries.
The operation has completed successfully.
sgdisk -p /dev/sda
Disk /dev/sdd: 976773168 sectors, 465.8 GiB
Model:
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID):
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 976773101 sectors (465.8 GiB)
Number Start (sector) End (sector) Size Code Name
sgdisk -a1 -n2:34:2047 -t2:EF02 /dev/sda
sgdisk -n1:0:0 -t1:BF01 /dev/sda
sgdisk -p /dev/sda
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Model:
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID):
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 8-sector boundaries
Total free space is 0 sectors (0 bytes)
Number Start (sector) End (sector) Size Code Name
1 2048 976773134 465.8 GiB BF01
2 34 2047 1007.0 KiB EF02
Partitionierung eines weiteren Geraetes an Massenspeicher
Replizieren der Partitionstablle vom eingerichteten Geraet sda auf das gleichermassen einzurichtende Geraet sdd
sgdisk /dev/sda -R /dev/sdd
The operation has completed successfully.
Generieren einer neuen (abweichenden) GUID fuer das gleichermassen einzurichtende Geraet sdd
sgdisk -G /dev/sdd
Erstellen von einem Spiegel der Partitionen (sda1 und sdd1) fuer das Booten der einheitlich eingerichteten Geraete sda und sdd
mdadm --create /dev/md/md1 --metadata=0.90 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdd1
mdadm: array /dev/md/md1 started.
booting from ZFS
GRUB kann doch ZFS, oder?
- oder ist das nur ein Ding für FreeBSD?
- https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_ZFS#Booting_your_kernel_and_initrd_from_ZFS
- https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation
- https://www.gnu.org/software/grub/manual/grub/html_node/Multi_002dboot-manual-config.html
Das Übergeben vom Passwort ist dann vielleicht noch einmal ein anderer Akt. (Ich bilde mir ein, dass als PC-BSD zeitweise GRUB nutzte, das da bereits bei GRUB das Passwort abverlangt wurde. (set kFreeBSD.kern.geom.eli.passphrase="$pass"
oder so ein Pfeffer[1]))