1

I have a HP Notebook 15-f004wm, which I use as my daily driver.
However, there's a strange issue where GRUB "freezes" (a.k.a can't get past "Loading initrd...") whenever I try to boot.
The only way to get it to boot is to follow these exact steps:

1: Turn off the computer. (Shutdown, restarting won't work.)
2: When the computer turns on, hit F9. (You can't let it boot normally into GRUB.)
3: From the EFI boot menu, select GRUB.
4: Select the entry for the OS.
5: Do this every time you need to boot into GRUB.

I can confirm this happens on:

  • Arch Linux
  • Ubuntu (14.10, 15.10, 16.04)
  • Fedora
  • OpenSUSE Tumbleweed (20161219, 20161222)

This is the output of df (NOTE: I ran it on my OpenSUSE Tumbleweed system, which is my main and currently only system)

Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs         1960468        8   1960460   1% /dev
tmpfs            1967532    39856   1927676   3% /dev/shm
tmpfs            1967532     1664   1965868   1% /run
tmpfs            1967532        0   1967532   0% /sys/fs/cgroup
/dev/sdb3      372305920  9853856 360835712   3% /
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/named
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/mariadb
/dev/sdb3      372305920  9853856 360835712   3% /var/tmp
/dev/sdb3      372305920  9853856 360835712   3% /.snapshots
/dev/sdb3      372305920  9853856 360835712   3% /var/opt
/dev/sdb3      372305920  9853856 360835712   3% /var/crash
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/machines
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/pgsql
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/mysql
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/mailman
/dev/sdb3      372305920  9853856 360835712   3% /var/lib/libvirt/images
/dev/sdb3      372305920  9853856 360835712   3% /var/log
/dev/sdb3      372305920  9853856 360835712   3% /usr/local
/dev/sdb3      372305920  9853856 360835712   3% /var/cache
/dev/sdb3      372305920  9853856 360835712   3% /boot/grub2/x86_64-efi
/dev/sdb3      372305920  9853856 360835712   3% /tmp
/dev/sdb3      372305920  9853856 360835712   3% /var/spool
/dev/sdb3      372305920  9853856 360835712   3% /srv
/dev/sdb3      372305920  9853856 360835712   3% /boot/grub2/i386-pc
/dev/sdb1         487472     4656    482816   1% /boot/efi
/dev/sdb3      372305920  9853856 360835712   3% /opt
/dev/sdb5      307050000  2319044 304730956   1% /home
tmpfs             393508        0    393508   0% /run/user/483
tmpfs             393508       12    393496   1% /run/user/1000
/dev/sdb2      292671484 38865508 253805976  14% /run/media/myusername/The Mountpoint

My grub.cfg looks like this:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set btrfs_relative_path="y"
export btrfs_relative_path
if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
  load_env
fi

if [ "${env_block}" ] ; then
  load_env -f "${env_block}"
fi

if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   if [ "${env_block}" ] ; then
     save_env -f "${env_block}" next_entry
   fi
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else                                                                                         
  menuentry_id_option=""                                                                     
fi                                                                                           

export menuentry_id_option                                                                   

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod btrfs
set root='hd1,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  b7b576c5-366e-4a44-bf79-0eb87357b09d
else
  search --no-floppy --fs-uuid --set=root b7b576c5-366e-4a44-bf79-0eb87357b09d
fi
    font="/usr/share/grub2/unicode.pf2"
fi

if loadfont $font ; then
echo "Please press t to show the boot menu on this console"
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
insmod part_gpt
insmod btrfs
set root='hd1,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  b7b576c5-366e-4a44-bf79-0eb87357b09d
else
  search --no-floppy --fs-uuid --set=root b7b576c5-366e-4a44-bf79-0eb87357b09d
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
insmod png
set theme=($root)/boot/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
  set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=8
fi
if [ -n "$extra_cmdline" ]; then
  submenu "Bootable snapshot #$snapshot_num" {
    menuentry "If OK, run 'snapper rollback' and reboot." { true; }
  }
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE Tumbleweed'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b7b576c5-366e-4a44-bf79-0eb87357b09d' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod btrfs
        set root='hd1,gpt3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  b7b576c5-366e-4a44-bf79-0eb87357b09d
        else
          search --no-floppy --fs-uuid --set=root b7b576c5-366e-4a44-bf79-0eb87357b09d
        fi
        echo    'Loading Linux 4.8.14-1-default ...'
        linuxefi /boot/vmlinuz-4.8.14-1-default root=UUID=b7b576c5-366e-4a44-bf79-0eb87357b09d  ${extra_cmdline} resume=/dev/sdb4 splash quiet showopts
        echo    'Loading initial ramdisk ...'
        initrdefi /boot/initrd-4.8.14-1-default
}
submenu 'Advanced options for openSUSE Tumbleweed' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-b7b576c5-366e-4a44-bf79-0eb87357b09d' {
        menuentry 'openSUSE Tumbleweed, with Linux 4.8.14-1-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.8.14-1-default-advanced-b7b576c5-366e-4a44-bf79-0eb87357b09d' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt3'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  b7b576c5-366e-4a44-bf79-0eb87357b09d
                else
                  search --no-floppy --fs-uuid --set=root b7b576c5-366e-4a44-bf79-0eb87357b09d
                fi
                echo    'Loading Linux 4.8.14-1-default ...'
                linuxefi /boot/vmlinuz-4.8.14-1-default root=UUID=b7b576c5-366e-4a44-bf79-0eb87357b09d  ${extra_cmdline} resume=/dev/sdb4 splash quiet showopts
                echo    'Loading initial ramdisk ...'
                initrdefi /boot/initrd-4.8.14-1-default
        }
        menuentry 'openSUSE Tumbleweed, with Linux 4.8.14-1-default (recovery mode)' --hotkey=3 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.8.14-1-default-recovery-b7b576c5-366e-4a44-bf79-0eb87357b09d' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt3'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  b7b576c5-366e-4a44-bf79-0eb87357b09d
                else
                  search --no-floppy --fs-uuid --set=root b7b576c5-366e-4a44-bf79-0eb87357b09d
                fi
                echo    'Loading Linux 4.8.14-1-default ...'
                linuxefi /boot/vmlinuz-4.8.14-1-default root=UUID=b7b576c5-366e-4a44-bf79-0eb87357b09d  ${extra_cmdline} 
                echo    'Loading initial ramdisk ...'
                initrdefi /boot/initrd-4.8.14-1-default
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
if [ -f "/.snapshots/grub-snapshot.cfg" ]; then
  source "/.snapshots/grub-snapshot.cfg"
fi
### END /etc/grub.d/80_suse_btrfs_snapshot ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###

### BEGIN /etc/grub.d/95_textmode ###

    # On EFI systems we can only have graphics *or* serial, so allow the user
    # to switch between the two
    hiddenentry 'Text mode' --hotkey 't' {
        set textmode=true
        terminal_output console
    }
### END /etc/grub.d/95_textmode ###

How can I stop GRUB from freezing?

  • 18.04, when it reaches the initrd line, only on the 1st boot, it stops here, and I have to ctrl+alt+del, after that soft reboot it will boot normally :( – Aquarius Power Jan 12 at 0:31
-1

Can you please post output of df also describe about grub config. also expalain what exactly meant by "GRUB from freezing"? will help in debugging.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.