Add script that does the macmini bootstrap
Rob Vermaas committed
Sep 28, 2019 at 20:33 UTC
7817e6973a3c9a0e61c1d62e14cc14051e903f77
1 file changed
+50
macs/bootstrap-macmini
new
+50
@@ -0,0 +1,50 @@
1
+#!/usr/bin/env bash
2
+
3
+set -ex
4
+
5
+parted /dev/sda -- mklabel gpt
6
+parted /dev/sda -- mkpart primary 512MiB -16GiB
7
+parted /dev/sda -- mkpart primary linux-swap -16GiB -1MiB
8
+parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
9
+parted /dev/sda -- set 3 boot on
10
+
11
+zpool create -o ashift=12 -o altroot=/mnt rpool /dev/sda1
12
+zfs create -o mountpoint=legacy rpool/root
13
+mount -t zfs rpool/root /mnt
14
+
15
+mkfs.fat -F 32 -n boot /dev/sda3
16
+mkdir /mnt/boot
17
+mount /dev/sda3 /mnt/boot
18
+
19
+mkswap -L swap /dev/sda2
20
+
21
+nixos-generate-config --root /mnt
22
+
23
+hostId=$(head -c 8 /etc/machine-id)
24
+
25
+cat > /mnt/etc/nixos/bootstrap-config.nix <<EOF
26
+{ config, pkgs, lib, ...}:
27
+{ boot.supportedFilesystems = [ "zfs" ];
28
+ networking.hostId = "$hostId";
29
+ nixpkgs.config.allowUnfree = true;
30
+ fileSystems."/boot".device = lib.mkOverride 0 "/dev/disk/by-label/boot";
31
+ swapDevices = lib.mkOverride 0 [ { device = "/dev/disk/by-label/swap"; } ];
32
+}
33
+EOF
34
+
35
+sed -i 's|powerManagement.cpuFreqGovernor|#powerManagement.cpuFreqGovernor|' /mnt/etc/nixos/hardware-configuration.nix
36
+
37
+sed -i 's|hardware-configuration.nix|hardware-configuration.nix ./bootstrap-config.nix|' /mnt/etc/nixos/configuration.nix
38
+
39
+sed -i 's|# services.openssh.enable|services.openssh.enable|' /mnt/etc/nixos/configuration.nix
40
+
41
+mkdir -p /mnt/root/.ssh
42
+chmod 0700 /mnt/root
43
+chmod 0700 /mnt/root/.ssh
44
+cat > /mnt/root/.ssh/authorized_keys <<EOF
45
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDHp3/OZP2nRS5bM9E1xN8Q2L398kC+m4guORjKsmGjwnnHvYnTml5puE2ogl8Wdenbk7hf82+vKyB+Tktrhx+IBSym4lY+czR6W+39hlPYdLbi980yxYT9KEMSyMWJEgPVJ1BZvHqsHQiad/L3eoPmAIMDmcn4mLh9rya5/oMW/ZgsA6j28ClvWkDRyaTmTLOa0Im4nLoSbdo8kJqU+JX/YcXlMKUvFfdMcj4T9YYwV98LPWHnEHFmjtBBUXRUAIESMXS6pm3Pep3czkKUL4UF0u9f17b40OWlLOF4IQWE2jM9yK09DiIQUzeU2XKRNW116DnmDL5QIRNrYnhkYeeQI3U6WnVTPdTU9kBVTDjhM+6U6/LClGJaWiglwwrzHtVELHgMi280qRefQEftb4CI/IbcPNAxetJevV68I5NAjfdnmMx8YbhfIiEqAJtBi4TvoH7HjDH+72+ZFjQ10fpz/p+DgUtiNlRKz8tXSZ+mbLuhmOJOxtGQTH3viYbSpG/4F9uKW1ekX0RMyRxVvpjMxHtCL4daJI4RTHFXy4R16OKAlYe7gs9sqv7O0IujLJPex/rnN2U4syGaSH5q3UnGxci6qgn8yLEhSP+Gj0xdv5H3fVjr/kNNZGWDOz6nDUaJT+eWlmWU7hOvm0ricrz9GEPUTQ0Rh70sWTQFq3poWQ== cardno:000606167509
46
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wRHQtq9uBzdiAYzpSNmF+nmIHmW+AOeBTDNmdva+CFGIBbB56q7w6GCOhfXs8edrPY4qOcQGaOD0ussIvHnqkVfw8e6CbxnpXKeAuIz7+1V72AhLPzOkif4yPrI6tSYF5nvzq6U4Yk1qFnXiLQjkA1s4EcZH6V0KbHMsu7Mtv3Irspdn8KUI3j2UwZcssFu1EuLHhLNussziRQK9tOg9ixb0U1WXuUJn7Noh9odTAsAt6jLFdr5eN/IINgC9WQqvY/W94Tc2/z5TWR7z382pEkMBR/3sf+nYKA82069tagkyrtJ/YXi00CWU4vjpnMvwPEYcmtCddfCPi8ZIUrn grahamc@Morbo
47
+EOF
48
+chmod 0600 /mnt/root/.ssh/authorized_keys
49
+
50
+nixos-install