Hi I tried migrating my configuration to flakes. It successfully installed once, but when I tried to do a full system reinstall using it. It crashed out to an emergency TTY after running sudo nixos-reboot switch --flake .#vortex , and then on rebooting it says that my phase 1 bootloader is missing. I’m honestly not even sure how to start troubleshooting this, so any help would be appreciated. Also I’m not sure what info will be usefull so if you need screen shots of specific error messages, please just let me know.
Side note: NixOS really lived up to one of it’s selling points through this. I had fallback.configuration.nix in my repo, that was a copy of my pre-flakes conversion configuration. So once I started having issues, I just dropped that in instead during the install, and was back to a working system. Makes it so much easier to learn and experiment.
C-d just brings me back to this same prompt. Rebooting from either the root shell option, or just normally turning the system on results in this prompt at start up.
I wonder if it has something to do with your file systems? It’s certainly unusual to have a /boot/efi file system but not a /boot file system, and it’s even fairly encouraged to only have the /boot one. I don’t see how that could cause the issues you’re seeing, but it’s the only anomalous thing I’m seeing here.
No, the stuff for voyager is just a copy of vortex acting as a place holder. So that I know where to put everything when I set up that machines configuration.
The posted screenshots definitely appear to support my suspicion, please check the UUID used to mount /. Or even better: mount by label/partlabel. Much less errorprone and can be controlled.
So I am not sure exactly what you are asking for. So if this is not it. Sorry.
I took a screen shot of my currently running non-flakes based system, next to the one in my repo with labels at the top: Current system is on the left, flake is on the right.
The UUIDs for both the device and file system are differnt. Does this mean that as part of a fresh install I need to move the hardware config file generated by that new installation into the flake. Rather than just having one for that machine as part of the repository?
So I got it working. Basically I assumed that since I am not making any changes to the computer hardware between installations, Eg. changing out storage drives, or adding a gpu, ect. The contents of hadware-configuration.nix file would be static. Its not, the UUIDs inside the file change.
The solution was to copy the newly generated hardware file (created by the installer) into the existing flake.
Thank you @NobbZ for pointing me in the right direction, and sorry if this should have been obvious.
Though once you created a new partition or used mkfs.ext4 or whatever, a new filesystem gets created, with a new UUID.
This is why I always suggest to use label or partlabel, as those are under user control and therefore can be the same between different runs of “formatting” the partition.