マザーボードやディスクの接続方法を変えた後にマシンを起動させると、ブートローダーが見つからないという旨のエラーが表示され NixOS が起動しなくなることがあります。このような場合には NixOS のライブ USB からマシンをブートさせ、改めてブートローダーをインストールすることで治ります。
まずライブ USB から起動したうえで端末を開き、以下のように /mnt 配下に元々のディスクをマウントします:
# パスなどは環境に合わせる。
$ sudo mount /dev/nvme0n1p2 /mnt
$ sudo mount /dev/nvme0n1p1 /mnt/boot/efi
続いて nixos-enter コマンドを実行します。これによって /mnt に chroot が行われ、元の環境を操作できるようになります。
$ sudo nixos-enter
この状態で switch-to-configuration boot を起動します。このコマンドは nixos-rebuild boot を実行したときに裏で動いているもので、次回ブート時の NixOS の環境を構成します。加えて環境変数で NIXOS_INSTALL_BOOTLOADER=1 をつけておき、ブートローダーが確実にインストールされるようにします:
$ NIXOS_INSTALL_BOOTLOADER=1 /nix/var/nix/profiles/system/bin/switch-to-configuration boot
以上を実行した後にマシンを再起動すると NixOS が通常通り立ち上がるはずです。
#ちなみに
自分が実際に試した際は /mnt/boot/efi にマウントするべきところを /mnt/boot にマウントしてしまいトラブりました。なんやかんやしたら一応ブートはしたのですが nixos-rebuild switch して適用した変更がマシンを再起動すると勝手にロールバックしてしまうようになりました。そこで /mnt/boot の中身を全て削除したうえで nixos-rebuild switch したところ正常に動くようになりました。良かった良かった。