How to fix "error: unknown filesystem. grub rescue> [duplicate]
I get this error:
Error: unknown filesystem.
grub rescue>
I'm not exactly sure what I did. I believe I installed Ubuntu over Windows on my Acer netbook. I then tried to install Linux Mint, but it wouldn't start installing.
I turned the netbook off and back on. Now I get the error.
I have read a lot of other questions like this, but in my case I cannot boot a CD. If I put a Ubuntu CD or a Linux Mint CD into my external CD/DVD drive and change my BIOS to boot the CD-ROM first, it just gives me the same error screen.
Update copied from comment dated 2012-05-26 02:54:29Z
Here are some results from my commands:
grub rescue>ls (hd0) (hd0,msdos5) (hd0,msdos1)
grub rescue>ls (hd0,msdos5) unknown filesystem
grub rescue>ls (hd0,msdos1) unknown filesystem
grub rescue>ls (hd0) unknown filesystem
The following solved the issue for me, I have Windows 7 & Ubuntu 10.04. After running the following commands I don't need to run these every time and am able to boot both the OS normally:
set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal
Now once you boot into Ubuntu, run the following two commands as well:
sudo update-grub
sudo grub-install /dev/sda
Note: /dev/sda
is drive where you want your GRUB installed, it can be /dev/sdb
or something else, but is usually /dev/sda
Take into consideration that the hd0
could be X (0,1,2..) depending on the order of disks and the 6
could be also different, it could be (hd0,gpt7)
, for example.
First boot into Ubuntu from an ISO image.
-
Locate the Ubuntu partition and the folder containing the GRUB modules.
The GRUB folder containing the modules must be located so the correct modules can be loaded. This folder would have been created during the initial installation of Ubuntu and should be located in the Ubuntu partition. This folder would normally be located at either (hdX,Y)/boot/grub or (hdX,Y)/usr/lib/grub/i386-pc. Find your existing Ubuntu partition and the module folder.
ls # List the known drives (hdX) and partitions (hdX,Y) ls (hdX,Y)/ # List the contents of the partition's root ls (hdX,Y)/boot/grub # Normal location of the Grub 2 modules. ls (hdX,Y)/usr/lib/grub/i386-pc # Alternate location of the Grub 2 modules.
-
ls
- should return all known drives (hdX) and partitions (hdX,Y) -
ls (hdX,Y)/
- should show the contents of the root directory of the partition. - If you get an "error: unknown filesystem" this is not your Ubuntu partition.
- If this is the Ubuntu partition, you will see the Ubuntu folders, including lost+found/, home/, boot/ and vmlinuz and initrd.img. Use this address as the first part of the next command.
-
ls (hdX,Y)/boot/grub
- should display several dozen *.mod files. This is the folder you are looking for. - If you don't find the modules, try the alternate location: ls (hdX,Y)/usr/lib/grub/i386-pc
-
-
Load the modules.
set prefix=(hdX,Y)/<path to modules>
- This command must correctly point to the folder containing the GRUB modules. The address should be the one in the previous section which displayed the modules.
Examples:
set prefix=(hd0,5)/boot/grub set prefix=(hd1,1)/usr/lib/grub/i386-pc
-
Load modules:
insmod linux insmod loopback insmod iso9660 insmod fat # If ISO is located on fat16 or fat32 formatted partition. insmod ntfs # If ISO is located on an NTFS formatted partition. insmod nftscomp # If NTFS compression is used on the partition. Load if you aren't sure.
A "file not found" error means that the path in the prefix is incorrect or the specific module does not exist. The prefix setting may be reviewed with the set command. Rerun the "set prefix=" command with the proper path.
-
Locate the Ubuntu ISO file.
- Using the combinations of ls commands, locate the Ubuntu ISO image.
-
Create the loopback device.
loopback loop (hdX,Y)/<path to ISO>/<ISO-name.iso>
-
Example:
loopback loop (hd1,1)/path/to/ubuntu-10.04.1-desktop-i386.iso
-
-
Load the Linux kernel and initrd image.
set root=(loop) linux /casper/vmlinuz boot=casper iso-scan/filename=/<ISO-name.iso> noprompt noeject initrd /casper/initrd.lz
- If the path to the ISO or filename is not correct, the boot will halt at the BusyBox screen and produce a message stating "can't open /dev/sr0: No medium found".
- Note: If the ISO file is not in the / folder, include the path in the
iso-scan/filename= entry
. See second example. -
Examples:
linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso linux /casper/vmlinuz boot=casper iso-scan/filename=/my-iso/ubuntu-10.04.1-desktop-i386.iso
-
Boot.
That should be it. If the commands ran without any messages/errors, the commands were accepted as entered. It's now time to boot:
boot
Further information is in forum post HOWTO: Boot & Install Ubuntu from the Grub Rescue Prompt
Now do this after booting:
How to fix: error:unknown file system grub rescue? is post with the same problem and is solved as below,
-
sudo mount /dev/sdaX /mnt
Here,
sdaX
is your boot partition. You can get a list withsudo blkid
like this,/dev/sda1: LABEL="Windows XP" UUID="96A4390DA438F0FB" TYPE="ntfs" /dev/sda3: LABEL="Ubuntu 11.04" UUID="b61fcae3-7744-45b4-95b9-7528d50a3652" TYPE="ext4" /dev/sda5: LABEL="Se7en" UUID="A2DC9D71DC9D4109" TYPE="ntfs" /dev/sda6: LABEL="Development" UUID="DEB455A1B4557CC9" TYPE="ntfs" /dev/sda7: LABEL="EXTRA" UUID="D8A04109A040F014" TYPE="ntfs" /dev/sda8: LABEL="SONG" UUID="46080FCD080FBAC7" TYPE="ntfs" /dev/sda9: LABEL="BACKUPS" UUID="766E-BC99" TYPE="vfat"
Note:
sdaX
must be Linux partition. sudo grub-install --boot-directory=/mnt/boot /dev/sda
sudo update-grub
Boot your system from the Ubuntu Live CD and try this, it worked wonders for me.
- Ubuntu Boot Repair Utility
Before reading: The answer below is meant for Ubuntu users who have just updated/recovered/reinstalled/installed OS X. It's likely that the answer will work if this isn't the case (for example, if there are any inconsistencies in your partition table), but I'm not sure.
For me, this happened after updating to OS X Mavericks (10.9). Basically what may have happened is that OS X created a recovery partition ("Recovery HD") that the system only detects sometimes. For example, GParted in Ubuntu will see the recovery partition fine, but when listing the partitions in terminal (fdisk -l
), you may not see the partitions.
Diagnosing the issue: Did the OS X update/format/recovery cause this problem?
In order to diagnose that this is indeed the case, first use GRUB rescue to boot into Ubuntu. In order to do this, follow this page or see if any of the other answers on this question can get you into Ubuntu. For me, running the below commands temporarily allowed me to boot the correct partition. Depending on how your hard drives and partitions are set up, it may vary:
grub rescue> set prefix=(hd0,6)/boot/grub
grub rescue> insmod normal
grub rescue> normal
Now, log in to Ubuntu and check GParted. If you see the recovery partition, open up a terminal and type fdisk -l
to see if that detects the recovery partition. If it doesn't list the same partitions, check the device/partition column and see if those also don't match up (for example, in GParted your boot partition may be /dev/sda4
, but it is /dev/sda3
when running fdisk
). If this is the case, keep reading. If it's not, it looks like your partitions are lined up correctly. You can either choose to keep reading and follow the instructions (which, if GRUB was working before the restore/reinstall/etc..., this should work properly), or just reinstall GRUB on the right partition.
Fixing it by removing/merging the recovery partition
To fix this issue, what we want to do is get rid of the recovery partition - it's causing issues and inconsistencies, and removing it shouldn't cause damage. Ideally you want to merge it with the normal HFS+ OS X partition, so follow this question and answer here. After merging, GRUB should be back to normal.
This happened to me after I delete a partition that was located before the /boot
partition.
To fix it, I ran an Ubuntu live USB stick, mounted the root partition to /mnt
and the boot partition to /mnt/boot
, and I ran this command (replace /dev/sda
with the correct hard disk):
sudo grub-install --root-directory=/mnt --boot-directory=/mnt/boot /dev/sda