双系统安装
Windows安装前准备
调整时间设置
Linux把主板时间改成标准UTC时间,然后根据系统设置的时区对UTC时间进行加减后显示出来。Windows直接读取主板时间显示出来,所以此时你Windows显示的时间就变成了UTC时间,表面上看就像是windows时间错乱了。
PowerShell 管理员权限运行:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1进入Live CD
默认无密码自动登录,使用命令切换到root用户:
sudo -i连接网络
安装过程几乎肯定需要有效的网络连接。 无网络的安装是可行的, 但是可用的软件包集合是受限的。
有线网络
使用网线连接电脑,或是使用USB共享网络 使用命令确认网络连接:
ip a #查看网络连接信息ping bilibili.com -c 4 # 确认网络正常ping 119.29.29.29 -c 4 # 腾讯 DNSPod,不通请检查网络连接WiFi连接
NixOS 默认使用wpa_supplicant作为无线守护程序。
使用命令进入:
sudo systemctl start wpa_supplicant # 启动服务sudo wpa_cli # 进入 wpa 命令行交互模式接着进入交互模式:
> add_network0> set_network 0 ssid "你家 WIFI 的 SSID"OK> set_network 0 psk "WIFI 密码"OK> set_network 0 key_mgmt WPA-PSKOK> enable_network 0OK如果你成功连接,执行完如上的命令后你将得到类似下面的一条message:
<3>CTRL-EVENT-CONNECTED - Connection to 32:85:ab:ef:24:5c completed [id=0 id_str=]这个时候你就可以通过quit命令来退出wpa_cli。
再次检测网络连接:
ip a #查看网络连接信息ping bilibili.com -c 4 # 确认网络正常ping 119.29.29.29 -c 4 # 腾讯 DNSPod,不通请检查网络连接更换频道
添加最新的国内镜像,关于nix channel,由于我们没有使用flake,channel将决定安装的系统的软件包版本。
以下命令添加nixos-unstable作为安装使用的默认channel,如果需要使用稳定版,可替换以下nixos-unstable为 nixos-25.11
:warning: 警告: 在订阅系统版本时请指定系统版本,一般指定当前的最新稳定版。
nix-channel --add https://mirrors.ustc.edu.cn/nix-channels/nixos-unstable nixosnix-channel --update # 更新并解包频道分区与格式化
NixOS 安装程序附带多种分区工具。以下示例使用cfdisk,但也提供fdisk、gdisk、parted和cgdisk。
首先,我们使用lsblk命令查看一手分区情况:
lsblk -pf #查看当前分区情况fdisk -l /dev/想要查询详细情况的硬盘 #小写字母l,查看详细分区信息cfdisk /dev/nvme0n1 #选择自己要使用的硬盘进行分区格式化分区
- 再次查看分区情况
lsblk -pf #查看分区情况fdisk -l /dev/想要查询详细情况的硬盘 #小写字母l,查看详细分区信息- 格式化efi分区
mkfs.fat -F 32 /dev/nvme0n1p1(EFI分区名)- 格式化btrfs根分区
mkfs.btrfs /dev/nvme0n1p2(根分区名)#加上-f参数可以强制格式化创建btrfs子卷
子卷是btrfs的一个特性,跟快照有关。通常至少要创建root子卷(存放系统文件)和home子卷(存放用户文件),根据命名规范取名为@和@home。由于这两者是平级关系,所以创建@快照时不会包含@home。这样就可以只恢复系统文件,不影响用户数据。
- 挂载
mount -t btrfs /dev/nvme0n1p2(根分区名) /mnt- 创建子卷
btrfs subvolume create /mnt/@btrfs subvolume create /mnt/@homebtrfs subvolume create /mnt/@swap #不需要休眠到硬盘功能的话跳过这个- 可选:确认
btrfs subvolume list -p /mnt- 取消挂载,因为我们要重新挂载子卷:
umount /mnt正式挂载
- 挂载root子卷
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p2 /mnt
-o 指定额外的挂载参数compress=zstd 指定透明压缩,zstd是压缩算法- 挂载home子卷
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p2 /mnt/home- 可选:挂载swap子卷(不需要休眠功能的话跳过这一步)
mount --mkdir -t btrfs -o subvol=/@swap,compress=zstd /dev/nvme0n1p2 /mnt/swap- 挂载efi分区(ESP)
mount --mkdir /dev/nvme0n1p1 /mnt/efi- 复查挂载情况
df -h编辑系统配置
使用以下命令生成基础配置:
nixos-generate-config --root /mnt然后编辑配置:
nano /mnt/etc/nixos/configuration.nix{ config, lib, pkgs, ...}:{ imports = [ ./hardware-configuration.nix ]; boot.loader = { grub = { enable = true; device = "nodev"; # `nodev`表示将生成一个 GRUB 引导菜单,但不会实际安装 GRUB。 efiSupport = true; useOSProber = true; }; efi = { canTouchEfiVariables = true; efiSysMountPoint = "/efi"; }; }; networking = { hostName = "NixOS"; networkmanager.enable = true; }; time.timeZone = "Asia/Shanghai"; i18n.defaultLocale = "en_US.UTF-8";
environment.systemPackages = with pkgs; [ neovim ];
nix.settings.substituters = [ "https://mirror.sjtu.edu.cn/nix-channels/store" ]; system.stateVersion = "25.11"; # 不要改动}