此文章基于此视频:
第一步当然是启动NixOS LiveCD了,这里不过多介绍。
前置杂项#
切到root用户#
sudo -i硬盘分区#
确认目前硬盘对应设备名#
lsblk分区#
cfdisk /dev/sda # change sda to your dedicated device name示例分区表:
Device Size Type /dev/sda1 1G EFI System /dev/sda2 4G Linux swap /dev/sda3 50G Linux 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.nixflake.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

