本文不再更新,建议查看 https://dev.leiyanhui.com/nixos/start/
硬盘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| echo -e "mklabel gpt \nmkpart ESP fat32 1MiB 512MiB \nset 1 esp on \nmkpart primary 512MiB 100% \nquit" | parted /dev/nvme0n1
mkfs.fat -F 32 /dev/nvme0n1p1
#dosfslabel /dev/nvme0n1p1 EFI
mkfs.btrfs -L NIXOS /dev/nvme0n1p2
mount /dev/nvme0n1p2 /mnt # 将根分区挂载到 /mnt 下
btrfs subvolume create /mnt/root # 创建 root 子卷
btrfs subvolume create /mnt/home # 创建 home 子卷
btrfs subvolume create /mnt/nix # 创建 nix 子卷
umount /mnt # 取消挂载
mount -o compress=zstd,subvol=root /dev/nvme0n1p2 /mnt # 启用透明压缩参数挂载 root 子卷
mkdir /mnt/{home,nix,boot} # 创建 home,nix,boot 目录
mount -o compress=zstd,subvol=home /dev/nvme0n1p2 /mnt/home # 启用透明压缩参数挂载 home 子卷
mount -o compress=zstd,noatime,subvol=nix /dev/nvme0n1p2 /mnt/nix # 启用透明压缩并不记录时间戳参数挂载 nix 子卷
mount /dev/nvme0n1p1 /mnt/boot # 挂载 boot
nixos-generate-config --root /mnt
cd /mnt/etc/nixos/
sed -i 's/ \[ "subvol=root" \]/ \[ "subvol=nix" "compress=zstd" \]/g' hardware-configuration.nix
sed -i 's/ \[ "subvol=home" \]/ \[ "subvol=nix" "compress=zstd" \]/g' hardware-configuration.nix
sed -i 's/ \[ "subvol=nix" \]/ \[ "subvol=nix" "compress=zstd" "noatime" \]/g' hardware-configuration.nix
|
configuration.nix base with zsh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| { config, lib, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nix.settings.substituters = [ "https://mirrors.ustc.edu.cn/nix-channels/store" ];
nixpkgs.config.allowUnfree = true;
networking.hostName = "nixos"; # Define your hostname.
time.timeZone = "Asia/Shanghai";
virtualisation.vmware.guest.enable = true;
sound.enable = true;
users.mutableUsers = false; # 禁止useradd添加用户
#security.sudo.wheelNeedsPassword = false;
users.users.yh= { #用户名是yh
isNormalUser = true;
hashedPassword = "$y$j9T$I9BXOYYJGTV/Yx5hM7YmJ/$0Mhrve6QTJW4qZtBHRqUG7dJnXWRmdjwkFkNMM0ARA3";
extraGroups = [
"wheel"
"users"
];
};
environment.systemPackages = with pkgs; [
wget
curl
unzip
zsh
wqy_zenhei
];
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDwkV1nzSvgoklrfinn8BzxveOPd0UPY1sYwwMMMQrjoAih1PZldT8LcA6zqUsERLXGHf2qy1gSdMFomAAejDEo1aU0PmaGGX4+LWgvlH2xvr3MlbItWLwbXYQdhsfqKu93Qnt7aODJ1Ts2kzp7CP1yR1O4BFUemfnPMVyj07Vj70yg1nDPIXxCPzcMEsJ1OGUduCaDqNA8Ag+TmSSCM+E9rEgMEAcRqpziQYeUEU/RASRYPDeDj5kE81qcDDhseknTFGGa99yZU1R+zuVh4IQEZnr0rZbty0noRFU4AFgMxKaMXwrusjOoX62pEQ0KKU7+pJoKgzVNSFDwt7j50PgOXCue3cqi3Rf4zMpVPkrJP2V+ELR44i/PNHP0GflaNU0RumX8jwScqxMT/NOAdsPs5fRIiUocDXASypjM/2dpJ9wlmmU+ngVFba316Q1kff1LQ0NH5kmKs5DDmL+vbC8wcWuwVuZty2FPJwpdxXK1Oax8GEw4WIM6QjJJ4jqh//k= joyanhui@qq.com"
];
users.users.yh.openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDwkV1nzSvgoklrfinn8BzxveOPd0UPY1sYwwMMMQrjoAih1PZldT8LcA6zqUsERLXGHf2qy1gSdMFomAAejDEo1aU0PmaGGX4+LWgvlH2xvr3MlbItWLwbXYQdhsfqKu93Qnt7aODJ1Ts2kzp7CP1yR1O4BFUemfnPMVyj07Vj70yg1nDPIXxCPzcMEsJ1OGUduCaDqNA8Ag+TmSSCM+E9rEgMEAcRqpziQYeUEU/RASRYPDeDj5kE81qcDDhseknTFGGa99yZU1R+zuVh4IQEZnr0rZbty0noRFU4AFgMxKaMXwrusjOoX62pEQ0KKU7+pJoKgzVNSFDwt7j50PgOXCue3cqi3Rf4zMpVPkrJP2V+ELR44i/PNHP0GflaNU0RumX8jwScqxMT/NOAdsPs5fRIiUocDXASypjM/2dpJ9wlmmU+ngVFba316Q1kff1LQ0NH5kmKs5DDmL+vbC8wcWuwVuZty2FPJwpdxXK1Oax8GEw4WIM6QjJJ4jqh//k= joyanhui@qq.com"
];
users.defaultUserShell = pkgs.zsh;
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
};
#history.size = 10000;
#history.path = "${config.xdg.dataHome}/zsh/history";
};
system.stateVersion = "23.11";
}
|
configuration.nix with kde6 and wayfire
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
| { config, lib, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nix.settings.substituters = [ "https://mirrors.ustc.edu.cn/nix-channels/store" ];
nixpkgs.config.allowUnfree = true;
networking.hostName = "nixos"; # Define your hostname.
time.timeZone = "Asia/Shanghai";
virtualisation.vmware.guest.enable = true;
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-chinese-addons
fcitx5-gtk
];
};
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma6.enable = true;
sound.enable = true;
users.mutableUsers = false; # 禁止useradd添加用户
#security.sudo.wheelNeedsPassword = false;
users.users.yh= { #用户名是yh
isNormalUser = true;
hashedPassword = "$y$j9T$I9BXOYYJGTV/Yx5hM7YmJ/$0Mhrve6QTJW4qZtBHRqUG7dJnXWRmdjwkFkNMM0ARA3";
extraGroups = [
"wheel"
"users"
];
};
environment.systemPackages = with pkgs; [
wget
curl
unzip
zsh
ntfs3g
wqy_zenhei
kitty
microsoft-edge
];
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDwkV1nzSvgoklrfinn8BzxveOPd0UPY1sYwwMMMQrjoAih1PZldT8LcA6zqUsERLXGHf2qy1gSdMFomAAejDEo1aU0PmaGGX4+LWgvlH2xvr3MlbItWLwbXYQdhsfqKu93Qnt7aODJ1Ts2kzp7CP1yR1O4BFUemfnPMVyj07Vj70yg1nDPIXxCPzcMEsJ1OGUduCaDqNA8Ag+TmSSCM+E9rEgMEAcRqpziQYeUEU/RASRYPDeDj5kE81qcDDhseknTFGGa99yZU1R+zuVh4IQEZnr0rZbty0noRFU4AFgMxKaMXwrusjOoX62pEQ0KKU7+pJoKgzVNSFDwt7j50PgOXCue3cqi3Rf4zMpVPkrJP2V+ELR44i/PNHP0GflaNU0RumX8jwScqxMT/NOAdsPs5fRIiUocDXASypjM/2dpJ9wlmmU+ngVFba316Q1kff1LQ0NH5kmKs5DDmL+vbC8wcWuwVuZty2FPJwpdxXK1Oax8GEw4WIM6QjJJ4jqh//k= joyanhui@qq.com"
];
users.users.yh.openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDwkV1nzSvgoklrfinn8BzxveOPd0UPY1sYwwMMMQrjoAih1PZldT8LcA6zqUsERLXGHf2qy1gSdMFomAAejDEo1aU0PmaGGX4+LWgvlH2xvr3MlbItWLwbXYQdhsfqKu93Qnt7aODJ1Ts2kzp7CP1yR1O4BFUemfnPMVyj07Vj70yg1nDPIXxCPzcMEsJ1OGUduCaDqNA8Ag+TmSSCM+E9rEgMEAcRqpziQYeUEU/RASRYPDeDj5kE81qcDDhseknTFGGa99yZU1R+zuVh4IQEZnr0rZbty0noRFU4AFgMxKaMXwrusjOoX62pEQ0KKU7+pJoKgzVNSFDwt7j50PgOXCue3cqi3Rf4zMpVPkrJP2V+ELR44i/PNHP0GflaNU0RumX8jwScqxMT/NOAdsPs5fRIiUocDXASypjM/2dpJ9wlmmU+ngVFba316Q1kff1LQ0NH5kmKs5DDmL+vbC8wcWuwVuZty2FPJwpdxXK1Oax8GEw4WIM6QjJJ4jqh//k= joyanhui@qq.com"
];
programs.wayfire = {
enable = true;
plugins = with pkgs.wayfirePlugins; [
wcm
wf-shell
wayfire-plugins-extra
];
};
users.defaultUserShell = pkgs.zsh;
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
};
#history.size = 10000;
#history.path = "${config.xdg.dataHome}/zsh/history";
};
system.stateVersion = "23.11";
}
|
命令
1
2
3
4
5
| ix-channel --add https://mirrors.ustc.edu.cn/nix-channels/nixpkgs-unstable nixos
nix-channel --update
sudo nixos-rebuild switch --option substituters https://mirrors.ustc.edu.cn/nix-channels/store
cd /mnt
nixos-install --show-trace --option substituters https://mirrors.ustc.edu.cn/nix-channels/store
|