OFFSET偏移
← 文章目录OFFSET / FIELD NOTESNO. 014

安装 NixOS:介质、分区与初始配置

按图形安装与手动安装两条路径理解安装前提和操作步骤。

所在专题NixOS 系统基础与配置 ↗
约 8 分钟阅读开始阅读

安装方式概述#

NixOS 提供多种安装方式:

  1. 图形界面安装(推荐新手)
  2. 最小化安装(推荐高级用户)
  3. 虚拟机安装(测试用途)
  4. 服务器远程安装(无显示器场景)

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=fsync

Windows

使用 Rufus 或 Ventoy。

3. 启动安装程序#

  1. 插入 U 盘,从 U 盘启动
  2. 选择 NixOS Installer 进入 Live 环境
  3. 等待系统加载完成

4. 图形安装(推荐新手)#

这是最简单的安装方式:

  1. 启动后选择 Install NixOS
  2. 选择语言(中文支持良好)
  3. 按照向导完成:
    • 分区设置
    • 用户创建
    • 系统配置

分区建议

分区 大小 文件系统 挂载点
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/boot

5.2 生成初始配置

# 生成配置
sudo nixos-generate-config --root /mnt

# 查看生成的配置
ls /mnt/etc/nixos/
# 应该包含:configuration.nix 和 hardware-configuration.nix

5.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-install

nixos-install 通常会要求设置目标系统的 root 密码(除非禁用该步骤)。Live 环境里的普通 passwd 会修改 Live 环境而不是已安装系统。需要设置目标用户密码时,挂载后进入目标系统:

sudo nixos-enter --root /mnt
passwd alice
exit

5.5 重启

sudo reboot

6. 常见问题#

网卡名称、网络工具和驱动依安装介质而定;示例中的 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 --upgrade

2. 安装常用软件

编辑 /etc/nixos/configuration.nix:

environment.systemPackages = with pkgs; [
  vim
  git
  firefox
  htop
  wget
  curl
];

然后重建:

sudo nixos-rebuild switch

3. 启用 Flakes(推荐)

nix.settings.experimental-features = [ "nix-command" "flakes" ];

参考资源#



参考与延伸

  1. NixOS 手册 ↗
  2. Nix 语言手册 ↗

根据技术笔记重新整理,示例使用通用名称。

沿专题继续阅读

NixOS 系统基础与配置

  1. 01NixOS:声明式系统的基础
  2. 02安装 NixOS:介质、分区与初始配置
  3. 03NixOS 配置基础:选项与模块
  4. 04用 Flake 与 Home Manager 管理系统
  5. 05NixOS 命令行:新旧接口与日常维护
  6. 06NixOS 世代管理与垃圾回收
  7. 07Specialisation:一个世代的多个配置变体
  8. 08配置可重现,应用为什么还会“失忆”?
CONTINUE READING / 下一篇NixOS 配置基础:选项与模块

从引导、网络、用户、软件包到服务组织一份系统配置。