Black screen after rebooting from within ZorinOS

Hi,

I purchased and installed Zorin OS Pro 17.3 successfully today, and while everything works, there is a quirk with my install it seems. When I soft reboot, that is, click the button to restart from within the OS, it seems to reboot normally, but after it gets to the grub menu, it immediately switches to a black screen where I am unable to interact with it at all, including being unable to access the TTY, then my monitors shut off but the rest of the computer stays on. The only way I can get back to a desktop is to hold down the power button on my computer - then it will boot back up just fine. Other than this the OS seems stable.

System Specifications:
Motherboard: Gigabyte B450 AORUS Elite
CPU: AMD Ryzen 5600x
GPU: AMD Radeon RX 7800 XT
RAM: 32GB
OS's: Dual boot with Zorin OS 17.3 Pro and Windows 11 on different SSDs.
Kernel: Linux zorin-os 6.16.0-061600-generic (Was attempting to see if updating to the newest kernel would fix the issue)

Thanks for any and all help.

Disable fast boot and secure boot in your BIOS and fast startup in Windows.

Both fast boot and secure boot are already disabled, and fast startup in Windows is also disabled.

1 Like

With pro license you can get help directly from zorin team:

Where is grub installed - on which drive? Is it installed together with Windows boatloader in EFI partition or separately?

As the kernel 6.16 is a really new one, try it also with 6.12 or 6.14 and use cappelican or tuxinvader mainline tool:

It is installed on the drive with ZorinOS, separate from the Windows drive. And I will reach out to them, thank you.

I will also try a different kernel as suggested, I was a tad nervous about picking the absolute bleeding edge one, but was unsure exactly which one to pick.

If you want to show grub menu at boot (if it isn't displayed) so that you have easier access if there is a problem you can run

"sudo nano /etc/default/grub"

Change the following lines that they look so and remove the # at the beginning of the lines:

GRUB_TIMEOUT_STYLE=menu

GRUB_TIMEOUT=10

Press CTRL+o to save the file, then enter and CTRL+x to quit.

Now enter in terminal

"sudo update-grub"

1 Like

This is a known issue on AMD cards: During a soft reboot, the GPU does not clear and reinitialize.

If you can test the nomodeset parameter and see if that allows soft reboot to work, I can try to find a better more permenant grub parameter to use other than nomodeset.

EDIT:
Or try one of these two:
reboot=efi

reboot=acpi

Changing it to nomodeset seems to have made the problem worse, as while it would boot to the desktop, it would only turn on my second monitor and lock it to 1024x768. I had to change it back to quiet splash for it to work again after hard rebooting. Possible graphics driver issue? I know my GPU is fairly new, but I am unsure if the built-in Mesa drivers are newer, or older than my GPU.

And adding reboot=efi to /etc/default/grub (if that is what you intended me to do, I am slightly unsure) did not fix the issue either.

What is your Mesa version?

apt list --installed | grep mesa

23.2.1-1ubuntu3.1~22.04.3 amd64

Well, that is below what you need for AMD Radeon 7800, so let's correct that. Hopefully, that will resolve the issue all by itself.

sudo add-apt-repository ppa:ernstp/mesarc

sudo apt update && sudo apt upgrade

Please watch the terminal output ensuring that your mesa version is upgraded to above 25.
If you do not see that happen in the terminal, we may need to instruct it manually.

1 Like

The Mesa upgrade appears to have taken effect, but the issue persists.

Can you first cycle a full hard reboot, then test a soft reboot?
If that is still no good, let's try kernel parameter amdgpu.gpu_recovery=1

Remember to run sudo update-grub after changing the grub file...

Issue persists after a hard reboot then a soft reboot, unfortunately.

Getting an error while updating grub
/usr/sbin/grub-mkconfig: 13: /etc/default/grub: amdgpu.gpu_recovery=1: not found

Please show the contents of your grub file.

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
reboot=efi
amdgpu.gpu_recovery=1

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

GRUB_THEME=/usr/share/grub/themes/zorin/theme.txt


These need to be placed on the Default line, within the quotes.
It would look exactly like this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=efi"
Or
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.gpu_recovery=1"
Once the change is made, save the file or if using Nano in termainal, tap
ctl+o to overwrite, then enter key to save current configuration.
Then tap ctl+x to eXit the editor.

Now run

sudo update-grub

Then perform the soft reboot to test. I think we can try again at reboot=efi

I tried both options, and neither have fixed the issue unfortunately, and that was after doing a hard reboot, then a soft reboot.

Let's try amdgpu.reset_method=hard

And please show what you are running in the Grub File to be sure it is correct.

# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.reset_method=hard"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"


GRUB_THEME=/usr/share/grub/themes/zorin/theme.txt

Fixed the issue, but I am now back at only one monitor at 1024x768.