[FIXED BY pyte!]mount: /var/lib/grub/esp: special device /dev/sda15 does not exist.

Discussion in 'Linux Beginners' started by Taxick, Oct 27, 2022.

  1. Taxick

    Taxick Member

    It seams to work :)
    How can test it works??
     
  2. pyte

    pyte Well-Known Member HowtoForge Supporter

    So that sounds about right then. This was a bit confusing, so sorry about that. You are running a software raid and the partition label is dos and not gpt. The installer of ubuntu was booted in uefi mode initially and installed grub-efi which is not correct for your setup.

    You can post the output of the following commands and i can check if you want to
    Code:
    ls /boot/grub
    ls /boot
    
    cat /boot/grub/grub.cfg
     
    Taxick likes this.
  3. Taxick

    Taxick Member

    Code:
    root@skytower ~ # ls /boot/grub
    fonts  gfxblacklist.txt  grub.cfg  grubenv  i386-pc  locale  unicode.pf2  x86_64-efi
    root@skytower ~ #
    Code:
    root@skytower ~ # ls /boot
    config-5.15.0-50-generic  efi   initrd.img                    initrd.img-5.15.0-52-generic  lost+found                    System.map-5.15.0-52-generic  vmlinuz-5.15.0-50-generic  vmlinuz.old
    config-5.15.0-52-generic  grub  initrd.img-5.15.0-50-generic  initrd.img.old                System.map-5.15.0-50-generic  vmlinuz                       vmlinuz-5.15.0-52-generic
    root@skytower ~ #
    
    Code:
    cat /boot/grub/grub.cfg
    #
    # DO NOT EDIT THIS FILE
    #
    # It is automatically generated by grub-mkconfig using templates
    # from /etc/grub.d and settings from /etc/default/grub
    #
    
    ### BEGIN /etc/grub.d/00_header ###
    if [ -s $prefix/grubenv ]; then
      set have_grubenv=true
      load_env
    fi
    if [ "${initrdfail}" = 2 ]; then
       set initrdfail=
    elif [ "${initrdfail}" = 1 ]; then
       set next_entry="${prev_entry}"
       set prev_entry=
       save_env prev_entry
       if [ "${next_entry}" ]; then
          set initrdfail=2
       fi
    fi
    if [ "${next_entry}" ] ; then
       set default="${next_entry}"
       set next_entry=
       save_env next_entry
       set boot_once=true
    else
       set default="0"
    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 initrdfail {
        if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
          if [ -z "${initrdfail}" ]; then
            set initrdfail=1
            if [ -n "${boot_once}" ]; then
              set prev_entry="${default}"
              save_env prev_entry
            fi
          fi
          save_env initrdfail
        fi; fi
    }
    function recordfail {
      set recordfail=1
      # GRUB lacks write support for diskfilter, so recordfail support is disabled.
    }
    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_msdos
    insmod part_msdos
    insmod diskfilter
    insmod mdraid1x
    insmod ext2
    set root='mduuid/daea028a05b06c871083745f97338231'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='mduuid/daea028a05b06c871083745f97338231'  8e61a7e7-5565-4901-b602-c8c39e0ff680
    else
      search --no-floppy --fs-uuid --set=root 8e61a7e7-5565-4901-b602-c8c39e0ff680
    fi
        font="/usr/share/grub/unicode.pf2"
    fi
    
    if loadfont $font ; then
      set gfxmode=auto
      load_video
      insmod gfxterm
      set locale_dir=$prefix/locale
      set lang=en_DK
      insmod gettext
    fi
    terminal_output gfxterm
    if [ "${recordfail}" = 1 ] ; then
      set timeout=30
    else
      if [ x$feature_timeout_style = xy ] ; then
        set timeout_style=hidden
        set timeout=0
      # Fallback hidden-timeout code in case the timeout_style feature is
      # unavailable.
      elif sleep --interruptible 0 ; then
        set timeout=0
      fi
    fi
    if [ $grub_platform = efi ]; then
      set timeout=30
      if [ x$feature_timeout_style = xy ] ; then
        set timeout_style=menu
      fi
    fi
    ### END /etc/grub.d/00_header ###
    
    ### BEGIN /etc/grub.d/05_debian_theme ###
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    ### END /etc/grub.d/05_debian_theme ###
    
    ### BEGIN /etc/grub.d/10_linux ###
    function gfxmode {
            set gfxpayload="${1}"
            if [ "${1}" = "keep" ]; then
                    set vt_handoff=vt.handoff=7
            else
                    set vt_handoff=
            fi
    }
    set linux_gfx_mode=text
    export linux_gfx_mode
    menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-8e61a7e7-5565-4901-b602-c8c39e0ff680' {
            recordfail
            gfxmode $linux_gfx_mode
            insmod gzio
            if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
            insmod part_msdos
            insmod part_msdos
            insmod diskfilter
            insmod mdraid1x
            insmod ext2
            set root='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'  de31220f-816e-41d9-b7ff-826ea87348fe
            else
              search --no-floppy --fs-uuid --set=root de31220f-816e-41d9-b7ff-826ea87348fe
            fi
            linux   /vmlinuz-5.15.0-52-generic root=UUID=8e61a7e7-5565-4901-b602-c8c39e0ff680 ro  nomodeset consoleblank=0
            initrd  /initrd.img-5.15.0-52-generic
    }
    submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-8e61a7e7-5565-4901-b602-c8c39e0ff680' {
            menuentry 'Ubuntu, with Linux 5.15.0-52-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-52-generic-advanced-8e61a7e7-5565-4901-b602-c8c39e0ff680' {
                    recordfail
                    gfxmode $linux_gfx_mode
                    insmod gzio
                    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                    insmod part_msdos
                    insmod part_msdos
                    insmod diskfilter
                    insmod mdraid1x
                    insmod ext2
                    set root='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'
                    if [ x$feature_platform_search_hint = xy ]; then
                      search --no-floppy --fs-uuid --set=root --hint='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'  de31220f-816e-41d9-b7ff-826ea87348fe
                    else
                      search --no-floppy --fs-uuid --set=root de31220f-816e-41d9-b7ff-826ea87348fe
                    fi
                    echo    'Loading Linux 5.15.0-52-generic ...'
                    linux   /vmlinuz-5.15.0-52-generic root=UUID=8e61a7e7-5565-4901-b602-c8c39e0ff680 ro  nomodeset consoleblank=0
                    echo    'Loading initial ramdisk ...'
                    initrd  /initrd.img-5.15.0-52-generic
            }
            menuentry 'Ubuntu, with Linux 5.15.0-52-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-52-generic-recovery-8e61a7e7-5565-4901-b602-c8c39e0ff680' {
                    recordfail
                    insmod gzio
                    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                    insmod part_msdos
                    insmod part_msdos
                    insmod diskfilter
                    insmod mdraid1x
                    insmod ext2
                    set root='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'
                    if [ x$feature_platform_search_hint = xy ]; then
                      search --no-floppy --fs-uuid --set=root --hint='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'  de31220f-816e-41d9-b7ff-826ea87348fe
                    else
                      search --no-floppy --fs-uuid --set=root de31220f-816e-41d9-b7ff-826ea87348fe
                    fi
                    echo    'Loading Linux 5.15.0-52-generic ...'
                    linux   /vmlinuz-5.15.0-52-generic root=UUID=8e61a7e7-5565-4901-b602-c8c39e0ff680 ro recovery nomodeset dis_ucode_ldr
                    echo    'Loading initial ramdisk ...'
                    initrd  /initrd.img-5.15.0-52-generic
            }
            menuentry 'Ubuntu, with Linux 5.15.0-50-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-50-generic-advanced-8e61a7e7-5565-4901-b602-c8c39e0ff680' {
                    recordfail
                    gfxmode $linux_gfx_mode
                    insmod gzio
                    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                    insmod part_msdos
                    insmod part_msdos
                    insmod diskfilter
                    insmod mdraid1x
                    insmod ext2
                    set root='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'
                    if [ x$feature_platform_search_hint = xy ]; then
                      search --no-floppy --fs-uuid --set=root --hint='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'  de31220f-816e-41d9-b7ff-826ea87348fe
                    else
                      search --no-floppy --fs-uuid --set=root de31220f-816e-41d9-b7ff-826ea87348fe
                    fi
                    echo    'Loading Linux 5.15.0-50-generic ...'
                    linux   /vmlinuz-5.15.0-50-generic root=UUID=8e61a7e7-5565-4901-b602-c8c39e0ff680 ro  nomodeset consoleblank=0
                    echo    'Loading initial ramdisk ...'
                    initrd  /initrd.img-5.15.0-50-generic
            }
            menuentry 'Ubuntu, with Linux 5.15.0-50-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-50-generic-recovery-8e61a7e7-5565-4901-b602-c8c39e0ff680' {
                    recordfail
                    insmod gzio
                    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                    insmod part_msdos
                    insmod part_msdos
                    insmod diskfilter
                    insmod mdraid1x
                    insmod ext2
                    set root='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'
                    if [ x$feature_platform_search_hint = xy ]; then
                      search --no-floppy --fs-uuid --set=root --hint='mduuid/bb6ae9f21c6e0c7a405168dad5741eda'  de31220f-816e-41d9-b7ff-826ea87348fe
                    else
                      search --no-floppy --fs-uuid --set=root de31220f-816e-41d9-b7ff-826ea87348fe
                    fi
                    echo    'Loading Linux 5.15.0-50-generic ...'
                    linux   /vmlinuz-5.15.0-50-generic root=UUID=8e61a7e7-5565-4901-b602-c8c39e0ff680 ro recovery nomodeset dis_ucode_ldr
                    echo    'Loading initial ramdisk ...'
                    initrd  /initrd.img-5.15.0-50-generic
            }
    }
    
    ### END /etc/grub.d/10_linux ###
    
    ### BEGIN /etc/grub.d/10_linux_zfs ###
    ### END /etc/grub.d/10_linux_zfs ###
    
    ### BEGIN /etc/grub.d/20_linux_xen ###
    
    ### END /etc/grub.d/20_linux_xen ###
    
    ### BEGIN /etc/grub.d/30_os-prober ###
    ### END /etc/grub.d/30_os-prober ###
    
    ### BEGIN /etc/grub.d/30_uefi-firmware ###
    ### END /etc/grub.d/30_uefi-firmware ###
    
    ### BEGIN /etc/grub.d/35_fwupd ###
    ### END /etc/grub.d/35_fwupd ###
    
    ### 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 ###
    root@skytower ~ #
    
     
  4. pyte

    pyte Well-Known Member HowtoForge Supporter

    Looks allright to me.

    If you can afford downtime, you can reboot the server now and see if it boots fine. However be aware that in case anything goes wrong, the downtime might be longer and make sure you either have physical access to the machine or some kind of remote console if this is a server at a different location.
     
  5. Taxick

    Taxick Member

    Hi..
    Here I update... I have rebooted my server and all works. - Thank you so much for the big help you provided...
    Please send your PayPal ADR, in PM, and I will give you a bear for big help!
     
    pyte likes this.
  6. pyte

    pyte Well-Known Member HowtoForge Supporter

    Great to hear this! But you don't too pay me :)
     
    Last edited: Oct 28, 2022
    Taxick likes this.
  7. Taxick

    Taxick Member

    OK. Again! Thanks a lot for your enormous help and time!
     
    pyte likes this.
  8. tyge

    tyge New Member

    Hey everyone,
    Thanks pyte and Taxick, I'm having trouble with a very similar configuration also on my server. Although I've avoided executing the first command posted by Taxick (as I know removing grub is potentially quite dangerous).
    In my case, seeing as `shim-signed` is still installed, I get the following issue when doing `apt autoremove --purge grub-efi`:
    Code:
    # apt autoremove --purge grub-efi-amd64-signed
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     shim-signed : Depends: grub-efi-amd64-signed but it is not going to be installed or
                            grub-efi-arm64-signed but it is not installable
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
    Is it safe to assume, that because the disks are DOS/non-EFI, that pruning shim-signed is a safe operation to do?
    Thanks!
     
  9. pyte

    pyte Well-Known Member HowtoForge Supporter

    If you are not booting in EFI mode it is safe to remove the shim-signed(former shim) package form your system. I assume you will get some scary warning from apt while doing this, but as long as you are 100% sure you don't boot in EFI mode you can ignore it.
     
    tyge likes this.
  10. Tomasz.Tomasz

    Tomasz.Tomasz New Member

    I have a similar problem, also with Ubuntu 22.04. There is no separate /boot partition. Not sure if I can safely remove shim-signed or not.




     
  11. pyte

    pyte Well-Known Member HowtoForge Supporter

    Please don't hijack other threads and create your own in the future, you can reference other threads there aswell.
    However it seems like there is something wrong with your configuration:
    Code:
    mount: /var/lib/grub/esp: special device /dev/sda15 does not exist.
    Could you please post the content of your /etc/fstab file?
     
    Th0m likes this.
  12. Tomasz.Tomasz

    Tomasz.Tomasz New Member

    I was not trying to hijack the thread - I've posted here on purpose after seeing identical error in the thread (and, the same operating system used - Ubuntu 22.04, using software RAID, recent thread):

    I don't have /dev/sda15 on my system, just as the OP (and I never had that partition/device) - and assumed this is the same "bug" I'm hitting. Please forgive me if you think it's hijacking the thread.


    The contents of /etc/fstab:

     
  13. pyte

    pyte Well-Known Member HowtoForge Supporter

    It's all good, i'm not a fan of doing this, as this notifies every other user that was activ on the thread before, but no worries it's ok i guess.

    So kinda a weird setup going on here, a RAID-1 over 4 disks. But yea i should be the same steps as i suggested earlier in the thread.
    Install grub-pc package and install grub again to make sure:
    Code:
    apt-get install grub-pc
    grub-install /dev/sda
    update-grub /dev/sda
    
    After regenerating the config you should be safe to remove the package you don't need. If you want to be able to boot of each disk you have to do this step for each drive sda sdb sdbc sdd.
    Make sure that the commands worked correctly before you then remove the packages you don't need with these commands:
    Code:
    apt autoremove --purge grub-efi-am64-signed
    apt autoremove --purge grub-efi-amd64-bin
    apt autoremove --purge grub-efi
     
  14. Tomasz.Tomasz

    Tomasz.Tomasz New Member

    Yes, I've tried these, but these commands don't work for me.
    grub packages installed on this system:

    Even though the package exists, apt says it does not (maybe because it's not properly installed):


    Same for two other packages:




    dpkg shows there were no changes:


     
  15. Tomasz.Tomasz

    Tomasz.Tomasz New Member

    So it seems I'm blocked on shim-signed package, which is an essential package.

    This worked without errors - just not sure if the system will boot afterwards :)

     
  16. pyte

    pyte Well-Known Member HowtoForge Supporter

    I'll pretty sure your system uses legacy boot as the partion has the bios_grub flag but you can make sure with this:
    Code:
    ls /sys/firmware/efi
    If this return "No such file or directory" you are not using efi boot and don't need the grub-efi packages at all. And rebooting should be fine, however please make sure you have either physical access or some sort of remote KVM available.
     
  17. Tomasz.Tomasz

    Tomasz.Tomasz New Member

    /sys/firmware/efi did not exist.
    It did boot indeed, thanks for your help!
     
  18. pyte

    pyte Well-Known Member HowtoForge Supporter

    Great! No worries :)
     

Share This Page