
包管理器操作系统【免费下载链接】nixpkgsNix Packages collection NixOS项目地址https://gitcode.com/GitHub_Trending/ni/nixpkgs点击查看免费下载导读本文基于 nixpkgs 仓库中 obtaining.chapter.md 的核心内容系统讲解如何获取 NixOS 安装介质、将其制作成可引导的 USB/CD并通过 OVF 虚拟设备、EC2 AMI、NixOps、VirtualBox 等多种途径快速获得一个可运行的 NixOS 系统。读完后你将掌握 ISO 镜像在 Windows/Linux/macOS 三种平台上的写入方法、VirtualBox 客户机安装的关键配置并能进一步了解 PXE 网络引导与 kexec 无介质启动等进阶途径的仓库源码实现。1. NixOS 安装介质获取总览NixOS 官方将编译好的 ISO 镜像发布在 NixOS 下载页面https://nixos.org/download.html#nixos-iso这是大多数用户开始安装的第一步。从仓库的构建配置看安装介质本质上是由 NixOS 的声明式配置“编译”出来的可引导产物。nixos/release.nix 中定义了完整的安装镜像构建目标与本节内容对应的关键产物包括iso_minimal/iso_graphical常规 ISO 镜像构建入口在 installation-cd-minimal-combined.nix 等配置netbootPXE 网络引导产物输出bzImage、initrd与netboot.ipxekexec用于在已运行的其他 Linux 发行版中“跳转”进入 NixOS 的产物。其中 minimal 版与 graphical 版的差异可见于 installation-cd-minimal.nix它导入profiles/minimal.nix与installation-cd-base.nix通过isoImage.edition minimal标记版本并且只保留命令行环境而 graphical 版如 installation-cd-graphical-base.nix会额外携带 Calamares 图形安装器与桌面环境。1.1 两种镜像类型的选型镜像类型引导方式适用场景minimal最小化引导到命令行熟悉 NixOS、愿意手动分区与配置的用户graphical图形化引导到桌面 Calamares 图形安装器桌面用户、新手安装流程有图形向导1.2 关于“非常老的系统”原文档特别提醒如果机器非常老、无法从 USB 启动可以将镜像烧录到空白 CD 上引导但 NixOS 在这种硬件上可能运行不佳。这一提示与仓库中仍保留的 CD/DVD 构建逻辑相印证见 cd-dvd 目录属于对旧硬件的兼容性说明实际装机时仍建议优先使用 UEFI/USB 方案。2. 制作可引导的 USB 启动盘ISO 镜像必须**逐字节verbatim**写入 USB 设备才能同时在 UEFI 与 BIOS 两种固件上引导普通“复制粘贴”ISO 文件的方式无法启动。完整操作步骤见 installing-usb.section.md。2.1 图形化工具Etcher 与 USBImagerEtcherhttps://www.balena.io/etcher/是跨平台Linux / Windows / macOS的流行图形化刷写工具下载并启动程序后选择已下载的 NixOS ISO、再选择目标 U 盘点击 Flash 即可。⚠️ 注意Etcher 默认会上报错误与使用统计信息可在设置中关闭。USBImagerhttps://bztsrc.gitlab.io/usbimager是另一款极简的离线工具下载带wowrite-only仅写入界面的版本启动后选择镜像、选择 U 盘点击 Write 即可。它不联网适合对隐私敏感的环境。2.2 Linux 终端写入dd 方法在 Linux 上推荐的写入流程如下插入 U 盘用lsblk按容量大小区分设备名避免写错磁盘确保设备上所有分区已卸载将sdX替换为实际设备如sdbsudo umount /dev/sdX*使用dd将镜像写入设备sudo dd bs4M convfsync oflagdirect statusprogress ifpath-to-image of/dev/sdX参数说明bs4M块大小设为 4 MiB提高写入吞吐convfsync写入完成后强制同步到物理设备确保数据落盘oflagdirect绕过页面缓存直接写设备避免内存缓冲导致写入未完成statusprogress显示实时写入进度if指向下载的 ISO 文件of指向整块设备/dev/sdX不是分区/dev/sdX1。2.3 macOS 终端写入dd 方法macOS 上的流程与之类似但设备命名与参数不同插入 U 盘后用diskutil list按容量区分设备卸载该磁盘将diskX替换为实际编号如disk1diskutil unmountDisk diskX写入镜像务必使用原始设备节点rdiskXsudo dd ifpath-to-image of/dev/rdiskX bs4m 使用rdiskXraw 设备而非diskX缓冲设备时dd可在几分钟内完成而不是几个小时。写入完成后 macOS 会弹出 “The disk you inserted was not readable by this computer” 对话框属正常现象直接忽略即可最后弹出磁盘diskutil eject /dev/diskX3. 无需自己安装的替代途径如果不想手动制作启动盘原文档给出了三条“开箱即用”的替代路径它们都围绕“获取一个正在运行的 NixOS 系统”展开3.1 VirtualBox OVF 虚拟设备NixOS 下载页面https://nixos.org/download.html#nixos-virtualbox提供 Open Virtualization FormatOVF格式的虚拟设备可直接导入 VirtualBox适合希望快速体验、不想触碰物理机分区的用户。3.2 Amazon EC2 AMINixOS 为亚马逊 EC2 提供预构建的 AMIAmazon Machine Image。由于 AMI 按区域region分发需要到下载页面https://nixos.org/download.html#nixos-amazon查询自己所在区域对应的 AMI ID 后使用。3.3 NixOps 声明式云部署NixOps 是 NixOS 官方的云部署工具https://nixos.org/nixops其核心思想是用声明式配置描述 VirtualBox 或 EC2 上的 NixOS 实例然后由工具自动完成创建、配置与部署。这意味着你可以像管理本地系统一样用一份 Nix 配置管理云端机器。这与 NixOS “声明式配置驱动一切”的理念一脉相承详见 configuration.nix 的声明式模型。4. VirtualBox 客户机安装实战在 VirtualBox 中安装 NixOS 是“不碰物理机”的推荐方式详细步骤见 installing-virtualbox-guest.section.md。4.1 虚拟机创建参数参数推荐值说明操作系统类型Linux / Other LinuxVirtualBox 不识别 NixOS 专用类型内存Base Memory768 MB 及以上安装过程与桌面运行的最低参考值硬盘10 GB 及以上系统与软件包所需空间光驱挂载 NixOS ISO在 CD/DVD-ROM 设置中挂载PAE/NXSettings → System → Processor 中开启提升内存寻址能力VT-x/AMD-VSettings → System → Acceleration 中开启硬件虚拟化加速必须开启否则无法启动显卡控制器Settings → Display → Screen 中选择VMSVGA保证图形显示正常按上述参数创建并保存后启动虚拟机即可像物理机一样进入安装流程。4.2 客户机 configuration.nix 必改项安装完成后需要修改/etc/nixos/configuration.nix对应仓库中的系统配置语法见 配置语法章节 相关说明才能正常引导① 指定 GRUB 安装设备VirtualBox 默认的 BIOS 引导方式需要{ boot.loader.grub.device /dev/sda; }② 关闭 initrd 阶段的日志文件系统检查——否则每次启动都会因 vboxsf 之类的原因检查失败卡在要求按*的提示上{ boot.initrd.checkJournalingFS false; }4.3 自动挂载 VirtualBox 共享文件夹先在 VirtualBox 的 Machine → Settings → Shared Folders 中添加共享目录可自定义名称与主机路径然后在configuration.nix中加入以下内容device填共享文件夹的名称{ config, pkgs, ... }: { fileSystems./virtualboxshare { fsType vboxsf; device nameofthesharedfolder; options [ rw nofail ]; }; }⚠️ 必须保留nofail选项否则共享目录不可用时系统将拒绝正常启动。挂载后该目录会直接出现在根目录/virtualboxshare下。5. 进阶PXE 网络引导与 kexec 无介质启动除 ISO/USB 之外仓库还提供了两种面向高级用户的引导方式它们与“获取安装介质”直接相关且构建目标就定义在 nixos/release.nix。5.1 用 nix-build 构建引导产物在本地 nixpkgs 中执行均基于当前仓库的 nixpkgs 版本nix-build -A kexec.x86_64-linux nixpkgs/nixos/release.nix nix-build -A netboot.x86_64-linux nixpkgs/nixos/release.nix其中kexec目标在 release.nix 中定义导入 netboot-minimal.nix 后取其config.system.build.kexecTreenetboot目标通过makeNetboot组装netbootRamdisk、内核与netbootIpxeScript见 release.nix。5.2 PXE/iPXE 网络引导netboot产物目录包含三个文件详见 installing-pxe.section.md文件作用bzImageLinux 内核initrdinitrd 初始内存盘netboot.ipxe示例 iPXE 脚本内含该镜像所需的内核命令行参数用法要点使用传统 PXE时自行配置引导器加载bzImage与initrd并提供与netboot.ipxe中一致的内核命令行参数使用iPXE时netboot.ipxe通常可直接使用若 HTTP/FTP 服务器目录结构与脚本不符则需按实际路径修改该方式要求你已具备一套可用的 PXE/iPXE 基础设施。5.3 kexec“跳转”进入 NixOS当服务器尤其是云厂商提供的 Debian/Ubuntu 实例无法引导自定义镜像时可用kexec从已运行的系统直接“跳进”NixOS 安装介质详见 installing-kexec.section.md。前提是目标机器已安装bash与kexec。构建产物目录包含bzImageLinux 内核initrdinitrd 文件kexec-boot调用kexec的 shell 脚本使用流程由于result内含符号链接应在目录内使用scp * root$destination复制不要用rsync在目标机器上执行kexec-boot数秒后机器将引导进入一个**临时ephemeral**的 NixOS 安装介质。如需定制 kexec 进入的系统闭包可自建configuration.nix并保证仍导入 netboot 模块{ modulesPath, ... }: { imports [ (modulesPath /installer/netboot/netboot-minimal.nix) ]; services.openssh.enable true; users.users.root.openssh.authorizedKeys.keys [ my-ssh-pubkey ]; }nix-build nixpkgs/nixos \ --arg configuration ./configuration.nix \ --attr config.system.build.kexecTree从 netboot-minimal.nix 的源码可以看到该模块实际上是一个“最小 netboot 环境”关闭 NetworkManager、禁用可再分发固件、保留 man 文档并导入 minimal.nix 配置档案因此定制时仍需基于netboot-minimal.nix或netboot-base.nix扩展。⚠️ 注意事项kexec 不会完全重新初始化硬件设备个别硬件上可能无法正常工作但实践中极少遇到。6. 获取介质后的下一步拿到可引导的安装介质后完整的安装路径是 安装章节从引导菜单进入图形化Calamares或手动安装流程完成分区UEFI/GPT 或 Legacy/MBR、格式化、nixos-generate-config生成配置、nixos-install安装直至重启。安装完成后如需更新系统可参考 升级章节若想在已运行的 Linux 基础上转换可参考 从其他发行版安装。结语获取 NixOS 安装介质并非只有“下载 ISO 写入 U 盘”一条路桌面用户可选择图形化 ISO 或 VirtualBox OVF 虚拟设备云端用户可直接使用 EC2 AMI运维工程师可用 NixOps 声明式托管实例高级用户则可借助 PXE 网络引导或 kexec 在无 USB 介质的情况下进入 NixOS。结合 nixos/release.nix 中iso_*、netboot、kexec等构建目标你甚至可以从当前 nixpkgs 自行构建任何一类安装产物真正做到“按需获取、按场景引导”。赞分享包管理器操作系统【免费下载链接】nixpkgsNix Packages collection NixOS项目地址https://gitcode.com/GitHub_Trending/ni/nixpkgs点击查看免费下载相关推荐NixOS 通过 kexec 无介质跳转引导安装指南从运行中的 Linux 直入 NixOSNixOS 通过 kexec 无介质跳转引导安装指南从运行中的 Linux 直入 NixOS 导读 本文介绍 NixOS 手册中的 kexec 引导方案包管理器操作系统NixOS 通过 PXE / iPXE 网络引导安装netboot 介质构建与部署实战NixOS 通过 PXE / iPXE 网络引导安装netboot 介质构建与部署实战 本文围绕 NixOS 官方手册中“从 netboot 介质引导PXE包管理器操作系统netboot.xyz完全指南从PXE引导到系统安装的完整流程netboot.xyz完全指南从PXE引导到系统安装的完整流程 netboot.xyz是一个革命性的开源网络启动菜单服务通过PXE引导技术让你能够在BIOS网络运维后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考