NixOS Installation Guide/zh: Difference between revisions
No edit summary Tags: Mobile edit Mobile web edit |
No edit summary |
||
Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
本指南是官方手册 [https://nixos.org/nixos/manual/index.html#ch-installation] 的配套指南。它描述了如何将 [[Special:MyLanguage/NixOS|NixOS]] 安装为完整的操作系统。有关在现有操作系统中安装 [[Special:MyLanguage/Nix|Nix]] 的说明,请参阅 [[Special:MyLanguage/Nix Installation Guide|Nix 安装指南]]。 | |||
除了涵盖官方手册中的步骤外,它还提供了针对常见用例的已知有效操作。当官方手册与本指南之间存在差异时,支持用例以手册中描述的为准。 | 除了涵盖官方手册中的步骤外,它还提供了针对常见用例的已知有效操作。当官方手册与本指南之间存在差异时,支持用例以手册中描述的为准。 | ||
Line 270: | Line 268: | ||
* 品牌服务器可能需要在 initrd 中包含额外的内核模块(在 configuration.nix 中配置 <code>boot.initrd.extraKernelModules</code>)。例如,HP Proliant 需要“hpsa”模块才能访问磁盘驱动器。 | * 品牌服务器可能需要在 initrd 中包含额外的内核模块(在 configuration.nix 中配置 <code>boot.initrd.extraKernelModules</code>)。例如,HP Proliant 需要“hpsa”模块才能访问磁盘驱动器。 | ||
[[Category:Guide]] | [[Category:Guide]] | ||
[[Category:Deployment]] | [[Category:Deployment]] | ||
[[Category:NixOS]] | [[Category:NixOS]] | ||
Latest revision as of 09:17, 8 October 2025
本指南是官方手册 [1] 的配套指南。它描述了如何将 NixOS 安装为完整的操作系统。有关在现有操作系统中安装 Nix 的说明,请参阅 Nix 安装指南。
除了涵盖官方手册中的步骤外,它还提供了针对常见用例的已知有效操作。当官方手册与本指南之间存在差异时,支持用例以手册中描述的为准。
安装目标
NixOS可以安装在越来越多种类的硬件上:
- 常规(Intel或AMD)台式机, 笔记本电脑, 或是物理可访问的服务器, 该页面包含了它们
- 单板计算机(如树莓派)和其他ARM开发板, 见 NixOS on ARM
- 云服务器和远程服务器, 见 NixOS friendly hosters
安装方式
NixOS, 如同绝大部分基于Linux的操作系统一样, 可以通过多种方式进行安装.
- 传统方式, 通过安装媒介启动.(会在下面讲述.)
- 通过已存在的Linux安装启动媒介
制作安装媒介
从NixOS 14.11开始, 安装程序ISO(镜像文件)是混合型的. 这意味着它通过CD和USB驱动器都可以启动. 它也可以在EFI系统上启动, 如大多数现代主板和苹果系统. 接下来的指导将假设使用复制镜像文件到USB驱动器的标准方式. 当使用CD或者DVD时, 刻录到光盘的通常方式应当也适用于该iso文件.
"刻录"到USB驱动器
首先, 下载一个NixOS ISO镜像 或者 创建一个自定义ISO文件. 接着插入一个空间大到足够容纳镜像的USB. 然后遵循平台的指令:
在Linux上
- 通过
lsblk
或fdisk -l
找到正确的设备. 在接下来的步骤中, 把/dev/sdX
替换为正确的设备. - 复制到设备:
cp nixos-xxx.iso /dev/sdX
也可通过 dd if=nixos.iso of=/dev/sdX bs=4M status=progress conv=fdatasync
写入硬盘镜像
在macOS上
- 使用
diskutil list
找到正确的设备, 比如说diskX
. - 使用
diskutil unmountDisk diskX
取消挂载. - 使用
sudo dd if=path_to_nixos.iso of=/dev/diskX
进行刻录
rdiskX
而不是diskX
可以大幅改变速度. 你可以在另一个终端里使用iostat 2
检查写入速度.
在Windows上
- 下载USBwriter.
- 启动USBwriter.
- 选择下载的ISO文件作为'Source'
- 选择USB驱动器作为'Target'
- 点击'Write'
- 当USBWriter完成写入操作后, 安全拔出USB驱动器
可选的安装媒介指导
之前的方式是制作USB安装媒介的受支持方式.
这些方式也同样有记录, 它们可以使用USB驱动器启动多个发行版. 这种方式不被支持, 结果可能因人而异.
启动(Boot)安装媒介
由于安装镜像为混合镜像,因此可在传统 BIOS 模式或 UEFI 模式下启动。
无论使用哪种方式启动安装媒介, 你可能需要修改主板或者电脑的配置, 以允许从光盘驱动器(对于CD/DVD)或者从一个外部的USB驱动器启动.
Legacy bios启动
这是在没有EFI/UEFI的机器上唯一的启动方式.
UEFI启动
安装媒介的EFI引导加载程序未经过签名, 也没有使用经过签名的shim来启动. 这意味着只有禁用了Secure Boot(安全启动)才能启动.
连接到网络
安装过程几乎肯定需要有效的网络连接. 无网络的安装是可行的, 但是可用的软件包集合是受限的.
有线网络
对于内核提供的网络接口, DHCP(动态主机配置协议)解析应当在shell可用之前就已经完成.
有线连接(网络共享)
如果你无法通过网线或者wifi连接到网络, 你可以使用智能手机的网络共享能力. 依赖于你的手机的能力, 只需要内核自带的驱动就可以提供有效的网络连接.
无线网络
NetworkManager 安装在图形化 ISO 镜像上,这意味着可以在命令行上使用 nmtui
命令连接到网络。
使用左上方的"Applications(应用)"标签页或者在底部的启动栏, 打开一个终端应用, 在那里启动 nmtui
. 这可以让你'activate(激活)'一个(无线)连接 - 你应该可以在列表里看到你那里的SSID(无线网络名称), 除此之外你还可以添加一个新的连接. 当无线连接处于活动状态, 并且你已经测试过了时, 一开始就启动的安装程序很可能还没有检测到新的连接. 关掉安装程序, 再重新从屏幕底部的启动栏打开它. 这时它应该会检测到新的网络连接而继续.
在最小化 ISO 镜像上,或者您更熟悉 wpa_supplicant,那么您也可以运行 wpa_passphrase ESSID | sudo tee /etc/wpa_supplicant.conf
命令,然后输入您的密码并执行 systemctl restart wpa_supplicant
命令。
Partitioning(分区操作)
要对持久存储进行分区,请运行 sudo fdisk /dev/diskX
并按照 MBR 或 (U)EFI 的说明进行操作。要确定您使用的启动模式,请运行:
$ [ -d /sys/firmware/efi/efivars ] && echo "UEFI" || echo "Legacy"
这里给出了一个非常简单的示例设置。
传统启动(Legacy Boot, MBR)
- o (dos硬盘标签)
- n new
- p primary (4 primary in total)
- 1 (分区编号[1/4])
- 2048 first sector (alignment for performance)
- +500M last sector (引导扇区的大小)
- rm signature (Y), if ex. => warning of overwriting existing system, could use wipefs
- n
- p
- 2
- default (填满分区)
- default (填满分区)
- w (写入)
UEFI
- g (gpt硬盘标签)
- n
- 1 (分区编号[1/128])
- 2048 first sector
- +500M last sector (引导扇区的大小)
- t
- 1 (EFI系统)
- n
- 2
- default (填满分区)
- default (填满分区)
- w (写入)
格式化分区
以下示例使用 ext4 文件系统格式。如果您希望使用其他文件系统格式,例如 Btrfs 或 ZFS:
这对于有多个分区设置的情况很有用, 使分区更容易处理
$ lsblk # lists current system block devices
# mkfs.fat -F 32 -n boot /dev/sdX1
# mkfs.ext4 /dev/sdX2 -L nixos
# mount /dev/disk/by-label/nixos /mnt
# mkdir -p /mnt/boot
# mount /dev/disk/by-label/boot /mnt/boot
NixOS 配置
NixOS 通过 声明式配置 文件进行配置。要生成默认配置文件,请运行 Special:MyLanguage/nixos-generate-config:
# nixos-generate-config --root /mnt
# nano /mnt/etc/nixos/configuration.nix
有关使用系统配置的信息,请参阅 NixOS 系统配置。有关特定于桌面的配置,请参阅 桌面设备上的 NixOS。
最重要的变化:
- 键盘布局(keyboard layout), 也就是
services.xserver.xkb.layout
- 网络 (wifi), 若出现问题, 请参阅下方的修复方法
- 安装 编辑器 来编辑配置
具有自我说明性的NixOS选项可以在NixOS选项搜索上搜索到.
交换文件
有关配置交换空间的更多方法,请参阅 Swap。以下示例演示了如何创建和启用一个 交换文件:
swapDevices = [{
device = "/var/lib/swapfile";
size = 16*1024; # 16 GB
}];
引导加载程序
NixOS 支持多种 引导加载程序,例如 GNU GRUB 和 Systemd/boot。
Systemd-boot 是推荐的引导加载程序。以下示例演示了如何在配置中启用 systemd-boot:
boot.loader.systemd-boot.enable = true;
您可能还希望配置 安全启动。
用户
有关创建和管理用户的信息,请参阅 用户管理 和 NixOS Manual: Chapter - Package Management。请参阅以下示例:
users.users.alice = {
isNormalUser = true;
initialPassword = "pw123";
};
安装 NixOS
# cd /mnt
# nixos-install
安装后:运行passwd
更改用户密码。
如果网络出现问题, 请尝试下面的一种方法:
# nixos-rebuild switch --option substitute false # no downloads
# nixos-rebuild switch --option binary-caches "" # no downloads
- 设置 wpa_supplicant 标志来连接到 wifi
有关特定硬件的附加说明
这些是有关特定硬件问题的收集到的说明或链接.
- 博客文章:如何在 Dell 9560 上安装 NixOS
- 品牌服务器可能需要在 initrd 中包含额外的内核模块(在 configuration.nix 中配置
boot.initrd.extraKernelModules
)。例如,HP Proliant 需要“hpsa”模块才能访问磁盘驱动器。