安装方式概述#
NixOS 提供多种安装方式:
- 图形界面安装(推荐新手)
- 最小化安装(推荐高级用户)
- 虚拟机安装(测试用途)
- 服务器远程安装(无显示器场景)
1. 下载安装镜像#
访问 NixOS 下载页面:
| 版本类型 | 推荐场景 |
|---|---|
| GNOME ( graphical ) | 桌面用户 |
| Plasma Desktop | KDE 桌面用户 |
| Minimal (64-bit Intel/AMD) | 服务器/高级用户 |
2. 制作启动盘#
写入会覆盖目标设备。先核对容量、型号和挂载状态,并卸载目标 U 盘分区;/dev/sdX 是占位符,必须替换为 U 盘整盘,不能选择系统盘。
Linux(macOS 的磁盘标识和参数需按平台调整)
# 查找 U 盘设备名(如 /dev/sdb)
lsblk
# 写入镜像(替换 /dev/sdX 为你的设备)
sudo dd if=nixos-graphical.iso of=/dev/sdX bs=4M status=progress conv=fsyncWindows
3. 启动安装程序#
- 插入 U 盘,从 U 盘启动
- 选择 NixOS Installer 进入 Live 环境
- 等待系统加载完成
4. 图形安装(推荐新手)#
这是最简单的安装方式:
- 启动后选择 Install NixOS
- 选择语言(中文支持良好)
- 按照向导完成:
- 分区设置
- 用户创建
- 系统配置
分区建议
| 分区 | 大小 | 文件系统 | 挂载点 |
|---|---|---|---|
| EFI 分区 | 512MB | FAT32 | /boot(本例采用 systemd-boot) |
| 根分区 | 50GB+ | ext4/btrfs | / |
| 交换分区 | 按休眠需求及内存负载确定 | swap | - |
| 家目录 | 剩余空间 | ext4/btrfs | /home |
5. 命令行安装(高级)#
5.1 分区与格式化
以下仅为已备份、确认允许清空的测试磁盘示例。设备编号因机器而异,NVMe 名称也不同;不要直接复制到有数据的磁盘。UEFI 下创建 GPT、EFI System Partition 和根分区,确保格式化和挂载对象对应。
# 查看磁盘
lsblk
# 分区(以 /dev/sda 为例)
sudo fdisk /dev/sda
# 创建 EFI 分区 (512MB)
# 创建根分区
# 格式化
sudo mkfs.fat -F 32 /dev/sda1 # EFI
sudo mkfs.ext4 /dev/sda2 # 根分区
# 挂载
sudo mount /dev/sda2 /mnt
sudo mkdir -p /mnt/boot
sudo mount /dev/sda1 /mnt/boot5.2 生成初始配置
# 生成配置
sudo nixos-generate-config --root /mnt
# 查看生成的配置
ls /mnt/etc/nixos/
# 应该包含:configuration.nix 和 hardware-configuration.nix5.3 编辑配置
sudo nano /mnt/etc/nixos/configuration.nix关键配置项:
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
# 引导配置
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# 网络配置
networking.hostName = "workstation";
networking.networkmanager.enable = true;
# 时区和本地化
time.timeZone = "Asia/Shanghai";
i18n.defaultLocale = "zh_CN.UTF-8";
# 桌面环境(可选)
services.xserver.enable = true;
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
# 创建用户
users.users.alice = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
# 安装时交互设置密码;不要将明文密码写入公开配置。
};
# 允许普通用户使用 sudo
security.sudo.wheelNeedsPassword = true;
# 新安装使用生成配置中的值;后续升级不要跟着发行版随意改。
system.stateVersion = "26.05";
}5.4 执行安装
sudo nixos-installnixos-install 通常会要求设置目标系统的 root 密码(除非禁用该步骤)。Live 环境里的普通 passwd 会修改 Live 环境而不是已安装系统。需要设置目标用户密码时,挂载后进入目标系统:
sudo nixos-enter --root /mnt
passwd alice
exit5.5 重启
sudo reboot6. 常见问题#
网卡名称、网络工具和驱动依安装介质而定;示例中的 eth0 需替换,先确认接口和已运行的网络管理服务,避免同时启动多个 DHCP 客户端。
无法启动安装介质
- 检查 BIOS/UEFI 设置,确保启用了 UEFI 模式
- 关闭 Secure Boot
网络连接问题
# 查看网络接口
ip link
# 启用网络
sudo ip link set eth0 up
sudo dhcpcd磁盘识别问题
# 加载更多磁盘驱动
sudo modprobe nvme
sudo modprobe sd_mod如何修改配置后重新安装
# 挂载分区(如之前步骤)
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot
# 切换到已挂载的目标系统
sudo nixos-enter --root /mnt
# 修改配置
nano /etc/nixos/configuration.nix
# 重新构建
nixos-rebuild switch安装后的首次配置#
以下 switch 示例会激活系统;需要仅验证构建时使用 nixos-rebuild build。channels 使用 --upgrade 更新,Flake 配置先更新并审阅 flake.lock,再按锁文件重建。
1. 更新系统
sudo nixos-rebuild switch --upgrade2. 安装常用软件
编辑 /etc/nixos/configuration.nix:
environment.systemPackages = with pkgs; [
vim
git
firefox
htop
wget
curl
];然后重建:
sudo nixos-rebuild switch3. 启用 Flakes(推荐)
nix.settings.experimental-features = [ "nix-command" "flakes" ];参考资源#
参考与延伸
根据技术笔记重新整理,示例使用通用名称。