mirror of
https://github.com/nix-community/nixos-anywhere.git
synced 2024-09-11 08:35:24 +03:00
Fixed links and formatting
This commit is contained in:
parent
38741a1406
commit
c6cb9660fa
@ -6,7 +6,7 @@
|
||||
|
||||
## Inroduction
|
||||
|
||||
This guide documents a simple installation of NixOS using **nixos-anywhere** on a target machine running x86_64 Linux with [kexec](https://man7.org/linux/man-pages/man8/kexec.8.html) support. The example used in this guide installs NixOS on a Hetzner cloud machine. The configuration may be different for some other instances. We will be including further examples in the [How To Guide](./docs/howtos.md) as and when they are available.
|
||||
This guide documents a simple installation of NixOS using **nixos-anywhere** on a target machine running x86_64 Linux with [kexec](https://man7.org/linux/man-pages/man8/kexec.8.html) support. The example used in this guide installs NixOS on a Hetzner cloud machine. The configuration may be different for some other instances. We will be including further examples in the [How To Guide](./howtos.md) as and when they are available.
|
||||
|
||||
You will need:
|
||||
|
||||
@ -38,7 +38,7 @@ Lines 29 in the sample file reads:
|
||||
|
||||
Substitute the text that reads ``CHANGE`` with your own SSH key. This is important, otherwise you will not be able to log on to the target machine after NixOS has been installed.
|
||||
|
||||
3. In the same directory, create a file named `disk-config.nix`. This will be used to specify the disk layout to the disko tool, which nixos-anywhere uses to partition, format and mount the disks. Again, for a simple installation you can paste the contents from the example [here](https://github.com/numtide/nixos-anywhere-examples/blob/main/disk-config.nix). This configures a standard GPT (GUID Partition Table) partition compatible with both EFI and BIOS systems, and mounts the disk as `/dev/sda`. If this doesn’t meet your requirements, choose an example that suits your disk layout from the [disko examples](https://github.com/nix-community/disko/tree/master/example). For more information about this configuration, refer to the [disko documentation.](https://github.com/nix-community/disko)
|
||||
3. In the same directory, create a file named `disk-config.nix`. This will be used to specify the disk layout to the **disko** tool, which nixos-anywhere uses to partition, format and mount the disks. Again, for a simple installation you can paste the contents from the example [here](https://github.com/numtide/nixos-anywhere-examples/blob/main/disk-config.nix). This configures a standard GPT (GUID Partition Table) partition compatible with both EFI and BIOS systems, and mounts the disk as `/dev/sda`. If this doesn’t meet your requirements, choose an example that suits your disk layout from the [disko examples](https://github.com/nix-community/disko/tree/master/example). For more information about this configuration, refer to the [disko documentation.](https://github.com/nix-community/disko)
|
||||
|
||||
4. Run the following command to create the `flake.lock` file:
|
||||
|
||||
@ -48,21 +48,21 @@ nix flake lock
|
||||
|
||||
Optionally, you can commit these files to a repo such as Github, or you can simply reference your local directory when you run **nixos-anywhere**. This example uses a local directory on the source machine.
|
||||
|
||||
5. On the target machine, make sure you have access as root via ssh by adding your SSH key to the file authorized_keys in the directory `/root/.ssh`
|
||||
5. On the target machine, make sure you have access as root via ssh by adding your SSH key to the file `authorized_keys` in the directory `/root/.ssh`
|
||||
|
||||
6. You can now run the nixos-anywhere command from the command line as shown below, where:
|
||||
6. You can now run **nixos-anywhere** from the command line as shown below, where:
|
||||
|
||||
- <path to configuration> is the path to the directory or repository containing `flake.nix` and `disk-config.nix`
|
||||
- `<path to configuration>` is the path to the directory or repository containing `flake.nix` and `disk-config.nix`
|
||||
|
||||
- <configuration name> must match the name that immediately follows the text "nixosConfigurations." in the flake, as indicated by the comment in the [example](http://./flake.nix.md).
|
||||
- `<configuration name>` must match the name that immediately follows the text `nixosConfigurations.` in the flake, as indicated by the comment in the [example](https://github.com/numtide/nixos-anywhere-examples/blob/main/flake.nix)).
|
||||
|
||||
- <ip address> is the IP address of the target machine
|
||||
- `<ip address>` is the IP address of the target machine.
|
||||
|
||||
```
|
||||
nix run github:numtide/nixos-anywhere -- --flake <path to configuration>#<configuration name> root@<ip address>
|
||||
```
|
||||
|
||||
The command would look like this if you had created your files in a directory named `/home/mydir/test` and the IP address of your target machine is 37.27.18.135:
|
||||
The command would look like this if you had created your files in a directory named `/home/mydir/test` and the IP address of your target machine is `37.27.18.135`:
|
||||
|
||||
```
|
||||
nix run github:numtide/nixos-anywhere -- --flake /home/mydir/test#hetzner-cloud root@37.27.18.135
|
||||
@ -99,12 +99,12 @@ Host key verification failed.
|
||||
|
||||
This is because the `known_hosts` file in the `.ssh` directory now contains a mismatch, since the server has been overwritten. To solve this, use a text editor to remove the old entry from the `known_hosts` file. The next connection attempt will then treat this as a new server.
|
||||
|
||||
The error message line `Offending ECDSA key in ~/.ssh/known_hosts:` gives the line number that needs to be removed from the known_hosts file.
|
||||
The error message line `Offending ECDSA key in ~/.ssh/known_hosts:` gives the line number that needs to be removed from the `known_hosts` file.
|
||||
|
||||
**Note:** If you subsequently make any changes to either the `flake.nix` or `disk-config.nix` files, you will need to run the following command in the directory containing the flake to update `flake.lock` before rerunning **nixos-anywhere**:
|
||||
**Note:** If you subsequently make any changes to either the `flake.nix` or `disk-config.nix` file, you will need to run the following command in the directory containing the flake to update `flake.lock` before rerunning **nixos-anywhere**:
|
||||
|
||||
```
|
||||
nix flake update
|
||||
```
|
||||
|
||||
For more information on different use cases of **nixos-anywhere** please refer to the [How to Guide](http://./docs/howtos.md), and for more technical information and explanation of known error messages, refer to the [Reference Manual](http://./docs/reference.md).
|
||||
For more information on different use cases of **nixos-anywhere** please refer to the [How to Guide](./howtos.md), and for more technical information and explanation of known error messages, refer to the [Reference Manual](./reference.md).
|
||||
|
Loading…
Reference in New Issue
Block a user