blob: 3a5a6b6247a3f9a5acf613cc3493f7a86a1ff3ec (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
(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"))))
(sudoers-file %sudoers-file)
(hosts-file %wireguard-etc-hosts)
;; 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
|