0%

NixOS安装教程

前言:本文操作全是在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虚拟化安装)

新建虚拟机1
新建虚拟机2
新建虚拟机3
新建虚拟机4
新建虚拟机5
新建虚拟机6
新建虚拟机7

由于是虚拟机,所以配置上按需配置,不需要和我一样

这时候我们启动虚拟机,我们可以看到启动后的界面是如下图

启动后界面

首先,用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一下就能进入系统了

安装完成