aboutsummaryrefslogtreecommitdiff
path: root/nixos/os-installation.sh
blob: 36342cbaa2ae56ac1d72a520e6cd8eebb25f8773 (plain) (blame)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Use GUI: it handles Wifi better!

# Check the devices and it's partitions:
lsblk # to check the device names and sizes

# If under /dev/sdc and mounted:
sudo umount /dev/sdc1

# Put the OS image on the USB stick:
sudo dd if=nixos.iso of=/dev/sdc #


# Derived from https://www.maketecheasier.com/nixos-review/

# First, get an internet connection, either by using an ethernet cable or using =wpa_supplicant=:
# https://wiki.archlinux.org/index.php/WPA_supplicant
wpa_supplicant -B -i wlp2s0 -c <(wpa_passphrase SSID PASSPHRASE)

# Change keyboard to pt_BR layout:
loadkeys br-abnt2

# Format disk:
gdisk /dev/nvme0n1 # disk found using lsblk

# START Steps within gdisk

d # first, delete all partitions with `d`
o # create a new GUID partition table (GPT)

## Create the BIOS boot partition
n # create new partition
1 # partition number
ENTER # use default first sector
+1M # partition size of 1MB
EF02 # set partition type to "BIOS boot partition"

## Create the EFI System Partition
n # create new partition
2 # partition number
ENTER # use default first sector
+500M # partition size of 500MB
EF00 # set partition type to "EFI System"

## Create the Linux LVM (where LUKS goes)
n # create new partition
3 # partition number
ENTER # use default first sector
ENTER # partition size is the remaining of the disk
EF00 # set partition type to "EFI System"
8E00 # set partition type to "Linux LVM"

w
# END Steps within gdisk

cryptsetup luksFormat /dev/nvme0n1p3 # Initialize the encrypted partition
cryptsetup luksOpen /dev/nvme0n1p3 enc-pv # Open encrypted partition volume

pvcreate /dev/mapper/enc-pv
vgcreate vg /dev/mapper/enc-pv
lvcreate -n swap vg -L 10G
lvcreate -n root vg -l 100%FREE

mkfs.vfat -n BOOT /dev/nvme0n1p2
mkfs.ext4 -L root /dev/vg/root
mkswap -L swap /dev/vg/swap

mount /dev/vg/root /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p2 /mnt/boot


mkswap -L swap /dev/sda1
swapon /dev/sda1
mkfs.ext4 -L nixos /dev/sda2
mount /dev/disk/by-label/nixos /mnt
nixos-generate-config --root /mnt

# START Edit NixOS configuration file
vi /mnt/etc/nixos/configuration.nix

# Uncomment:
boot.loader.grub.device = “/dev/sda”
enviroment.systemPackages = with pkgs; [
  wget
  vim
  firefox
  gitAndTools.gitFull
  gitAndTools.git-annex
  gitAndTools.gitRemoteGcrypt
  lsof
  gnupg
  gnupg1
]

# Add:
services = {
  xserver = {
    enable = true;
    desktopManager.gnome3.enable = true;
    displayManager.gdm.enable = true;
  };
};
# END

nixos-install

# OS will prompt for root UNIX password

reboot


C-M-<F1>
  useradd -m andreh
  passwd andreh
  # Setup UNIX password (for andreh)

  sudo vi /etc/sudoers
  # START Add the following line below the `root` line
    andreh      ALL=(ALL) ALL
  # END