You are not logged in.
Hi. I've been using Arch Linux on my laptop for about six months. Before that, I was using Limine. About a week ago, I got bored and decided to reinstall Arch Linux with GRUB.
Everything is configured and working, but it feels like GRUB takes longer to boot. Specifically, after selecting Arch Linux, I get a black screen for about 3–5 seconds (maybe longer). If the system is selected automatically after the timeout, the GRUB splash screen just stays there. It feels like it's “thinking” after selecting the OS.
When I was using Limine, the boot felt faster — maybe it's subjective, but I definitely didn’t notice such delays.
Yesterday I was experimenting on another laptop: installed GRUB there as well, and saw the same delay. Then I switched to Limine (without reinstalling, just following a guide), and it actually boots faster.
So now I’m wondering: is it worth switching my main laptop to Limine? What are its advantages, and what do people generally use?
For me, the main criteria are:
a nice-looking bootloader,
and most importantly, support for system snapshots, so I can roll back at boot if needed.
Offline
I mean, since you've already observed the difference in speed on two different machines, you probably already have your answer! If Limine feels better to you, you can switch, BUT
a nice-looking bootloader,
and most importantly, support for system snapshots, so I can roll back at boot if needed.
I don't think switching yet is reasonable.
regarding the delay: I use GRUB as well, usually, right after selecting 'Arch Linux,' it jumps immediately to 'Loading Linux / Loading initial ramdisk.' so like that 3–5 second "thinking" period you're seeing isn't "standard" behavior for Grub, it might be struggling to find a UUID or waiting on a specific module to load..?
Last edited by 5hridhyan (Yesterday 08:08:31)
*_*
Offline
I mean, since you've already observed the difference in speed on two different machines, you probably already have your answer! If Limine feels better to you, you can switch, BUT
a nice-looking bootloader,
and most importantly, support for system snapshots, so I can roll back at boot if needed.I don't think switching yet is reasonable.
regarding the delay: I use GRUB as well, usually, right after selecting 'Arch Linux,' it jumps immediately to 'Loading Linux / Loading initial ramdisk.' so like that 3–5 second "thinking" period you're seeing isn't "standard" behavior for Grub, it might be struggling to find a UUID or waiting on a specific module to load..?
How can I figure out why it’s behaving like this and what exactly might be missing?
Offline
anything fancy in /etc/default/grub?
better please post the outputs of
cat /etc/default/grub
cat /etc/fstab*_*
Offline
anything fancy in /etc/default/grub?
better please post the outputs ofcat /etc/default/grub cat /etc/fstab
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet usbcore.quirks=13d3:5a07:i"
GRUB_CMDLINE_LINUX=""
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=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 `videoinfo'
#GRUB_GFXMODE=auto
GRUB_GFXMODE=1920x1080x32
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
GRUB_THEME="/boot/grub/themes/Arch-Linux/theme.txt"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true
# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y
# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
#GRUB_DISABLE_OS_PROBER=false# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda2
UUID=4cbee289-af35-4375-9cf9-d6722f3091db / btrfs rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=/@ 0 0
# /dev/sda2
UUID=4cbee289-af35-4375-9cf9-d6722f3091db /home btrfs rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=/@home 0 0
# /dev/sda2
UUID=4cbee289-af35-4375-9cf9-d6722f3091db /var/cache/pacman/pkg btrfs rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=/@pkg 0 0
# /dev/sda2
UUID=4cbee289-af35-4375-9cf9-d6722f3091db /var/log btrfs rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=/@log 0 0
# /dev/sda1
UUID=7C4F-1048 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2Offline
hmm, no issues w/ UUIDs and stuff, have you tried turning off "aesthetics"?
Last edited by 5hridhyan (Yesterday 08:24:51)
*_*
Offline
hmm, no issues w/ UUIDs and stuff, have you tried turning off "aesthetics"?
Yeah, I tried disabling that too — same thing.
Offline
so you stopped forcing GFX resolution, also tried w/o your theme, yet 3-5 seconds delay, right?
if that's the case; where is the delay exactly? after "Loading Linux..." or before?
try removing quiet and use 7 instead of 3 (loglevel)
Last edited by 5hridhyan (Yesterday 09:03:03)
*_*
Offline
so you stopped forcing GFX resolution, also tried w/o your theme, yet 3-5 seconds delay, right?
if that's the case; where is the delay exactly? after "Loading Linux..." or before?
try removing quiet and use 7 instead of 3 (loglevel)
I tested it without any changes.
GRUB loads and I select Arch Linux. After that, there is a ~7-second black screen before any kernel messages appear. Then the boot logs start, and everything proceeds normally.
Offline
Mod note: Moving to System Administration.
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Online
earlier 5hridhyan asked
so you stopped forcing GFX resolution, also tried w/o your theme, yet 3-5 seconds delay, right?
try removing quiet and use 7 instead of 3 (loglevel)
but besstsoft@gmail.com responded
I tested it without any changes.
did you mean you haven't removed your themes/aesthetics and haven't stopped forcing GFX resolution, also didn't remove quiet and not added loglevel=7?
Edit:
GRUB loads and I select Arch Linux. After that, there is a ~7-second black screen before any kernel messages appear. Then the boot logs start, and everything proceeds normally.
so its before; it's happening in GRUB stage itself, again; I sus Arch-Linux/theme.txt or the 1920x1080x32 resolution handoff as culprit if you haven't tried removing it already.
Last edited by 5hridhyan (Yesterday 11:32:43)
*_*
Offline
earlier 5hridhyan asked
so you stopped forcing GFX resolution, also tried w/o your theme, yet 3-5 seconds delay, right?
try removing quiet and use 7 instead of 3 (loglevel)but besstsoft@gmail.com responded
I tested it without any changes.did you mean you haven't removed your themes/aesthetics and haven't stopped forcing GFX resolution, also didn't remove quiet and not added loglevel=7?
Edit:
GRUB loads and I select Arch Linux. After that, there is a ~7-second black screen before any kernel messages appear. Then the boot logs start, and everything proceeds normally.
so its before; it's happening in GRUB stage itself, again; I sus Arch-Linux/theme.txt or the 1920x1080x32 resolution handoff as culprit if you haven't tried removing it already.
I removed quiet and set loglevel=7.
I haven’t removed the GRUB theme yet, but the same delay was already present right after a fresh installation, before I made any customizations.
Offline
Please refrain from using unnecessary quotes
if the delay is in the GRUB stage, loglevel=7 won't show anything because the kernel hasn't started yet.
To prove it's not the hardware/firmware, you must eliminate the variables, Please comment out GRUB_THEME and GRUB_GFXMODE, run `grub-mkconfig -o /boot/grub/grub.cfg` and reboot
*_*
Offline
Please comment out GRUB_THEME and GRUB_GFXMODE, run `grub-mkconfig -o /boot/grub/grub.cfg` and reboot
I followed your instructions, but the behavior is the same.
After selecting Arch Linux in GRUB, there is a ~7-second black screen. Then the Arch Linux logo appears, and after that the kernel messages start showing.
Offline
another laptop: installed GRUB there as well, and saw the same delay
so No theme, No GFX resolution, same delay on two different machines
anyways, lets see
ls -lh /boot
cat /etc/mkinitcpio.confEdit:
that USB quirk (usbcore.quirks=13d3:5a07:i) in your cmdline is kinda sus, but it shouldn't contribute in a whole ~7 seconds delay, for sanity can you please try w/o it
it would be very odd for a argument of "NVME v/s SATA" that too for a 7 seconds delay
Last edited by 5hridhyan (Yesterday 15:38:39)
*_*
Offline
ls -lh /boot cat /etc/mkinitcpio.conf
drwxr-xr-x 4 root root 4,0K кві 24 10:13 EFI/
drwxr-xr-x 6 root root 4,0K кві 29 17:40 grub/
-rwxr-xr-x 1 root root 15M лют 27 19:22 intel-ucode.img*
drwxr-xr-x 3 root root 4,0K кві 29 18:50 loader/
-rwxr-xr-x 1 root root 16M кві 25 09:37 vmlinuz-linux*# vim:set ft=sh:
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect microcode modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev microcode modconf block filesystems fsck)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev microcode modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev microcode modconf block lvm2 filesystems fsck)
#
## This will create a systemd based initramfs which loads an encrypted root filesystem.
# HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"Offline
since you are using BTRFS does
cat /proc/cmdline shows `rootfstype=btrfs` and `rootflags=subvol=@` ?
also have you tried w/o `usbcore.quirks=13d3:5a07:i` (at least for temporarily?)
Last edited by 5hridhyan (Yesterday 19:50:08)
*_*
Offline
since you are using BTRFS does
cat /proc/cmdlineshows `rootfstype=btrfs` and `rootflags=subvol=@` ?
also have you tried w/o `usbcore.quirks=13d3:5a07:i` (at least for temporarily?)
Yes, I disabled usbcore.quirks=13d3:5a07:i (at least temporarily for testing).
cat /proc/cmdline
root=PARTUUID=4a94c7ce-f378-4b0d-9ed9-1e026506aa3b zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfsOffline
drwxr-xr-x 4 root root 4,0K кві 24 10:13 EFI/ drwxr-xr-x 6 root root 4,0K кві 29 17:40 grub/ -rwxr-xr-x 1 root root 15M лют 27 19:22 intel-ucode.img* drwxr-xr-x 3 root root 4,0K кві 29 18:50 loader/ -rwxr-xr-x 1 root root 16M кві 25 09:37 vmlinuz-linux
I just saw now, where is your initramfs? it's not in /boot with your kernel (AFAIK it does need to be accessible to GRUB, but it doesn’t strictly have to live in ESP if configured differently), Check if it's hiding inside the /@/boot subvolume on your Btrfs partition instead of the ESP!
find / -name "initramfs-linux.img" 2>/dev/nullif that's the case either mount the Btrfs subvolume containing the real /boot, or regenerate your initramfs directly to the ESP
does this mean limine was ok w/ that the whole time? not sure about that either
Edit:
re-wrote the whole post after questioning my sanity
Last edited by 5hridhyan (Yesterday 19:14:53)
*_*
Offline
Yesterday I switched to Limine, and interestingly, there is no such delay anymore — the system boots quickly.
However, I made a small mistake after switching from GRUB to Limine. Everything was working fine at first, but I forgot to remove the old GRUB files:
rm -rf /boot/grub
rm -rf /boot/EFI/grubAfter a few reboots into Limine, I started getting an error saying that GRUB was missing. It took me about 2 hours to figure out the issue, but I eventually fixed it, and now everything works properly.
Offline