💽 下载镜像
NixOS 23.05 版本镜像下载:Minimal ISO image
我发布这篇文章的时候,该镜像的版本是这个
💻 创建虚拟机
下载好镜像后,创建虚拟机,选择自定义安装:
我这里使用的是 Vmware Workstation 16 pro 版本
选择之后再选择镜像,也就是第三个
选择 Linux 操作系统:
确定虚拟机名称,这里命名为 NixOS
2处理器2核即可:
内存这里选择 4G,足够了
选择 NAT 模式网络连接
然后下面几个选项都直接默认即可,直到磁盘大小,这里选择 60G
然后再一直默认,直到这里,点击 Customize Hardware,这里要选择 ISO文件了
选择存放 ISO 镜像路径即可,选择后点击右下角 Close 关闭,即可完成虚拟机的创建
创建好虚拟机后,直接点击启动,进入 GRUB 界面,默认即可:
NixOS 默认以 nixos
用户的身份进入:
🚀 正式安装
检查网络
虚拟机就不用了,因为使用 NAT 模式,默认会使用主机网络
如果是实体机,NixOS 内置了
wpa_cli
工具,不过要首先开启它:sudo systemctl start wpa_supplicant
然后输入
wpa_cli
即可进入网络连接程序
实体机连接网络暂时略过,等笔者以后用实体机装 NixOS 再来补吧,又需要的伙伴可以去官网搜索安装教程,官网也是给了连接网络的命令示例的
磁盘分区
这里记录了两种启动模式的分区方式,UEFI 和 BIOS,根据自己电脑情况来选择吧
UEFI 启动模式
使用 lsblk
来查看磁盘名称,这里显示 /dev/sda
,然后使用 parted
工具对磁盘分区
parted /dev/sda
使用
parted
过程中出现的提示信息:You may need to update /etc/fstab 可以不用理会
执行该命令后,就进入了 parted
工具的分区程序了,接下来就是一系列的分区操作:
- 创建主分区,这里是将大部分的区域挂载到
/
目录,也就是 Linux 的 根分区,这个分区是必须要有的 - 然后创建 swap 分区,相当于 Windows 的虚拟内存区域,可有可无,但建议还有要有
- 创建 ESP 分区,用作引导系统启动,这个分区也是必须要有的
mklabel gpt # 创建 GPT 分区
mkpart primary 512MB -8GB # 从磁盘的 513MB 开始到倒水 20GB 的位置创建一个主分区
mkpart primary linux-swap -8GB 100% # 从磁盘的倒数 8GB 到磁盘末尾创建一个主分区,该分区用作交换分区
mkpart ESP fat32 1MB 512MB # 从磁盘的 1MB 到 512MB 处建立 ESP 分区,即 EFI 分区,用于引导系统启动
set 3 esp on # 启动 esp 分区
quit # 退出 parted 工具,所做的操作全部写入磁盘
BIOS 启动模式
parted /dev/sda
mklabel msdos
mkpart primary 1MB -8GB
mkpart primary linux-swap -8GB 100%
quit
创建分区后再次使用 lsblk
查看分区情况:
分区格式化
首先格式化根分区:
mkfs.ext4 /dev/sda1
mkswap /dev/sda2
使用 UEFI 分区还需要格式 EFI 分区:
mkfs.fat -F 32 /dev/sda3
分区挂载
先将根分区挂载到 /mnt
mount /dev/sda1 /mnt
如果有 EFI 分区,就挂载 EFI 分区到 /mnt/boot
,没有就跳过这一步
mkdir -p /mnt/boot
mount /dev/sda3 /mnt/boot
最后挂载 swap 分区
swapon /dev/sda2
为 NixOS 生成配置文件
nixos-generate-config --root /mnt
这一步会生成两个配置文件:/etc/nixos/configuration.nix
和 /etc/nixos/hardware-configuration.nix
配置 NixOS 系统
接下来的步骤就是 NixOS 和其他寻常的 Linux 系统不一样的地方了
如果是普通的 Linux 系统,接下来就是输入一条条的命令来配置新系统
而 NixOS 则是全部使用配置文件来管理,也就是先配置后安装,一个配置文件里包含了系统所有相关的信息
系统的配置文件路径: /etc/nixos/configuration.nix
不过因为处于 live 环境,所以还得加上 /mnt 的前缀,/mnt 可以简单理解为 /,所以执行下面的命令:
vim /mnt/etc/nixos/configuration.nix
NixOS 配置都是可以在官网上寻找到:https://search.nixos.org/packages?channel=23.05
注意 NixOS 的版本,我这里最新的 NixOS 版本是 23.05
配置启动模式
如果是 UEFI 启动模式,就配置:
boot.loader.systemd-boot.enable = true
如果是 BIOS 启动模式,就配置:
boot.loader.grub.device = "/dev/sda"
设置 hostname
networking.hostName = "nixos";
开启 NetworkManager
networking.networkmanager.enable = true;
设置时区和本地化语言
time.timeZone = "Asia/Shanghai";
i18n.defaultLocale = "en_US.UTF-8"
终端相关设置
console = {
font = "Lat2-Terminus16";
# keyMap = "us";
useXkbConfig = true; # use xkbOptions in tty.
};
安装基础的软件包
这里是基本需要使用的软件包,包括 vim、wget 等
别看现在可以使用 vim 打开配置文件,这是因为 live 环境自带了,新系统是没有该软件包的
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget
];
安装桌面环境
这里选择的是 Plasma KDE 环境,当然别的环境都可以去 NixOS 官网去搜索
services.xserver.enable = true;
services.xserver.layout = "us";
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.displayManager.sddm.enable = true;
安装 NixOS
当上述所有的配置都完成后,就可以选择安装部署系统了,使用 --show-trace
可以更好排查安装系统时出现的问题
nixos-install --show-trace
这个过程会持续若干分钟,视网络环境而变化,最后安装好后,就会提示为 root 用户设置密码,最后重启即可
如果安装速度太慢,可以考虑使用国内镜像:
nixos-install --option substituters https://mirrors.ustc.edu.cn/nix-channels/store
这条命令是暂时使用国内的 ustc 镜像来安装下载软件包
最后重新启动即可:
📙 Nix 的基本使用
在新系统中,是以 root 用户登录的,可以直接使用 kde 桌面的 konsole 进入终端
添加非 root 用户
因为当前是 root 用户可以直接编辑配置文件
vim /etc/nixos/configuration.nix
wheel 组的用户可以拥有 sudo 权限
并且每一个用户下都有单独的 packages = with pkgs;
配置项,这是单独用户下的软件包
users.users.username = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
packages = with pkgs; [
firefox
tree
];
};
记得把上述配置文件中的 username
改成需要你自己的用户名,保存退出
然后就是 nixos 中使用最频繁的命令之一了,根据配置文件更新系统:
nixos-rebuild swicth
该命令执行完毕后,重新启动系统,即可使用非 root 用户进入系统
对了,非 root 用户要使用 sudo nixos-rebuild switch
来更新系统配置
开启 ssh 连接服务
还是编辑配置文件,将 services.openssh.enable = true; 的注释删除,再重新加载配置文件,即可启动 ssh 服务
sudo nixos-rebuild switch
sudo systemctl status sshd # 查看 sshd 服务是否启动
启动 ssh 后,就可以使用主机来连接虚拟机了
ok!NixOS 最基本的使用就完成了,官网有更多好玩的东西,可以自行探索