换电脑迁移
换电脑迁移
这套配置分成三个仓库: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。