Results 1 to 4 of 4

Thread: grub not booting anymore on BIOS machine with symbol 'grub_file_filters' no found

  1. #1

    Exclamation grub not booting anymore on BIOS machine with symbol 'grub_file_filters' no found

    Problem:

    - the new version of grub (2.04) introduced in the lastest version of Tumbleweed is (obviously) not compatible with old version (2.02) due to introducing new symbols (e.g.: the 'grub_file_filters' mentionned in the error message)
    - the new version of grub *refuses* to install the BIOS bootloader (i386-pc) on 'unsafe' partition that require blocklist (e.g.: ext2/3/4).

    So if you update 2.02 -> 2.04 on a machine that is still using BIOS for its firmware, and have your "/boot" partition on the list of places where the grub bootloader needs to be installed,
    the "update-bootloader" step (which is supposed to call "grub2-install" for every location) fails and you're left with an unbootable system (all the copies of the bootloader are still the old 2.02 version, the grub modules are the new 2.04 and incompatible) which can't even be recovered from the grub recovery.

    You only get error message about "symbol 'grub_file_filters' no found" no matter what you do.

    Solution:

    - boot into a recovery system
    - run
    Code:
    sudo grub2-install --target=i386-pc /dev/sda'
    to manually install grub2's i386-pc bootloader version 2.04 onto your partition table.
    - the system is now bootable, reboot
    - run YaST and reconfigure the bootloader to ONLY INSTALL in drives' master boot record, NOT IN "/boot" partition.

    Note:
    This only affects older machine running BIOS firmware. Newer machines that support EFI firmware are not affect. There the bootloader doesn't require any embeding, it's just a regular .EFI executable file stored on the FAT32 System partition.

    (Bug 1156351 filed)

  2. #2
    Join Date
    Sep 2014
    Location
    Germany
    Posts
    359

    Default Re: grub not booting anymore on BIOS machine with symbol 'grub_file_filters' no found

    Quote Originally Posted by dr-yak View Post
    Problem:

    - the new version of grub (2.04) introduced in the lastest version of Tumbleweed is (obviously) not compatible with old version (2.02) due to introducing new symbols (e.g.: the 'grub_file_filters' mentionned in the error message)
    - the new version of grub *refuses* to install the BIOS bootloader (i386-pc) on 'unsafe' partition that require blocklist (e.g.: ext2/3/4).
    If i recall correctly this behavior (GRUB2 does not like to use blocklists) is not really new.

    Quote Originally Posted by dr-yak View Post
    ... So if you update 2.02 -> 2.04 on a machine that is still using BIOS for its firmware, and have your "/boot" partition on the list of places where the grub bootloader needs to be installed, ...
    Are you using MBR or GPT partition scheme?

    Regards

    susejunky

  3. #3
    Join Date
    Sep 2012
    Posts
    5,184

    Default Re: grub not booting anymore on BIOS machine with symbol 'grub_file_filters' no found

    Most likely it was mismatch between bootloader location used by BIOS and bootloader location configured in system. But now, after MBR was overwritten, it is too late to investigate it. You should still make sure your system is actually configured to use MBR as bootloader location, otherwise you will get the same issue in the future.

  4. #4
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    12,739
    Blog Entries
    3

    Default Re: grub not booting anymore on BIOS machine with symbol 'grub_file_filters' no found

    Quote Originally Posted by dr-yak View Post
    - the new version of grub (2.04) introduced in the lastest version of Tumbleweed is (obviously) not compatible with old version (2.02) due to introducing new symbols (e.g.: the 'grub_file_filters' mentionned in the error message)
    - the new version of grub *refuses* to install the BIOS bootloader (i386-pc) on 'unsafe' partition that require blocklist (e.g.: ext2/3/4).
    It is compatible enough. I have tested this under all boot condititions that I could think of. And it worked each time.

    The update should reinstall grub for the new update.

    (Bug 1156351 filed)
    There is also Bug 1156073 reported by another user with the same problem.

    In the case of that user, he thought that he was booting from a partition "/dev/sda3", but he was actually booting from the MBR. His system updated the boot code in "/dev/sda3", because that's what the system information said. But the grub he really used (in "/dev/sda") was not updated.

    Likely something similar was happening for you.

    So now you have manually installed grub to the MBR.

    You should run Yast bootloader. And if that says you are booting any other way, then change it to use the MBR there, too. That will probably install grub yet again (should be harmless). But it should also update the system information on where grub is installed. That's to make sure that this does not happen again.

    By the way, the update works fine when booting from "/boot". I updated my laptop, which boots from "/boot". And it still boots fine with grub 2.04.
    openSUSE Leap 15.1; KDE Plasma 5;
    testing Leap 15.2Alpha

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •