[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why does setting a language in Grub take 1.5 minutes?
From: |
raingloom |
Subject: |
Re: Why does setting a language in Grub take 1.5 minutes? |
Date: |
Mon, 16 May 2022 02:04:21 +0200 |
On Sun, 15 May 2022 18:06:41 -0500
Katherine Cox-Buday <cox.katherine.e@gmail.com> wrote:
> At some point, after a long time with no problems, my system began
> taking an unreasonably long time to boot. I only reboot my system
> ~1/week for updates, so I never took the time to debug the problem,
> and therefore, I couldn't really connect the issue with any changes
> that either I or Guix had made.
>
> I'm now trying to debug a wake from hibernate issue, and this
> involves a lot of rebooting, so I had to figure this out. I have, and
> I'm unsure why what I found is causing issues, and whether it's a
> Guix bug, or something wrong with my setup.
>
> Here's my partition layout:
>
> #+begin_example
> $ lsblk
> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
> nvme0n1 259:2 0 931.5G 0 disk
> ├─nvme0n1p1 259:3 0 549M 0 part /boot/efi
> └─nvme0n1p2 259:4 0 931G 0 part
> └─cryptroot 253:0 0 931G 0 crypt /var/lib/docker
> /gnu/store
> /
> #+end_example
>
> There are no filesystem errors.
>
> Here's the bootloader portion of my operating-system:
>
> #+begin_example
> (bootloader
> (bootloader-configuration
> (bootloader grub-efi-bootloader)
> (targets (list "/boot/efi"))
> (keyboard-layout keyboard-layout)))
> #+end_example
>
> Here's part of my /boot/grub/grub.cfg, generated by Guix. I've added
> some echo statements to help debug.
>
> #+begin_example
> echo "C"
>
> # Set 'root' to the partition that contains /gnu/store.
> search --file --set
> /gnu/store/9lcbyg3pkb38chhv0yzk6hn3arxfjfgk-grub-image.png echo "D"
>
>
> if loadfont unicode; then
> set gfxmode=auto
> insmod all_video
> echo "E"
> insmod gfxterm
> echo "F"
> fi
>
> terminal_output gfxterm
> echo "G"
>
> insmod png
> echo "H"
> if background_image
> /gnu/store/9lcbyg3pkb38chhv0yzk6hn3arxfjfgk-grub-image.png; then echo
> "H.1" set color_normal=light-gray/black
> echo "H.2"
> set color_highlight=yellow/black
> echo "H.3"
> else
> set menu_color_normal=cyan/blue
> set menu_color_highlight=white/blue
> fi
> echo "I"
> Localization configuration.
> search --file --set
> /gnu/store/mdrdpd6aw9ikx1wzx6ljydpzvnvwpq0y-grub-locales/en@quot.mo
> echo "J" set
> locale_dir=/gnu/store/mdrdpd6aw9ikx1wzx6ljydpzvnvwpq0y-grub-locales
> echo "K" set lang=en_US
> echo "L"
> insmod keylayouts
> echo "M"
> keymap /gnu/store/pgg50qzm7d2q6k0f82c43fmsxwpwrjvx-grub-keymap.us
> echo "N"
> #+end_example
>
> And here are the time elapsed between steps (at least the ones that
> didn't go by too quickly), in seconds:
>
> C -> D : 13
> H -> I : 13
> I -> K : 27
> K -> M : 157 (!!!!)
> M -> N : 20
>
> That's almost 4 minutes from unlocking the luks volume to get to the
> Grub menu, and then another 4 minutes to boot into the Kernel.
>
> I then removed the keyboard configuration and changed the theme so
> that it wouldn't load an image:
>
> #+begin_example
> (bootloader
> (bootloader-configuration
> (bootloader grub-efi-bootloader)
> (targets (list "/boot/efi"))
> (theme (grub-theme
> (inherit (grub-theme))
> (image #f)))))
> #+end_example
>
> It produces a grub.cfg with this in it (again, echoes added):
>
> #+begin_example
> echo "A"
> set
> locale_dir=/gnu/store/mdrdpd6aw9ikx1wzx6ljydpzvnvwpq0y-grub-locales
> echo "B" set lang=en_US
> echo "C"
> #+end_example
>
> Between B -> C, it still takes 157 seconds.
>
> Does anyone know why this is taking so long or how to fix it? As it
> is, I'll have to manually edit my grub.cfg after every system
> reconfigure.
>
> Thank you,
A guess: since LUKS seems to be involved, mayyybe it's an entropy
issue? There was a time when booting took a while on my Thinkpad
because the ssh key generations was not set up correctly or something.
A quick way to check would be to hit random keys, if it makes booting
much faster, it's probably an entropy issue.