Symbol 'grub_file_filters' not found on Kali Linux VM

24,279

What worked for me on OSX is combining Daniel Simon's answer and ddburrjr's comment.

  1. Download a fresh .iso image from the official web page of Kali Linux.
  2. Start VirtualBox and open the settings for the Kali Linux virtual machine. Add the downloaded iso image in the 'storage page' as a virtual cd. How? Select 'Controller: IDE' and press CD button on the right, 'choose disk' and then select the downloaded .iso file.
  3. Press F12 during boot and press 'C' to to boot from CD_ROM
  4. Select 'Live (amd64)' in the Boot menu to run Kali Linux from .iso file.
  5. Follow these instructions https://www.youtube.com/watch?v=5spKO02G5v4
  6. Done! Kali Linux boots up again from virtual harddrive
Share:
24,279

Related videos on Youtube

AlexiaK
Author by

AlexiaK

Updated on September 18, 2022

Comments

  • AlexiaK
    AlexiaK almost 2 years

    After apt-get update; apt-get upgrade successfully on my Kali Linux VM, restarted to finish some installations and was taken to grub rescue mode.

    On grub rescue >

    ls, returns:

    (hd0) (hd0,msdos1) (hd0,msdos5)
    

    set, returns:

    cmdpath=(hd0)
    prefix=(hd0,msdos1)/boot/grub
    root=hd0,msdos1
    

    I ran ls on (hd0)/boot, (hd0,msdos1)/boot, (hd0,msdos5)/boot, and confirmed results of bootable images only on (hd0,msdos1)

    insmod linux, returns following grub error:

    symbol 'grub_file_filters' not found 
    

    Wanted to see where grub is looking so tried insmod kali which returned:

    /boot/grub/i386-pc/kali.mod not found
    

    Hence it seems that the linux module is found before I get the error.

    From research, found that this error is filesystem/USB device related but since this is a Virtual image (and I'm on VirtualBox) I am unsure of how to fix it.

    No problem in installing again from scratch but curious about this error and what it is referring to / how it can be resolved.

    Thanks for any insights

    Additional Note: This is the output on my screen from the moment I boot the VM and after I execute some of the ls commands mentioned above

    error: symbol ‘grub_file_filters’ not found. 
    Entering rescue mode... 
    grub rescue> ls 
    (hd0) (hd0,msdos5) (hd0,msdos1) 
    grub rescue> ls (hd0) 
    (hd0): Filesystem is unknown. 
    grub rescue> ls (hd0,msdos5) 
    (hd0,msdos5): Filesystem is unknown. 
    grub rescue> ls (hd0,msdos1) 
    (hd0,msdos1): Filesystem is ext2. 
    grub rescue> ls (hd0)/boot
    error: unknown filesystem
    grub rescue> ls (hd0,msdos5)/boot
    error: unknown filesystem
    grub rescue> ls (hd0,msdos1)/boot
    ./ . ./ System.map-4.18.0-kali2-amd64 config-4.18.0-kali2-amd64 
    initrd.img—4.18.0-kali2-amd64 vmlinuz-4.18.0-kali2-amd64 
    grub/ config-4.19.0-kali5-amd64 vmlinuz-4.19.0-kali5-amd64 
    System.map-4.19.0-kali5-amd64 initrd.img-4.19.0-kali5-amd64
    grub rescue> 
    
    • huertanix
      huertanix almost 5 years
      Could you explain what "ls on (hd0)/boot, (hd0,msdos1)/boot, (hd0,msdos5)/boot" looks like? I've tried ls (hd0)/boot, ls hd0/boot and ls hd0 and none of these work. This is very different environment than what people may be used to using a shell in userspace.
    • AlexiaK
      AlexiaK almost 5 years
      Hi @huertanix, this is not an actual shell. It is the shell for grub rescue mode. The initial ls -without any arguments- showed me the different directories/partitions. Using ls again, with those directories as arguments and /boot, listed their content. In my case, results were only returned for (hd0,msdos1)/boot. 'Set' showed the current setting which I can change. I tried changing it to a different configuration but still no luck. Seems that the current setting (seen above after 'set') is the correct one as I only found contents in (hd0,msdos1/boot). Grub rescue has limited commands
    • AlexiaK
      AlexiaK almost 5 years
      @huertanix I have added an additional note in my original question containing the specific output of the ls commands in grub rescue mode
    • AlexiaK
      AlexiaK almost 5 years
      Hi @ddburrjr , this worked for me! If you would like to gain rep points, please post the link as an answer and write the step by step instructions so I will upvote your answer as the solution :)
    • Vasconcelos1914
      Vasconcelos1914 almost 5 years
      Try dpkg-reconfigure grub2
  • bruntime
    bruntime almost 5 years
    Can you please provide information / instructions on how to do this? Thanks.
  • AlexiaK
    AlexiaK almost 5 years
    Thanks Daniel. I'm immediately taken to the grub rescue prompt (and above error). Only "step" I can take before that (when I Start Kali from VirtualBox) is press F12 to view the boot device selection... no choice to boot the live image of Kali and reinstall the bootloader. Let me know if there is a way to follow your recommendation.
  • user2173353
    user2173353 almost 5 years
    I did fdisk -l and got the disk name /dev/sda and some devices (/dev/sda1, /dev/sda2, /dev/sda5). Then I did a mkdir /media/test-mount and a mount /dev/sda /media/test-mount, but I got a wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error.. I the boot partition is the one listed on the devices 'table', when I try to do mount /dev/sda1 /media/test-mount it works. But then, when I do a grub-install, it says command not found.Any ideas why?Also, should I do a grub-install /media/test-mount or a grub-install /dev/sda1?
  • AlexiaK
    AlexiaK almost 5 years
    Thanks Daniel. I had issues after step 7. Can you clarify the use of the chroot command? First, I could not find the boot partition using ldisk, then did fdisk -l and found /dev/sda1 having the * sign under the Boot column. So I proceeded with step 4, skipped 5,6 then did 7. Not sure how to use chroot in my case. Just chroot /mnt ? (as I mounted /dev/sda1 to /mnt). In that case, on step 8 I get the error: cannot find a device for /boot/grub (is /dev mounted?). I tried to do the grub-install on sda1 because I skipped steps 5,6, is that right? Thanks again