add README.md
This commit is contained in:
123
README.md
Normal file
123
README.md
Normal file
@@ -0,0 +1,123 @@
|
||||
## usage
|
||||
|
||||
### install
|
||||
|
||||
note: I have not tested the following verbatim.
|
||||
|
||||
It *will* erase the contents of /dev/sdX. Use with caution.
|
||||
|
||||
1. create usb with minimal NixOS iso
|
||||
|
||||
2. boot from usb
|
||||
|
||||
3. create partitions
|
||||
|
||||
```console
|
||||
$ #modern partition table
|
||||
$ #WARNING all data on /dev/sdX will be erased. Make sure it is your target
|
||||
$ parted /dev/sdX -- mklabel gpt
|
||||
$ #make root partition
|
||||
$ parted /dev/sdX -- mkpart ESP fat32 1MiB 512MiB
|
||||
$ parted /dev/sdX -- set 1 esp on
|
||||
$ #create store partition
|
||||
$ parted /dev/sdX -- mkpart nix btrfs 512MiB 100GiB
|
||||
$ #if your device is in english, use a period rather than a comma
|
||||
$ parted /dev/sdX -- mkpart root btrfs 100GiB 199,5GiB
|
||||
```
|
||||
|
||||
4. create filesystems
|
||||
|
||||
```console
|
||||
$ #make sure not to get your subvolumes mixed up
|
||||
$ #there should be 3, the first boot and the others 99,5GiB each
|
||||
$ fdisk -l
|
||||
$ #boot partition
|
||||
$ mkfs.fat -F 32 /dev/sdX1
|
||||
$ #store partition
|
||||
$ mkfs.btrfs /dev/sdX2
|
||||
$ #root partition
|
||||
$ mkfs.btrfs /dev/sdX3
|
||||
$ #create root subvolume
|
||||
$ btrfs subvolume create /dev/sdX3/root
|
||||
```
|
||||
|
||||
5. mount filesystems
|
||||
|
||||
```console
|
||||
$ #note the uuid of your disks
|
||||
$ #they will be symlinked to something recognisable
|
||||
$ #don't get them mixed up
|
||||
$ ls -l /dev/disk/by-uuid
|
||||
total 0
|
||||
lrwxrwxrwx 1 root root 15 Dez 30 11:31 0e586651-36f4-42b0-99b3-3f0704a894d6 -> ../../sdX2
|
||||
lrwxrwxrwx 1 root root 15 Dez 30 11:31 16c93673-4f0e-4010-a7f4-7ccffb20edb7 -> ../../sdX3
|
||||
lrwxrwxrwx 1 root root 15 Dez 30 11:31 F425-55BA -> ../../sdX1
|
||||
$ #now mount the appropriate filesystems using your uuids; these are mine
|
||||
$ mount -o subvol-root /dev/disk/by-uuid/16c93673-4f0e-4010-a7f4-7ccffb20edb7 /mnt
|
||||
$ mkdir -p /mnt/{boot,nix}
|
||||
$ mount -o umask=077 /dev/disk/by-uuid/F425-55BA /mnt/boot
|
||||
$ mount /dev/disk/by-uuid/0e586651-36f4-42b0-99b3-3f0704a894d6 /mnt/nix
|
||||
```
|
||||
|
||||
6. prepare for installation
|
||||
|
||||
```console
|
||||
$ mkdir -p /mnt/etc/nixos
|
||||
$ nixos-generate-config --root /mnt
|
||||
$ cat /mnt/etc/nixos/hardware-configuration.nix
|
||||
$ #note the random flags and stuff in hardware-configuration.nix; you might
|
||||
$ #want to keep a copy around for the time being
|
||||
$ rm /mnt/etc/nixos/*
|
||||
$ #connect to the internet
|
||||
$ nmtui
|
||||
$ git clone https://git.mtgmonkey.net/andromeda/conf /mnt/etc/nixos
|
||||
$ cd /mnt/etc/nixos
|
||||
$ nix-shell -p tree --command tree
|
||||
.
|
||||
├── configuration.nix
|
||||
├── flake.lock
|
||||
├── flake.nix
|
||||
├── machines
|
||||
│ └── laptop
|
||||
│ ├── hardware-configuration.nix
|
||||
│ └── machine.nix
|
||||
├── README.md
|
||||
└── users
|
||||
└── andromeda
|
||||
├── home.nix
|
||||
└── stylix.nix
|
||||
|
||||
5 directories, 8 files
|
||||
$ #copy the `laptop` derivation and change all occurences of `laptop` with
|
||||
$ #`your-machine` in `flake.nix`
|
||||
$ cp machines/laptop machines/your-machine -r
|
||||
$ #modify `machines/your-machine/hardware-configuration.nix` by changing the
|
||||
$ #uuids to those of your drives
|
||||
$ #also copy the flags and stuff from `hardware-configuration.nix` generated
|
||||
$ #earlier
|
||||
$ #change the hostname in `machines/your-machine/machine.nix` to your liking.
|
||||
$ #If you want to pull request to my repo, `hostname` *must* be "your-machine"
|
||||
$ #if you want a different user, edit `machines/your-machine/machine.nix` to
|
||||
$ #reflect that. Create the file `users/your-user/home.nix` with your home
|
||||
$ #manager configuration. Add your user's `impermanence` information in
|
||||
$ #`configuration.nix`
|
||||
$ #make sure to give your user an initalPassword, otherwise you won't be able
|
||||
$ #to log in! Later, use a secrets scheme to have a real password
|
||||
$ git add -A
|
||||
```
|
||||
|
||||
7. install
|
||||
|
||||
```console
|
||||
$ cd /mnt/etc/nixos
|
||||
$ nix flake check
|
||||
$ #resolve any errors. You may have forgotten to add things to git, users,
|
||||
$ #machines...
|
||||
$ nixos-install --no-root-password --flake .#your-machine
|
||||
```
|
||||
|
||||
8. reboot
|
||||
|
||||
```console
|
||||
$ systemctl reboot
|
||||
```
|
||||
Reference in New Issue
Block a user