3

I have Ubuntu 12.04 installed through Wubi on my laptop. For some reason when i click on Ubuntu on start up (when you have to either select windows or Ubuntu) I get the following screen, the grub cursor keeps flashing.

Gnu grub version 1.99-21 Ubuntu 3.4 

Minimal bash-like line editing is supported. For the first word, tab lists possible
command completions. Anywhere else tab lists possible device or file completions. 

grub>

Could you tell me what I can do to fix this problem and to start Ubuntu normally?

2 Answers 2

3

Sometimes the root.disk, the virtual partition that Wubi uses to boot, gets corrupted. This is a file that lives in the \ubuntu\disks\ directory. If Grub (inside wubildr) cannot mount the root.disk, it cannot show the grub menu (which is stored on the root.disk) and then it just drops you to a grub prompt to await further instruction.

There is nothing you can do from the grub prompt until you've figured out the problem with the root.disk and, odds are, there is NTFS corruption. It's fairly common, for example, if you've performed a hard shutdown or reboot. In some cases, the reason isn't clear.

What you need to do is to run chkdsk /f (or /r) from Windows on the drive you installed Wubi. If you installed on the C:\ drive this will require a full restart.

To run chkdsk on Windows 7 (the first checkbox corresponds to chkdsk /f and the second to chkdsk /r:

chkdsk on Windows7

If prompted, restart the computer and boot into Windows to complete the chkdsk making sure not to 'Hit a key' to abort it.

After that, check the ubuntu\disks\ directory to make sure the root.disk is still there. In some cases, the ubuntu\disks\ directory itself is no longer present. If either are missing, you need to look for them as chkdsk will often recover corrupted files/directories to hidden folders named \found.000, \found.001 etc. These are hidden and protected OS directories by default (Windows 7) so they won't show up in Explorer. I find it easiest just to use the Command prompt.

To do this, right-click on CMD.EXE and select "Run as administrator". Change to the drive the \ubuntu directory is located on, and search for the hidden \found.??? directories.

e.g. if the root.disk is missing, you're looking for a file > 5GB in size. If you know what size your install was it helps. In this case, it's 15GB

C:\>dir /a:h
C:\>cd \found.000
C:\found.000>dir
 Volume in drive C is OS
 Volume Serial Number is B4B7-99A8

 Directory of C:\found.000

19/07/2011  02:02 PM    15,000,000,000 file0000.chk
               1 File(s) 15,000,000,000 bytes
               0 Dir(s)  222,258,069,504 bytes free

C:\found.000>move file0000.chk \ubuntu\disks\root.disk
        1 file(s) moved.

If the whole \ubuntu\disks directory is missing, you're looking for a directory named dir0000.chk, and inside that you'll find the correctly named root.disk and swap.disk, so you can just move the directory back in place:

C:\>cd \found.000

C:\found.000>dir
 Volume in drive C is OS
 Volume Serial Number is B4B7-99A8

 Directory of C:\found.000

19/10/2012  04:51 PM    <DIR>          .
19/10/2012  04:51 PM    <DIR>          ..
19/07/2011  02:02 PM    <DIR>          dir0000.chk
               0 File(s)              0 bytes
               3 Dir(s)  222,258,069,504 bytes free

C:\found.000>dir dir0000.chk
 Volume in drive C is OS
 Volume Serial Number is B4B7-99A8

 Directory of C:\found.000\dir0000.chk

19/10/2012  04:51 PM    <DIR>          .
19/10/2012  04:51 PM    <DIR>          ..
24/02/2012  12:22 AM    <DIR>          boot
06/11/2012  09:28 AM    13,000,000,000 root.disk
15/11/2011  09:28 PM       268,435,456 swap.disk
               2 File(s) 13,268,435,456 bytes
               3 Dir(s)  127,904,968,704 bytes free

C:\>move dir0000.chk \ubuntu\disks
        1 dir(s) moved.

Recovery isn't guaranteed in all cases depending on the extent of corruption. Note that the root.disk may be correctly in place before running chkdsk and then be removed after running it.

Reference: http://ubuntu-with-wubi.blogspot.ca/2011/08/missing-rootdisk.html

5
  • Hi, i found root.disk (it was already there in the folder) but it was a 0kb file. So I rebooted and I get the same error. So; 1 - What should I do next? 2 - How could I still access the my saved files from ubuntu (if its not working)? 3 - If I want to uninstall and reinstall ubuntu, will that fix the problem? Many thanks.
    – user106237
    Dec 14, 2012 at 9:25
  • If chkdsk cannot fix the file then you can't access it to retrieve any data. Reinstalling will 'fix' your problem, but it completely wipes out the previous install so it's the last resort when there's no hope of recovery.
    – bcbc
    Dec 14, 2012 at 17:22
  • would it be possible, to access my files that are within ubuntu through windows?
    – user106237
    Dec 15, 2012 at 8:43
  • You can access files from Windows using ext2read.blogspot.com if you have a good root.disk. But if it's showing as 0KB then... seems like it's pretty corrupted. In that case you might have better luck trying a raw data recovery tool like photorec.
    – bcbc
    Dec 15, 2012 at 16:46
  • Thanks @bcbc. Really thanks. It worked for me after a one-day-trouble-shooting.
    – Arslan Ali
    May 1, 2015 at 15:45
1

I had a similar problem, but it wasn't wubi. It was with a dual boot install of ubuntu. The following helped me:

Booting From grub

This is how to set the boot files and boot the system from the grub> prompt. We know from running the ls command that there is a Linux root filesystem on (hd0,1), and you can keep searching until you verify where /boot/grub is. Then run these commands, using your own root partition, kernel, and initrd image:

    grub> set root=(hd0,1)
    grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
    grub> initrd /boot/initrd.img-3.13.0-29-generic
    grub> boot
The first line sets the partition that the root filesystem is on. The second line tells GRUB the location of the kernel you want to use. Start typing /boot/vmli, and then use tab-completion to fill in the rest. Type root=/dev/sdX to set the location of the root filesystem. Yes, this seems redundant, but if you leave this out you'll get a kernel panic. How do you know the correct partition? hd0,1 = /dev/sda1. hd1,1 = /dev/sdb1. hd3,2 = /dev/sdd2. I think you can extrapolate the rest.

The third line sets the initrd file, which must be the same version number as the kernel.

The fourth line boots your system.

On some Linux systems the current kernels and initrds are symlinked into the top level of the root filesystem:

    $ ls -l /
    vmlinuz -> boot/vmlinuz-3.13.0-29-generic
    initrd.img -> boot/initrd.img-3.13.0-29-generic

So you could boot from grub> like this:

    grub> set root=(hd0,1)
    grub> linux /vmlinuz root=/dev/sda1
    grub> initrd /initrd.img
    grub> boot

Source: http://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .