Originally written by Jonathon Fernyhough at Garuda Linux forum - for reference
While there are many potential reasons why your installation doesn’t boot to a desktop, the primary reason is that the graphics drivers haven’t loaded correctly so your login/display manager (DM) doesn’t start. This is why you get a “black screen” or stuck at an
[ OK ] Started some service
The normal reason for this is that you have the incorrect driver version for the kernel. This can happens when the mirror you are updating from is not fully synchronised, or times out, and so you have different sets of packages in
[extra]. This means the driver module package in
[extra] has been built for a different kernel point-release to that in
[core]. On the other hand, if you have a DKMS driver package then make sure the build succeeded!
Switch to a text console with CTRL+ALT+F2, log in with your normal username and password, then run a full update:
sudo reflector -a6 -f5 --save /etc/pacman.d/mirrorlist
The first command will refresh your mirror list, picking five of the most recently updated mirrors (so those mirrors will all be up-to-date).
The second command will run Garuda's update script which takes care of many update issues.
If any packages were updated, reboot.
Note: If you can’t log in to a text console, use a chroot instead.
Log into a text console as above and run
startx . This should either start X, in which case the issue lies with your Display Manager (e.g. GDM, LightDM, SDDM), OR you will be presented with some output and returned to the console. Of particular interest are Error (EE) lines.
sudo dkms autoinstall
and pay attention to the build completion status. If it says the build failed then check the associated log file (it will tell you a file location).
If none of the above helps fix this issue (which the first one will in 90% of cases) then search all Arch OS related forums for recent issues (https://forum.garudalinux.org/search?q=black%20screen), and, if you can’t find anything, start a new thread mentioning what you have already tried.