跳过正文

NixOS安装简明指南(基于Flakes + Home Manager)

·421 字· loading · loading · · ·
lightmon
作者
lightmon
该博主太懒了,尚未添加简介。
目录

此文章基于此视频:

第一步当然是启动NixOS LiveCD了,这里不过多介绍。

前置杂项
#

切到root用户
#

sudo -i

硬盘分区
#

确认目前硬盘对应设备名
#

lsblk

分区
#

cfdisk /dev/sda # change sda to your dedicated device name

示例分区表:

DeviceSizeType
/dev/sda11GEFI System
/dev/sda24GLinux swap
/dev/sda350GLinux filesystem

确认分区表
#

lsblk

建立文件系统
#

mkfs.ext4 -L nixos /dev/sda3
mkswap -L swap /dev/sda2
mkfs.fat -F 32 -n boot /dev/sda1

挂载分区
#

mount /dev/sda3 /mnt
mount --mkdir /dev/sda1 /mnt/boot

创建交换分区
#

swapon /dev/sda2

再次确认
#

lsblk

生成NixOS配置
#

nixos-generate-config --root /mnt

以下separate from official NixOS installation.

使用flake和home-manager进行管理
#

cd /mnt/etc/nixos
touch flake.nix home.nix

flake.nix
#

{
  description = "NixOS from Scratch";

  inputs = {
    nixpkgs.url = "nixpkgs/nixos-26.05";
    home-manager = {
      url = "github:nix-community/home-manager/release-26.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, home-manager, ... }: {
    nixosConfigurations.nixos-btw = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./configuration.nix
        home-manager.nixosModules.home-manager
        {
          home-manager = {
            useGlobalPkgs = true;
            useUserPackages = true;
            users.light = import ./home.nix;
            backupFileExtension = "backup";
          };
        }
      ];
    };
  };
}

configuration.nix
#

{ config, lib, pkgs, ... }:

{
  imports =
    [
      ./hardware-configuration.nix
    ];

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  networking.hostName = "nixos-btw";
  networking.networkmanager.enable = true;

  time.timeZone = "Asia/Shanghai";

  users.users.light = {
    isNormalUser = true;
    extraGroups = [ "wheel" ];
    packages = with pkgs; [
      tree
    ];
  };

  environment.systemPackages = with pkgs; [
    vim
    wget
    git
  ];

  nix.settings.experimental-features = [ "nix-command" "flakes" ];
  system.stateVersion = "26.05";
}

home.nix
#

{ config, pkgs, ... }:

{
  home.username = "light";
  home.homeDirectory = "/home/light";
  programs.git.enable = true;
  home.stateVersion = "26.05";
  programs.bash = {
    enable = true;
    shellAliases = {
      btw = "echo i use nixos, btw";
    };
  };
}

安装NixOS
#

nixos-install --flake /mnt/etc/nixos#nixos-btw

设置用户密码
#

nixos-enter --root /mnt -c 'passwd light'

重启
#

reboot
Footer Background

© 2026 lightmon

Hugo & Blowfish 强力驱动