安装NixOS
1. 获取NixOS
NixOS的ISO镜像文件可以从https://nixos.org/download.html#nixos-iso处下载,
考虑到国内互联网现状,也可从https://mirrors.tuna.tsinghua.edu.cn/nixos-images/下载,
请注意版本号的差别。制作USB启动盘的方式很常规(Tip:推荐使用Ventory),详细的不再赘述。
注意:务必保证自己已经理解自己下载的是什么玩意,不然可能无法进行下一步或者进行到某一步便前功尽弃。
请注意,[latest-nixos]表示你下载的是最新的NixOS版本,[gnome]和[plasma5]分别表示你的livecd默认带有Gnome桌面和KDE桌面的版本(这只决定你的livecd默认的桌面环境,和新的系统无关),而[minimal]则表示是最小化安装版本,livecd没有桌面环境。
对于32位(i686)计算机,NixOS在这里仅提供最小化安装版本,如果你的计算机支持64位的操作系统,那么请下载x86_64的版本。
后缀为sha256的文件为校验文件,可以检查下载下来的镜像文件是否完整,一般情况来说,没有必要理会它们。
如果你使用不支持从USB设备启动的古老机器,你可以尝试将ISO镜像文件烧录入一张空的CD里来替代USB设备,但是NixOS可能并不能在这种古老机器上正常工作。
2. 安装NixOS
2.1 从安装介质中启动
Step 1. 插入你的安装介质,打开或者重启你的计算机。
Step 2. 通过按某些按键来进入BIOS的启动菜单(BOOT MENU)(Tip:不同的主板默认的按键可能不同),选择刻录好的安装介质,如果你不知道你的哪个是你的安装介质,那就一个一个地试。(Tip:如果你的PC支持UEFI,那么选择UEFI是更好的选择,如果你不知道什么是UEFI或者机器比较古老,那么可以忽略这一括号内的话)
Step 3. 选完启动介质后来到安装器菜单界面,如果你不懂,可以什么都不做乖巧地等着读秒结束后自动进入,如果你比较心急,按一下回车键就可以直接进入。
Step 4. 此时如果你在下载镜像时选择了带有桌面环境的版本,当你选择图形化(graphical)的安装器时可能需要等待一段时间才可进入桌面,安装过程见2.2。最小化安装版本会直接进入命令行,你接下来的所有操作都要在命令行下完成,安装过程见2.3。
**2.2 图形化安装(自动)
Step 1. 在欢迎界面,可以选择安装器和将要安装的系统的语言。(为了方便,最好使用American English)
Step 2. 接下来,你应该选择你所在的地区以便正确设置你的时区,安装器会通过你的ip地址猜测你的位置,当然,你也可以点击地图选择地区。
Step 3. 接下来,你可以选择你的键盘布局,默认即可。
Step 4. 在用户界面,你必须设置一个普通用户的名和密,还有root用户的密码。
Step 5. 接下来,你可以选择一个你喜欢的桌面环境来做为新的系统的默认桌面环境,你有相当多的选择,或者你可以选择无桌面环境,值得一提的是,无论你选择了怎样的系统镜像,你都可以在这里重新决定你新系统的默认桌面环境。
Step 6. 接下来,你可以选择是否允许非自由的软件。
Step 7. 接下来是硬盘分区界面,谨慎操作,最简单的方法就是直接格式化整个硬盘当作NixOS的家,理所当然地你也可以手动分区,至少有一个根目录和ESP分区。(如果你是UEFI启动的话)如果你需要的话不要忘了swap分区,你也可以选择加密硬盘。
Step 8. 总结界面,在这可以检查一下你之前的选项是否有问题,没有问题,点击Install,nixos-install会为你做完一切。
Step 9. 安装结束后,重启并移除你的安装介质。
2.3 命令行安装(手动)
先切换到root用户,接下来的操作都在root下执行
1 | sudo su root |
2.3.1 连接网络
如果你需要连接WiFi,首先,打开wpa_supplicant服务,执行:
1 | systemctl start wpa_supplicant |
接下来,执行wpa_cli:
1 | wpa_cli |
接着,执行:
1 | add_network |
进入wpa_cli,其中myhomenetwork是你要连接的WiFi的SSID,mypassword是你要连接的WiFI的密钥,WPA-PSK是你要连接的WiFi的加密方式。
如果你成功连接,执行完如上的命令后你将得到类似下面的一条message:
1 | <3>CTRL-EVENT-CONNECTED - Connection to 32:85:ab:ef:24:5c completed [id=0 id_str=] |
这个时候你就可以通过quit命令来退出wpa_cli。
2.3.2 分区并格式化
我打算采用btrfs文件系统,btrfs 是用于 Linux 的现代写入复制 (CoW) 文件系统,旨在实现高级功能,同时还专注于容错、修复和易于管理。
注意: 以下示例适用于启用了 EFI 的系统。相应地调整 BIOS 安装的命令。
1 | printf "label: gpt\n,550M,U\n,+8G,S\n,,L\n" | sfdisk /dev/sda |
使用上面命令创建的分区结构:
/dev/sda1
: 550M 的 EFI 分区。/dev/sda2
: 8G 的Linux swap
分区。/dev/sda3
: 剩余空间的Linux filesystem
分区。
然后格式化并启用 swap
分区:
1 | mkswap /dev/sda2 |
最后,更新 /etc/fstab
文件以确保 swap
在重启时自动启用:
1 | echo '/dev/sda2 none swap sw 0 0' | sudo tee -a /etc/fstab |
在Nix 包管理器的系统中临时使用 btrfs-progs
软件包
1 | nix-shell -p btrfs-progs |
格式化分区并创建子卷
1 | mkfs.fat -F 32 /dev/sda1 #在指定的分区 `/dev/sda1` 上创建一个 FAT32 文件系统 |
挂载分区和子卷
1 | mount -o compress=zstd,subvol=@ /dev/sda3 /mnt #将 Btrfs 分区中的 `@` 子卷挂载到 `/mnt` 目录,并启用压缩。 |
安装NixOS
1 | nixos-generate-config --root /mnt |
重置root密码,添加新用户并设置密码
1 | nixos-enter # 进入部署好的系统,类似 arch 的 chroot |
nixos-install
有时候有毒,最后一步的设置密码不生效,所以才会有上面重置 root 密码这步。
然后重启(最好断掉虚拟机的光驱),就能看到安装好的系统了!!!
刷新grub
1 | sudo grub-mkconfig -o /boot/grub/grub.cfg |
如果以后你决定删除 NixOS 系统,你需要做几个步骤来确保系统干净地卸载,并恢复到之前的状态。以下是逐步指南:
1. 删除 NixOS 文件系统
首先,你需要删除 NixOS 的文件系统和挂载的分区。假设你的 NixOS 系统安装在 /dev/nvme0n1p7
(BTRFS 文件系统)上,并且你的 @
、@home
和 @nix
等子卷已经创建。你可以按照以下步骤删除这些分区和子卷:
1.1. 删除 NixOS 的 BTRFS 子卷
在你删除整个分区之前,首先需要卸载并删除所有的 BTRFS 子卷。你已经在安装过程中创建了几个子卷(例如:@
、@home
、@nix
),可以使用以下命令删除它们:
1 | # 删除 BTRFS 子卷 |
1.2. 卸载分区
确保分区不再挂载,如果你已经挂载了 NixOS 的分区(比如 /mnt
、/mnt/home
、/mnt/nix
),可以使用以下命令卸载它们:
1 | # 卸载挂载点 |
1.3. 删除 NixOS 分区
删除分区的步骤可以通过 parted 或 fdisk 工具来实现。使用 parted 删除 NixOS 分区(例如:/dev/nvme0n1p7
):
1 | # 使用 parted 删除分区 |
这会删除 /dev/nvme0n1p7
分区。如果你需要删除其他 NixOS 使用的分区,也可以按照类似方式删除。
2. 删除引导项
如果你使用的是 systemd-boot,需要删除与 NixOS 相关的启动项。你可以使用以下命令列出所有 systemd-boot 启动项:
1 | bootctl list |
然后删除 NixOS 的启动项。启动项配置文件通常位于 /boot/efi/loader/entries
目录下。你可以使用以下命令删除 NixOS 的引导配置文件:
1 | # 删除 NixOS 启动项 |
如果你使用的是 GRUB,你需要编辑 /etc/grub.d/
中的配置文件,删除与 NixOS 相关的条目,然后重新生成 GRUB 配置:
1 | # 删除 GRUB 配置中的 NixOS 条目 |
3. 清理 NixOS 配置文件
如果你不再使用 NixOS,你可以删除 NixOS 的配置文件(例如:/etc/nixos/configuration.nix
等)。这些文件可能包含你对 NixOS 的自定义配置。你可以删除 /etc/nixos
目录:
1 | # 删除 NixOS 配置文件 |
4. 恢复引导顺序
删除 NixOS 后,你可能需要更新 UEFI 或 BIOS 启动顺序,确保系统从其他操作系统(如 Windows 或 Arch Linux)启动。你可以通过进入 UEFI/BIOS 设置,在启动顺序中选择合适的引导项。
如果你删除了 systemd-boot 或 GRUB 引导配置,你可能需要重新配置它们。假设 GRUB 在其他操作系统中仍然可用,可以重新生成 GRUB 配置文件:
1 | sudo grub-mkconfig -o /boot/grub/grub.cfg |
5. 删除 swap 分区(如果需要)
如果你不再使用 swap 分区 /dev/nvme0n1p5
,可以通过以下步骤删除它:
1 | # 使用 parted 删除 swap 分区 |
6. 清理多余的文件
如果你不再需要 NixOS 安装的任何文件或配置,最后可以清理掉其他不再需要的文件,包括下载的镜像和相关的日志文件。
总结:
- 删除 NixOS 分区:卸载并删除 BTRFS 子卷和相关分区。
- 删除引导项:清理 systemd-boot 或 GRUB 配置中的 NixOS 启动项。
- 清理配置文件:删除
/etc/nixos
配置目录。 - 恢复引导顺序:确保系统从其他操作系统启动。
- 删除 swap 分区(如果不再需要)。
完成这些步骤后,NixOS 将被从系统中完全移除。如果你有任何问题,或者在操作过程中遇到困难,随时向我求助!