aboutsummaryrefslogtreecommitdiffstats
path: root/readme.org
blob: 6bfa639bab02dc0517feb4e9fc1d416c3aa5d4e1 (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
* from existing install
on an existing guix/nix install, you can prep the disks ahead of time.

need ~parted~ and ~btrfs-progs~
: guix shell parted btrfs-progs

* from installer
setting up from the installer requires =configuration.scm= from this
directory. get that on the installer thumb drive, on nfs, or some
other way such that we have access to it from the guix installer.

you'll need to use the terminal-based install, which should have all
the tools you need.

** partition disk
gpt, 3 partitions:
  - 1 :: esp 2GB
  - 2 :: swap 8GB
  - 3 :: linux-fs rest

first create the partition table with ~cfdisk~, using ~gpt~ labels
: cfdisk /dev/vdb

turn on the ‘esp’ flag for partition ~1~:
: parted /dev/vdb set 1 esp on

** create filesystems
*** esp volume
: mkfs.vfat -n ESP -F 32 /dev/vdb1

*** btrfs volumes
note that there is no =/gnu/etc= because =/etc= can, in most cases, be
created automatically at boot during activation.

: mkfs.btrfs -L root /dev/vdb3
: mount -m -t btrfs /dev/vdb3 /mnt
: btrfs subvol create /mnt/gnu
: btrfs subvol create /mnt/gnu/store
: btrfs subvol create /mnt/gnu/var
: btrfs subvol create /mnt/gnu/boot
: btrfs subvol create /mnt/persist
: btrfs subvol create /mnt/persist/home
: btrfs subvol create /mnt/persist/home/root

*** unmount
once the filesystems are set up, unmount =/mnt= so we can tmpfs mount it
later.
: umount /mnt

** mount filesystems
now we mount up enough of the heirarchy so that we can install
everything. probably not all of these are strictly required, but none
should cause problems.

we are mounting =/mnt= as tmpfs just to make sure the installer doesn't
write something to permanent storage that it shouldn't.
: mount -m -t tmpfs tmpfs /mnt
: mount -m -t btrfs -o subvol=/gnu LABEL=root /mnt/gnu
: mount -m -t btrfs -o subvol=/gnu/var LABEL=root /mnt/var
: mount -m -t btrfs -o subvol=/gnu/boot LABEL=root /mnt/boot
: mount -m -t btrfs -o subvol=/persist LABEL=root /mnt/persist
: mount -m -t btrfs -o subvol=/persist/home LABEL=root /mnt/home
: mount -m --bind /mnt/home/root /mnt/root
: mount -m -t vfat LABEL=ESP /mnt/boot/esp

** init system
once the filesystems are mounted, we can init the system
: guix system init configuration.scm /mnt