SOLUTION BELOW
I have never been in a more confusing situation regarding Linux.
I have a Dell XPS 15 9560, which had a dual boot Windows 10 / EndeavourOS setup. It was running fine for months. 10 days ago I updated Linux and after restart it couldn't boot anymore. It got stuck at "A start job is running for /dev/disk/by-uuid/..." (which is the root partition).
First, with the help of a friend of mine who is quite knowledgeable about Linux (he runs vanilla Arch, etc), we spent 5 hours trying to fix it but had no luck.
Then I decided to back up everything and do a fresh install. Aaaand the same error happened again on the first boot. Then I though "ok, probably some problem with Arch, lets try Fedora". Nope. Some similar error about not finding the root partition. (Here I must say that the kernel which was shipped with the ISO was working fine, but after updating to the latest one, it failed.) Here I thought "ok, then it might be a problem with the latest kernel, let's install EndeavourOS with the LTS kernel." Nope, LTS kernel also didn't boot. Then I tried Ubuntu and it worked, but that's not solving the problem. Then I decided to put another nvme drive in the laptop and try there. The same error again.
Now the greatest part: If I put the nvme drive into an external usb case, EndeavourOS installs, updates, boots without any problem, no sign of the error.
So now I don't know how to proceed... Maybe there is something wrong with the pcie port in my laptop, but except for the booting problem, windows is working, I can also mount and access every partition in the ssd through a live usb. So no other signs of problem with the port whatsoever.
I would be grateful for any advice as I've lost several days trying to solve this and I am out of ideas...
Solution: The last working kernels are from 11. August 2023 (both linux and linux-lts) linux-6.4.10.arch1-1 and linux-lts-6.1.45-1. You can download them from here: linux / linux-lts and install them with
sudo pacman -U the_path_to_the_package
Thank you all for the help!
I always dual boot and have never had an issue in many years. I wonder what I am doing differently.
The only way I could dual boot without Windows breaking things was to unplug the Windows drive, install Linux on another drive, plug the Windows drive back in, and boot to Windows by selecting it in the BIOS.
Trying to use grub would always have issues eventually after booting into Windows.
That's definitely not the norm. Used to be that installing Windows would wreck Grub, but you just needed to but a rescue disk and reinstall Grub one time to fix it. Most people dual booted for decades without any issue there.
To be fair this would have been decades ago. Ubuntu 8.xx and either XP or 7. It was my first dive into Linux so there's a good chance I did something wrong.
I was always able to repair grub when windows would wreck it thankfully.
My current setup is using the former, but I did the latter for so many years and the only issue I had was the clock would get fucked up after booting Windows. But I agree, it's much safer to have your Windows SSD physically removed when installing Linux so grub doesn't get installed on the same SSD as Windows. I wouldn't do it with all the horror stories I have read. My good experience was probably dumb luck.
Couldn't you use grub on one drive to point to the bootloader on a separate drive? Windows should leave that configuration alone, at least in theory.
Probably, but I just didn't want to give it the chance. It ended up being a non-issue in the end because I never booted back into Windows.