本文介绍如何安装 NixOS 的命令行版本(Minimal)。NixOS 是一个基于 Nix 包管理器的 Linux 发行版,具有声明式配置等独特特性。
使用的版本
本文使用的 NixOS 版本为 24.11。
安装前的准备
制作可启动的 NixOS U 盘
下载 ISO
前往 NixOS 官方网站 下载最新的 NixOS ISO,选择 Minimal 版本。也可以直接使用以下链接下载:
- NixOS 24.11 Minimal ISO for amd64
- SHA-256
制作启动 U 盘
推荐使用 Ventoy 制作启动 U 盘。Ventoy 支持多系统 ISO,可以将多个 ISO 文件直接拷贝到 U 盘。只需将下载并校验好的 NixOS ISO 拷贝到 Ventoy 制作的 U 盘即可。
安装过程
从 U 盘启动电脑,选择 NixOS 进入安装界面。
使用 SSH 远程连接
由于 nixos
和 root
用户默认密码均为空,建议先用 passwd
命令设置密码后再通过 SSH 连接。你可以在另一台电脑上通过 SSH 连接到 NixOS 安装界面。
1 2 3 4 5
| passwd
ssh nixos@<ip_address>
|
检查网络连接
使用 ping
命令检查网络是否畅通:
磁盘分区
使用 parted
命令进行磁盘分区。
分区前请备份数据,分区操作会清空磁盘上的所有数据。
假设安装 NixOS 的磁盘为 /dev/nvme0n1
,并希望根目录使用 btrfs
文件系统。可按如下命令分区:
1 2 3 4 5 6 7
| $ sudo parted /dev/nvme0n1
(parted) mklabel gpt (parted) mkpart "EFI system partition" fat32 1MiB 513MiB (parted) set 1 esp on (parted) mkpart "root partition" btrfs 513MiB 100% (parted) quit
|
分区完成后,格式化分区:
1 2 3 4 5
| sudo mkfs.fat -F 32 /dev/nvme0n1p1
sudo mkfs.btrfs /dev/nvme0n1p2
|
由于使用 btrfs
文件系统,需要创建子卷。例如创建 @
子卷:
1 2 3 4 5 6 7 8
| sudo mount /dev/nvme0n1p2 /mnt
sudo btrfs subvolume create /mnt/@
sudo umount /mnt
|
挂载分区
1 2 3 4 5 6 7 8
| sudo mount -o compress=zstd:1,subvol=@ /dev/nvme0n1p2 /mnt
sudo mkdir -p /mnt/boot
sudo mount -o umask=077 /dev/nvme0n1p1 /mnt/boot
|
生成并调整 NixOS 配置文件
使用 sudo nixos-generate-config --root /mnt
命令生成 NixOS 配置文件。
/mnt/etc/nixos/hardware-configuration.nix
:硬件配置文件,包含系统硬件信息。/mnt/etc/nixos/configuration.nix
:系统配置文件,包含基本系统设置。
修改 hardware-configuration.nix
在 /mnt/etc/nixos/hardware-configuration.nix
中添加如下内容:
修改如下:
1 2
| options = [ "subvol=@" "compress=zstd:1" "lazytime" ];
|
修改 configuration.nix
在 /mnt/etc/nixos/configuration.nix
中添加如下内容:
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
| networking.hostName = "<YOUR_HOSTNAME>"; networking.networkmanager.enable = true;
time.timeZone = "<YOUR_TIMEZONE>";
users.users.<YOUR_USERNAME> = { isNormalUser = true; extraGroups = [ "wheel" ]; packages = with pkgs; [ git vim ]; };
nix.settings.substituters = [ "https://mirrors.ustc.edu.cn/nix-channels/store" ];
environment.systemPackages = with pkgs; [ vim wget htop ];
services.openssh.enable = true;
system.copySystemConfiguration = true;
|
安装 NixOS
调整配置文件后,使用以下命令开始安装:
安装完成后,不要忘记为你的账户设置密码:
1
| nixos-enter --root /mnt -c 'passwd <YOUR_USERNAME>'
|
最后,重启进入新安装的 NixOS 系统:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| $ nix-shell -p fastfetch
$ fastfetch
▗▄▄▄ ▗▄▄▄▄ ▄▄▄▖ <YOUR_USERNAME>@<YOUR_HOSTNAME> ▜███▙ ▜███▙ ▟███▛ -------------- ▜███▙ ▜███▙▟███▛ OS: NixOS 24.11 (Vicuna) x86_64 ▜███▙ ▜██████▛ Host: <YOUR_DEVICE_NAME> ▟█████████████████▙ ▜████▛ ▟▙ Kernel: Linux 6.6.84 ▟███████████████████▙ ▜███▙ ▟██▙ Uptime: 12 hours, 34 mins ▄▄▄▄▖ ▜███▙ ▟███▛ Packages: 567 (nix-system) ▟███▛ ▜██▛ ▟███▛ Shell: bash 5.2.37 ▟███▛ ▜▛ ▟███▛ Terminal: /dev/pts/0 ▟███████████▛ ▟██████████▙ CPU: Intel(R) Core(TM) i3-9100T (4) @ 3.70 GHz ▜██████████▛ ▟███████████▛ GPU: Intel UHD Graphics 630 @ 1.10 GHz [集成] ▟███▛ ▟▙ ▟███▛ Memory: 409.95 MiB / 7.51 GiB (5%) ▟███▛ ▟██▙ ▟███▛ Swap: Disabled ▟███▛ ▜███▙ ▝▀▀▀▀ Disk (/): 2.41 GiB / 465.26 GiB (1%) - btrfs ▜██▛ ▜███▙ ▜██████████████████▛ Local IP (eno1): 192.168.0.2/24 ▜▛ ▟████▙ ▜████████████████▛ Locale: en_US.UTF-8 ▟██████▙ ▜███▙ ▟███▛▜███▙ ▜███▙ ▟███▛ ▜███▙ ▜███▙ ▝▀▀▀ ▀▀▀▀▘ ▀▀▀▘
|