mirror of
https://github.com/nix-community/disko.git
synced 2024-09-11 06:25:33 +03:00
add documentation for disko-install
This commit is contained in:
parent
05f0e3fd56
commit
f61c7d28d5
@ -8,6 +8,7 @@
|
|||||||
- [Quickstart](./quickstart.md)
|
- [Quickstart](./quickstart.md)
|
||||||
- [System Requirements](./requirements.md)
|
- [System Requirements](./requirements.md)
|
||||||
- [How to Guide](./HowTo.md)
|
- [How to Guide](./HowTo.md)
|
||||||
|
- [Disko-Install](./disko-install.md)
|
||||||
- [Support Matrix](./supportmatrix.md)
|
- [Support Matrix](./supportmatrix.md)
|
||||||
- [Reference](./reference.md)
|
- [Reference](./reference.md)
|
||||||
- [Upgrade Guide](./upgrade-guide.md)
|
- [Upgrade Guide](./upgrade-guide.md)
|
||||||
|
113
docs/disko-install.md
Normal file
113
docs/disko-install.md
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
# Disko-install
|
||||||
|
|
||||||
|
Disko-install enhances the normal `nixos-install` with disko's partitioning feature.
|
||||||
|
It can be started from the NixOS installer but it can also be used to create bootable USB-Sticks from your normal workstation.
|
||||||
|
Furthermore `disko-install` has a mount mode that will only mount but not destroy existing partitions.
|
||||||
|
The mount mode can be used to mount and repair existing NixOS installations.
|
||||||
|
This document provides a comprehensive guide on how to use Disko-Install, including examples for typical usage scenarios.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- a Linux system with Nix installed.
|
||||||
|
- a target disk or partition for the NixOS installation.
|
||||||
|
- a Nix flake that defines your desired NixOS configuration.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Fresh Installation
|
||||||
|
|
||||||
|
For a fresh installation, where Disko-Install will handle partitioning and setting up the disk, use the following syntax:
|
||||||
|
|
||||||
|
```console
|
||||||
|
sudo nix run 'github:nix-community/disko#disko-install' -- --flake <flake-url>#<flake-attr> --disk <disk-name> <disk-device>
|
||||||
|
```
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
First run `nixos-generate-config --root /tmp/config --no-filesystems` and
|
||||||
|
edit `configuration.nix` to your liking.
|
||||||
|
|
||||||
|
Than add the following `flake.nix` inside `/tmp/config/etc/nixos`.
|
||||||
|
In this example we assume a system that has been booted with EFI:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
inputs.nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
|
inputs.disko.url = "github:nix-community/disko";
|
||||||
|
inputs.disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
outputs = { self, disko, nixpkgs }: {
|
||||||
|
nixosConfigurations.mymachine = nixpkgs.legacyPackages.x86_64-linux.nixos [
|
||||||
|
./configuration.nix
|
||||||
|
disko.nixosModules.disko
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
# When using disko-install, we will overwrite this value from the commandline
|
||||||
|
device = "/dev/disk/by-id/some-disk-id";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
MBR = {
|
||||||
|
type = "EF02"; # for grub MBR
|
||||||
|
size = "1M";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
type = "EF00";
|
||||||
|
size = "500M";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Identify the device name that you want to install NixOS to:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ lsblk
|
||||||
|
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
|
||||||
|
sda 8:0 1 14.9G 0 disk
|
||||||
|
└─sda1 8:1 1 14.9G 0 part
|
||||||
|
zd0 230:0 0 10G 0 disk
|
||||||
|
├─zd0p1 230:1 0 500M 0 part
|
||||||
|
└─zd0p2 230:2 0 9.5G 0 part /mnt
|
||||||
|
nvme0n1 259:0 0 1.8T 0 disk
|
||||||
|
├─nvme0n1p1 259:1 0 1G 0 part /boot
|
||||||
|
├─nvme0n1p2 259:2 0 16M 0 part
|
||||||
|
├─nvme0n1p3 259:3 0 250G 0 part
|
||||||
|
└─nvme0n1p4 259:4 0 1.6T 0 part
|
||||||
|
```
|
||||||
|
|
||||||
|
In our example, we want to install to a USB-stick (/dev/sda):
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ sudo nix run 'github:nix-community/disko#disko-install' -- --flake '/tmp/config/etc/nixos#mymachine' --disk main /dev/sda
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards you can test your USB-stick by either selecting during the boot
|
||||||
|
or attaching it to a qemu-vm:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo qemu-kvm -enable-kvm -hda /dev/sda
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user