GitHub ↗

换电脑迁移

换电脑迁移

这套配置分成三个仓库:NixOS 系统层 ~/nixos-config、私人用户编排 ~/chezmoi、公开通用配置 ~/dotfiles。Nixarchy 和 Home Manager 由系统层 flake 接入。换电脑时不要直接复制旧机器的硬件配置。

1. 安装 NixOS 并生成硬件配置

新系统启动后执行:

sudo nixos-generate-config

安装环境中则使用:

sudo nixos-generate-config --root /mnt

新的 hardware-configuration.nix 必须来自新机器。磁盘 UUID、CPU 微码、内核模块和显卡设置都不能直接照搬旧机器。

2. 获取配置仓库

git clone <nixos-config 仓库地址> ~/nixos-config
cd ~/nixos-config

如果仓库是私有仓库,需要先恢复 SSH key,或暂时使用 HTTPS + token。

3. 创建新主机

例如新主机名为 new-laptop:

mkdir -p ~/nixos-config/hosts/new-laptop
cp /etc/nixos/hardware-configuration.nix ~/nixos-config/hosts/new-laptop/hardware-configuration.nix
cp hosts/aarch64/configuration.nix hosts/new-laptop/configuration.nix

修改 networking.hostName,并删除不适用的 QEMU/SPICE、休眠、AMD/Intel、Docker 或 Snapper 配置。

在 flake.nix 注册:

new-laptop = nixpkgs.lib.nixosSystem {
  system = "x86_64-linux"; # ARM64 机器改为 aarch64-linux
  specialArgs = { inherit inputs; };
  modules = [ ./hosts/new-laptop/configuration.nix ];
};

4. 构建并切换

sudo nixos-rebuild build --flake ~/nixos-config#new-laptop
sudo nixos-rebuild switch --flake ~/nixos-config#new-laptop

重启或注销后,在 SDDM 中选择 Omarchy。

5. 恢复 chezmoi

git clone <chezmoi 仓库地址> ~/chezmoi

如果使用 age 加密,还要恢复 ~/age.key。然后预览并应用:

chezmoi --source=~/chezmoi diff
chezmoi --source=~/chezmoi apply

不要让旧 chezmoi 文件覆盖 nixarchy 的核心 ~/.config/omarchy/shell.json 或 Omarchy 会话配置。

6. 恢复公开 dotfiles

git clone https://github.com/iamcheyan/dotfiles.git ~/dotfiles
cd ~/dotfiles
bash dotlink/dotlink link

通用 Zsh、Neovim、Ranger、Vifm 和 Starship 属于这个公开仓库,不复制到 NixOS 模块或 chezmoi。

7. 恢复插件

插件记录在 ~/.config/omarchy/plugins.list。如未自动恢复,在 Omarchy 会话中执行:

omarchy plugin add https://github.com/iamcheyan/omarchy-ctrl-swap.git --enable
omarchy plugin add https://github.com/iamcheyan/omarchy-overview-workspaces.git --enable
omarchy plugin add https://github.com/iamcheyan/omarchy-voxtype-enhance.git --enable
omarchy restart shell

8. 最终验证

uname -m
hostname
nixos-version
nix flake check --no-build
nix run github:olafkfreund/nixarchy#verify

迁移原则

  • flake.lock 可以复用,用于保持依赖版本一致;
  • hardware-configuration.nix 必须重新生成;
  • 用户配置和插件由 chezmoi 恢复;
  • 通用公开配置由 dotfiles 和 dotlink 恢复;
  • NixOS generation 可以回滚系统配置,但不会完整回滚用户目录、浏览器数据、keyring 或 Docker volume。