前言:本文操作全是在Pve下完成的,且需要有其他Linux发行版基础
1.下载
在安装之前,我们需要有ISO镜像文件
由于源镜像在国外地址,所以本文的镜像采用清华源镜像站下载
https://mirrors.tuna.tsinghua.edu.cn/nixos-images/nixos-23.05/latest-nixos-minimal-x86_64-linux.iso
2.安装
虚拟机安装可采用Hyper-V、Kvm、Vmware、Vbox…(本文采用基于Kvm的Pve虚拟化安装)







由于是虚拟机,所以配置上按需配置,不需要和我一样
这时候我们启动虚拟机,我们可以看到启动后的界面是如下图

首先,用fdisk工具查看并分区
提示: 为了方便作者这边使用ssh连接

我们这边给分区格式化为ext4文件格式
mkfs.ext4 /dev/sda1

挂载分区到/mnt目录下
mount /dev/sda1 /mnt

使用nixos-generate-config命令给/mnt生成默认配置文件
nixos-generate-config --root /mnt/

使用你习惯的编辑器编辑configuration.nix(作者这边使用Vim编辑器做参考)
vim /mnt/etc/nixos/configuration.nix

修改grub引导
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
修改时区
time.timeZone = "Asia/Shanghai";
修改语言(作者这边闲方便所以直接改成了zh_CN.UTF-8)
i18n.defaultLocale = "zh_CN.UTF-8";
找到用户配置的地方
users.users.alice = {
isNormalUser = true;
extraGroups = [ "wheel" ];
packages = with pkgs; [
neofetch
];
};
改成
users.mutableUsers = false;
users.users.root.hashedPassword = "$y$j9T$G2w0TkDbr95KSmQlyDcSc1$HYT7shT5NRiymzswRlCWK4p7bn9Gzqegd645wWvhKpC";
users.users.lisky = {
hashedPassword = "$y$j9T$N5u6Uk7hK1hBGqwbv2noF1$dDGxFSSgEMCZFtYsS1IkdA9ShWCf1nU/Vgoj2UuCkJ6";
isNormalUser = true;
extraGroups = [ "wheel" ];
packages = with pkgs; [
neofetch
];
};
alice 改成自己的用户名
users.mutableUsers = false; 意思是强制只使用我们写的 nix 配置添加管理用户
hashedPassword 是个加密哈希值(用户密码),可使用 mkpasswd 命令生成
找到并将注释去掉
# environment.systemPackages = with pkgs; [
# vim
# htop
# ];
environment.systemPackages = with pkgs; [
vim
htop
];
将sshd服务打开
services.openssh.enable = true;
添加NixOS国内源
nix.settings.substituters = [ "https://mirrors.ustc.edu.cn/nix-channels/store" ];
保存并退出文件后,使用以下其中一条命令就可以开始安装系统了
nixos-install --option substituters https://mirrors.ustc.edu.cn/nix-channels/store
nixos-install --no-root-passwd --option substituters https://mirrors.ustc.edu.cn/nix-channels/store
最后reboot一下就能进入系统了
