0

0

NixOS怎么安装 声明式Linux发行版NixOS安装配置

幻夢星雲

幻夢星雲

发布时间:2025-12-21 19:54:55

|

571人浏览过

|

来源于php中文网

原创

NixOS可通过声明式配置实现可复现的系统管理。首先下载ISO并制作启动U盘,进入Live环境后配置网络;接着进行GPT分区并格式化挂载,运行nixos-generate-config生成基础配置文件;在configuration.nix中设置主机名、服务和桌面环境后,执行nixos-install完成安装;重启进入系统后可进一步启用Flakes、添加系统包并使用nixos-rebuild switch应用更改,实现全流程声明式控制。

nixos怎么安装 声明式linux发行版nixos安装配置

如果您希望搭建一个基于声明式配置的 Linux 系统,NixOS 提供了一种可复现、易于管理的系统配置方式。通过定义 Nix 配置文件,您可以完全控制系统的软件包、服务和内核参数。以下是安装与配置 NixOS 的详细流程。

本文运行环境:联想 ThinkPad X1 Carbon,Ubuntu 24.04

一、准备安装介质

制作可启动的 NixOS 安装 U 盘是开始安装的前提。您需要下载官方 ISO 镜像并将其写入 U 盘。

1、访问 https://channels.nixos.org/ 下载最新的稳定版 ISO 镜像文件。

2、使用工具Balena Etcher 或命令行工具 `dd` 将镜像写入 U 盘,例如执行:sudo dd if=nixos.iso of=/dev/sdX bs=4M status=progress

3、插入 U 盘后重启计算机,进入 BIOS 设置从 U 盘启动。

二、进入 Live 环境并连接网络

NixOS 安装依赖网络连接以下载必要的包。确保系统在 Live 环境中能正常访问互联网。

1、从 U 盘启动后,选择 “Install NixOS” 进入 Live 系统。

2、若使用有线网络,通常会自动获取 IP 地址;若使用 Wi-Fi,需手动连接:

执行:sudo wpa_passphrase "SSID" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf

然后启动服务:sudo systemctl start wpa_supplicant

3、验证连接:ping -c 3 nixos.org

三、磁盘分区与文件系统创建

合理的磁盘布局是系统稳定运行的基础。本方案采用标准的 EFI 引导 + 根分区结构。

1、查看可用磁盘:lsblk,确认目标设备如 /dev/nvme0n1

2、使用 parted 对磁盘进行 GPT 分区:

sudo parted /dev/nvme0n1 -- mklabel gpt

sudo parted /dev/nvme0n1 -- mkpart primary 512MiB -8GiB

sudo parted /dev/nvme0n1 -- mkpart primary linux-swap -8GiB 100%

sudo parted /dev/nvme0n1 -- mkpart ESP fat32 1MiB 512MiB

sudo parted /dev/nvme0n1 -- set 3 esp on

3、格式化分区:

sudo mkfs.ext4 -L nixos /dev/nvme0n1p1

sudo mkswap -L swap /dev/nvme0n1p2

sudo mkfs.fat -F 32 -n boot /dev/nvme0n1p3

4、挂载文件系统:

sudo mount /dev/disk/by-label/nixos /mnt

sudo mkdir -p /mnt/boot

Bing图像创建器
Bing图像创建器

必应出品基于DALL·E的AI绘图工具

下载

sudo mount /dev/disk/by-label/boot /mnt/boot

sudo swapon /dev/disk/by-label/swap

四、生成基础系统配置

NixOS 的核心在于 `/etc/nixos/configuration.nix` 文件。该文件定义了整个系统的状态。

1、使用 nixos-generate-config 命令自动生成模板:

sudo nixos-generate-config --root /mnt

2、编辑生成的配置文件:

nano /mnt/etc/nixos/configuration.nix

3、修改关键字段,例如启用 SSH、设置时区、包含图形界面等:

添加:services.openssh.enable = true;

设置主机名:networking.hostName = "my-nixos";

启用 GNOME 桌面:services.xserver.enable = true; services.xserver.displayManager.gdm.enable = true; services.desktopManager.gnome.enable = true;

五、安装主系统

在配置完成后,使用 nixos-install 命令将系统安装到目标分区。

1、执行安装命令:

sudo nixos-install --root /mnt

2、安装过程中会提示设置 root 密码,输入并确认。

3、若要为普通用户安装,可在配置中添加用户模块,并在安装后使用 --no-root-passwd 参数避免强制设 root 密码。

4、安装成功后,重启系统:sudo reboot,并移除 U 盘。

六、首次启动后的配置优化

系统安装完成后,可通过修改 configuration.nix 实现更精细的控制。

1、登录系统后切换至 root 用户:su -

2、编辑主配置文件:nano /etc/nixos/configuration.nix

3、启用 Flakes 支持(可选):

nix.settings.experimental-features 中添加 flakesnix-command

4、使用 declarative 方式管理用户环境:

在配置中定义 environment.systemPackages 添加常用工具如 vim、gitcurl

5、应用更改:nixos-rebuild switch,系统将根据新配置重建环境。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

744

2023.08.22

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

531

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

412

2024.03.13

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

426

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

175

2023.10.30

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

639

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

526

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

264

2023.07.24

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

41

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号