(define-module (tw system vin) #:use-module (gnu) #:use-module (gnu bootloader grub) #:use-module (gnu system locale) #:use-module (gnu system nss) #:use-module (guix gexp) #:use-module (tw system)) ;; The device's BIOS does not support UEFI, sadly. It also doesn't recognise ;; NVME devices, so we can only use SATA hard disks, not the M.2 SSD. ;; /dev/sda1 is the https://en.wikipedia.org/wiki/BIOS_boot_partition for grub. (define grub-boot-disk ; must contain a BIOS boot partition "/dev/disk/by-id/wwn-0x5000cca39dd469de") ; this is /dev/sda, usually (define guixsd-root-partition ; /dev/sda2, 500 GB (uuid "86970883-b074-4673-a993-193287432352" 'btrfs)) (define backups-partition ; /dev/sdb1, 1000 GB (uuid "383ee9c7-b17e-43c9-9c39-447d63e22b94" 'btrfs)) (define-public %vin-system (operating-system (host-name "vin.twilken.net") (timezone "Europe/Paris") (locale "en_GB.utf8") (locale-definitions (list (locale-definition (name "en_GB.utf8") (source "en_GB")) (locale-definition (name "de_DE.utf8") (source "de_DE")) (locale-definition (name "fr_FR.utf8") (source "fr_FR")) (locale-definition (name "en_US.utf8") (source "en_US")))) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss) ;; Choose UK English console keyboard layout. (keyboard-layout %british-keyboard) ;; Packages installed system-wide. Users can also install packages ;; under their own account: use 'guix search KEYWORD' to search ;; for packages and 'guix install PACKAGE' to install a package. (packages %base-system-packages) ;; Below is the list of system services. To search for available ;; services, run 'guix system search KEYWORD' in a terminal. (services (server-base-services host-name)) ;; The list of user accounts ('root' is implicit). (users %server-base-user-accounts) ;; Use the non-UEFI/legacy BIOS variant of GRUB with the boot header ;; installed on the system/root disk. (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets (list grub-boot-disk)) (keyboard-layout keyboard-layout))) ;; The list of file systems that get "mounted". The unique ;; file system identifiers there ("UUIDs") can be obtained ;; by running 'blkid' in a terminal. (file-systems (cons* (file-system ; this is the smaller (500 GB) disk (mount-point "/") (device guixsd-root-partition) (flags '(no-atime)) (options (alist->file-system-options '(("compress" . "zstd")))) (type "btrfs")) (file-system ; this is the bigger (1000 GB) disk (mount-point "/var/backups") (create-mount-point? #t) (device backups-partition) (flags '(no-atime)) (options (alist->file-system-options '(("compress" . "zstd")))) (type "btrfs")) %base-file-systems)))) %vin-system