Black screen on boot, except through USB

Hi, I'm somewhat new to Linux and Manjaro and have run into something peculiar that isn't high priority right now because I have a working work-around, and I haven't been able to find this specific situation around on forums or such.

Context
I'm currently dual booted in a messy way where my windows runs off of an MBR SSD and my Manjaro is on a GPT SSD, I default to Manjaro or have to manually interrupt the boot process to select my Windows drive if I want to use Windows. I am ok with this since I quite honestly am a bit lazy with this sort of stuff, and doesn't exactly bother me.
Windows and Manjaro have separate system boot partitions on their respective drives. The one relevant to Manjaro is FAT32 formatted with 300MB. Manjaro itself is installed on a roughly 900GB Ext4 partition, of which about 15% is in use.
I'm also set up so I automatically log in without intermediate login screen on Manjaro.

The issue
About 2 days ago I tried to boot into Manjaro, but was faced with a black screen instead after the post. Windows was still working fine when I manually selected it, but Manjaro regardless of approach would not boot, until I tried to use the install USB I still had, since I only switched to Manjaro a few months ago. It was able to detect the EFI and boot into Manjaro without any issue, and this has since been the situation.

I use my system every day and have in the last couple of months not tried to boot into windows, except for 2 days before the issue started happening because of wanting to play MHW, which I've heard doesn't do well on Linux yet. Meaning I've logged into windows, then into linux, then the day after that, linux wouldn't boot anymore.

I have not attempted to do any significant troubleshooting myself yet, but am planning to try various things like switching kernel, switching video driver, use timeshift (which I have configured and I have backups).

Most of the data is expendable as almost all of my significant data is either backed up, cloud based, or otherwise inconsequential, but if at all possible I would rather preserve it nonetheless.

I'm unsure what would be the culprit because of lack of experience and insight into GRUB and linux as a whole, but my suspicions are with the EFI partition.

findmnt /boot/efi returns to me the following, for reference, Manjaro is installed on sdc1 indeed.

/boot/efi /dev/sdc1 vfat   rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso88

Any thoughts or suggestions that might help me with this, or anything you specifically suspect to be the culprit?

I prefer to know the why's of the issue as much if not more so than the knowledge how to fix it.

When booted into manjaro (your way is fine, the link's way is fine, any way except the highway), at terminal, and referencing this link, do
sudo grub-install and the 2 [UEFI - Additional Commands] listed there.

And check if you have disabled hiberfile in windows. Check out this topic on the possible cause of your problem. And there is a link on removing hiberfile there too. Note you may have to remove 'fastboot' in the (some) bios itself.

I've executed the following:

sudo grub-install /dev/sdc
sudo update-grub
sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi
sudo efibootmgr -c -d /dev/sdc -p 1 -L "manjaro" -l "\EFI\Manjaro\grubx64.efi"

The output suggested that everything went fine, changed things to sdc because that's the drive my Manjaro is on.
The only things of note were mentions of a scan failure of sdd which is a little strange to me but I reckon that it's more of a virtual thing, since I do not have a 4th drive, other than perhaps the usb.
Lastly I got a warning that there already was a boot option with the name "manjaro"
I rebooted and still had the black screen, so I went to check my bios, fast boot was already disabled.
I booted into windows to see about the hibernation stuff and it was enabled, albeit I have never to my recollection used it, nonetheless I disabled it for as far as I know.
I just now booted back into Manjaro using my USB, ran efibootmgr -v and the result is peculiar as I distinctly remember that during the execution of previously mentioned commands, the boot order was different, and there is no longer a mention of a second manjaro boot option, despite it being present previously.

I did not bother to save the output of the commands, but what I can tell you is that the boot order was previously 0003 - manjaro, 0000 - manjaro,
the output I got from efibootmgr -v is as follows:

$ efibootmgr -v
BootCurrent: 0007
Timeout: 1 seconds
BootOrder: 0007,0003,0005,0001,0006,0002
Boot0001* Hard Drive    BBS(HD,,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0200)..GO..NO..........W.D.C. .W.D.1.0.E.A.R.X.-.0.0.N.0.Y.B.0...................\.,.@.r.d.=.X..........A...........................>..Gd-.;.A..MQ..L. . . . .W. .-.D.M.W.0.C.0.T.1.7.5.1.4.3........BO..NO..........S.a.n.D.i.s.k. .U.l.t.r.a. .I.I. .9.6.0.G.B...................\.,.@.r.d.=.X..........A...........................>..Gd-.;.A..MQ..L.6.1.4.1.1.1.4.4.0.3.3.5. . . . . . . . ........BO..NO..........S.a.m.s.u.n.g. .S.S.D. .8.6.0. .E.V.O. .1.T.B...................\.,.@.r.d.=.X..........A...........................>..Gd-.;.A..MQ..L.4.S.S.C.F.N.M.0.7.9.4.1.2.0. .H. . . . ........BO
Boot0002* UEFI: Built-in EFI Shell      VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO
Boot0003* manjaro       HD(1,GPT,5676bbe9-e23a-4236-a41b-a650080d2fee,0x1000,0x96000)/File(\EFI\MANJARO\GRUBX64.EFI)
Boot0005* UEFI OS       HD(1,GPT,5676bbe9-e23a-4236-a41b-a650080d2fee,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0006* USB KEY       BBS(HD,,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0b00)..GO..NO.......... .1.1.0.0...................\.,.@.r.d.=.X..........A...................................2..Gd-.;.A..MQ..L.1.0.1.1.2.2.6.0.0.0.1.0.3.1........BO
Boot0007* UEFI:  1100, Partition 1      PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/USB(0,0)/USB(1,0)/HD(1,MBR,0x0,0x5647ac,0x2000)..BO

additional commands and output:

$ findmnt /boot/efi
TARGET    SOURCE    FSTYPE OPTIONS
/boot/efi /dev/sdc1 vfat   rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro

$ findmnt -s
TARGET    SOURCE                                    FSTYPE OPTIONS
/boot/efi UUID=B631-9664                            vfat   umask=0077
/         UUID=37b54e3d-02ae-41aa-a959-95f9029b0b4c ext4   defaults,noatime,discard
/tmp      tmpfs                                     tmpfs  defaults,noatime,mode=1777

So.... pull out the usb and does it boot okay to manjaro?
If you still get black screen when starting computer (without usb), keep tapping 'esc' key and does the grub menu appear?
If you still need help, check that the PARTUUID of your /boot/efi (sdc1) is
5676bbe9-e23a-4236-a41b-a650080d2fee
Verify that with 'sudo blkid'

If grub menu appears by tapping 'esc' and you still get black screen, try adding a '3' (no apostrophes) to the linux line to the grub entry and tell us if you can boot to prompt.

ps: you might want to provide the full output of all commands as listed in my link.
So I won't have to ask so many questions.

So, as I said, without the usb, there is still a black screen, however, I did not know about the pressing escape part.
Turns out I was able to get there in that menu without issue, and whilst the normal boot did not work, the grub fallback initramfs did work! I don't think I should start relying on a fallback system as a default, so, what would have to happen to make the normal boot ok again?

So I'm reading up a little, and I'm getting the feeling this all has to do with hardware configuration and suchalike. It should be noted that somewhat recently I switched ram, completely replacing a 3000MHz 24GB 'set' by a 3000MHz 32GB and enabled xmp for the first time.

fallback boots without modules and without intel-ucode.
While booted in fallback, install another kernel, different from the one you are using.
When done, do

sudo mkinitcpio -P
sudo grub-install 
sudo update-grub.

Let us know if it works.

Done.
I installed 2 new kernels:
5.4.18-1 (LTS) - this was my default and still has the issue
5.4.13_rt7-1 - has the same issue and is recognized as an older version, making it a non-default boot method that requires to enter grub to select
4.19.102-1 (LTS) - This one works! just started it up and whilst I can't just in a few seconds of being logged in determine if everything is still in one piece but it seems alright. Of course, this is also requires manual selection in the grub.

I do not mind having to manually select my kernel on boot, but I would like to have it push me into grub by default, which I've seen on some other linux systems I've worked with, so I'd imagine that should be easy enough.

Good. You have have to find out which other new kernels work later on and why some didn't (probably modules). Perhaps later versions of the same kernel will work which didn't on earlier versions. But this is not something I know much of. You may want to start a different topic and others may help you with.

A few things.... all at /etc/default/grub.

  1. If the selection time to choose your entry is too short, you might want to increase it at
    GRUB_TIMEOUT=
  2. For ease of selection of entry, you might want to flatten the menu to show all entries. Add this line
    GRUB_DISABLE_SUBMENU=y
  3. Comment out this line (add a # in front)
    GRUB_TIMEOUT_STYLE=
  4. To set a default entry, the best way is to
    first, comment out this line (put a # in front)
    GRUB_SAVEDEFAULT=
    second, put in an entry for
    GRUB_DEFAULT=
    And here, there are several ways this can be done.
    The best (to me, but may not be for you) is to use the 'id-option' in the title of the entry you want default.
    So, in my title of the entry I want selected, it appears as..
menuentry 'Manjaro Linux (Kernel: 5.4.18-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.18-1-MANJARO x64-advanced-2b259af0-f5c5-4b3d-a2f6-19f1d83ee208' {

Then I'll select

GRUB_DEFAULT='gnulinux-5.4.18-1-MANJARO x64-advanced-2b259af0-f5c5-4b3d-a2f6-19f1d83ee208'

The other ways are to use the numerical (starts from '0') sequence that the entry appears (including submenu's in the flattened menu), like
GRUB_DEFAULT=4
Another way is to use the title itself, but that is discouraged as it is not reliable and will be deprecated (still works)
GRUB_DEFAULT= 'Manjaro Linux (Kernel: 5.4.18-1-MANJARO x64)'

  1. There are hot keys you can manually add to the entries in grub.cfg but note these will disappear at any 'update-grub' {I use hot keys to easily select any entry to boot - but these are my own grub, not OS grubs}. You may not want to do this.

So in the example given, I add --hotkey=m to

menuentry 'Manjaro Linux (Kernel: 5.4.18-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os  --hotkey=m $menuentry_id_option 'gnulinux-5.4.18-1-MANJARO x64-advanced-2b259af0-f5c5-4b3d-a2f6-19f1d83ee208' {

So when menu appears, just typing 'm' will boot that entry.

Cheers.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by