使用nixos-anywhere在裸机上安装NixOS系统

使用nixos-anywhere在裸机上安装NixOS系统

nixos-anywhere install nixos everywhere via ssh [maintainer=@numtide] nixos-anywhere 项目地址: https://gitcode.com/gh_mirrors/ni/nixos-anywhere

前言

在没有任何操作系统的裸机上部署NixOS系统,传统方式需要手动完成许多步骤。nixos-anywhere工具提供了一种自动化解决方案,可以远程完成整个安装过程。本文将详细介绍如何利用nixos-anywhere在裸机上进行NixOS系统安装。

准备工作

启动NixOS安装环境

在目标机器上,首先需要通过以下方式之一启动NixOS安装环境:

  1. USB启动:制作NixOS安装U盘并引导系统
  2. 网络启动(Netboot):通过网络引导NixOS安装程序

建议使用最新版本的NixOS安装镜像(23.05或更高版本),因为这些版本包含了nixos-anywhere所需的特定标识符。

配置SSH访问

NixOS安装环境默认会启动SSH服务,但需要设置密码才能访问:

  1. 在NixOS安装环境的终端中执行:
passwd

为nixos用户设置密码。

  1. 获取安装环境的IP地址:
ip addr

在输出中查找类似inet 192.168.x.x的IPv4地址或inet6开头的IPv6地址。

  1. 测试SSH连接:
ssh -v nixos@<IP地址>

nixos-anywhere的特殊处理机制

当nixos-anywhere检测到目标系统是NixOS安装环境时(通过检查/etc/os-release中的VARIANT_ID=installer标识),它会自动采取特殊处理:

  1. 不会尝试执行kexec加载新内核
  2. 直接使用现有安装环境进行系统部署

这种机制特别适合以下场景:

  • 内存不足无法执行kexec的机器
  • 硬件不支持kexec功能的设备

执行系统安装

准备好Flake配置文件后,执行以下命令进行安装:

nix run nixos-anywhere -- --flake '.#myconfig' --target-host nixos@<IP地址>

参数说明:

  • myconfig:Flake中定义的配置名称
  • nixos@<IP地址>:目标机器的SSH连接信息

注意事项

  1. 确保网络连接稳定,安装过程中断可能导致系统损坏
  2. 对于IPv6地址,建议使用带有作用域标识的格式(如fe80::1%eth0
  3. 安装完成后,建议立即修改root密码并配置SSH密钥认证

常见问题解决

Q:无法连接到SSH服务怎么办? A:检查防火墙设置,确保22端口开放;确认密码输入正确;尝试使用IPv4地址连接。

Q:安装过程卡住不动怎么办? A:检查网络连接;增加SSH连接的详细输出(添加-vvv参数);确认目标机器资源是否充足。

通过以上步骤,您可以在没有任何操作系统的裸机上快速、自动化地部署NixOS系统。nixos-anywhere工具大大简化了安装流程,使系统部署变得更加高效和可靠。

nixos-anywhere install nixos everywhere via ssh [maintainer=@numtide] nixos-anywhere 项目地址: https://gitcode.com/gh_mirrors/ni/nixos-anywhere

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贡沫苏Truman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值