Hey guys,
I just installed skype on my Kali, and after installation I restarted the computer because it is 64bit, and the installation was multiArch, so I had to fix dependancies, followed this guide Click Here. After restart, I can't back on ... all I see is the bootloader EasyBCD coming with entries 1. Linux 2.Windows 8.1 , and if I select Linux, all i can see on my screen is Try (hd0,0) ext2. Completely stuck on this can't get back in now ... any ideas?

Edit: This i found that the problem was solved under fedora, but not sure if the commands on debian would be the same, anyone knows?

Recommended Answers

All 27 Replies

Why did you have to restart? Linux is not like Windows where you need to reboot after installing software. One other thing, Fedora 14 used the old grub bootloader. Your current debian installations uses grub2 (depending upon version - what is it?).

So, I am saying that you need to provide more information.

There was a pop up system needs to restart, do now or do later, had to enter password to restart as well(Did now).

It is using grub2 yes, what other information would you want me to provide? I did software update today as well had to install around 100 packages so all should've been up to date. Kind of seems the same problem as that one that grub has been overwritten or something. The usual case is upon start up EasyBCD provices me with the 2 boot options, if I choose Linux it takes me to grub boot leader, if I choose windows takes me straight to it

In that thread they are using super grub disk and try to boot in it with that one, easyBCD still detects the Linux partition (On windows currently) and I can make more entries of it in the boot loader but I tried and all result in the same error

I also use EasyBCD for my dual boots. From time to time, mostly after distribution upgrades (e.g., 13.10 -> 14.04), the link from the EasyBCD-configured bootloader to grub2 is broken by an update of grub2. Every time this has happened, the fix was simply to boot into Windows and use EasyBCD (an up-to-date version of it) to remove the broken Linux entry and re-create it again. I've never had problems with that.

If things are still broken after you have fresh entries from EasyBCD, then it might mean that your grub2 installation or configuration is corrupt. To fix that, you can basically follow these debian-family instructions here, except that you need to point the grub installation to the partition (not the hard drive) where you originally put grub2 (I assume it's on your Linux partition), so, you should do $ sudo grub-install --root-directory=/mnt/ /dev/sda1 (replacing "sda1" with whatever is the correct device identifier for your Linux partition), as opposed to what the instructions say about using "sda" or similar, which has the effect of installing grub on the MBR of the hard drive, which is not what you want.

After you've reinstalled grub2, you might have to go back to Windows again to recreate the Linux entry with EasyBCD.

commented: Thank you Mikey! +5

Hey Mike!
I actually looked into that super grub disk, I actually got into my Kali with it! I could probably just execute those commands from inside my Kali to create new grub yes?

Yes, if you are able to somehow boot into your Kali installation, then you can simply run $sudo update-grub2. If that doesn't work, just use the grub-install command.

fdisk -l gave me this, I am thinking wouldn't grub-install '(hd0,0)' be equavalent to udo grub-install --root-directory=/mnt/ /dev/sda1? Only asking because I gave away my live Ubuntu, would be easier if executed from inside Kali

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   716802047   358400000   83  Linux
/dev/sda2   *   716802048  1230469119   256833536    7  HPFS/NTFS/exFAT
/dev/sda3      1230471166  1250263039     9895937    5  Extended
Partition 3 does not start on physical sector boundary.
/dev/sda5      1230471168  1250263039     9895936   82  Linux swap / Solaris

EDIT: Sorry didn't see your previous post, will try upgrade-grub2 first :) thank you 1 sec trying it :p

The (hd0..) stuff is grub's way of identifying hard-drives, see the equivalence table here for their correspondance to the Linux device identifiers like /dev/sdX9 stuff. (hd0) is equivalent to /dev/sda and (hd0,0) is equivalent to /dev/sda1.

I tried upgrade and it went fine, went back to Windows deleted the boot entry of Linux, then made a new Linux boot entry for using Grub2, tried to boot in same error. Just plugged in the drive again to see what it finds and I get This , it says grub has the entries not grub2, so i am wondering whether the Linux entry in easyBCD has to be grub legacy instead?

Tried using grub legacy, didn't work either. But I can still get into my Kali using super grub disk. Not sure what to do now, perhaps get my live Ubuntu and install grub, perhaps new installation might help easyBCD to connect to it?

so i am wondering whether the Linux entry in easyBCD has to be grub legacy instead?

Definitely not. This is clearly grub2, and EasyBCD entries should be configured as such.

I think you should try the $ sudo grub-install /dev/sda1 (from your Kali installation). You can also do try grub-mkconfig to recreate the grub cfg files.

It's odd that your entries are marked as belonging to "hd1". Did you plug / unplug the hard-drive and plug it into different slots and stuff in-between doing some of these steps? This can cause serious problems for grub because grub contains static identifiers for hard-drives that only work for the way the hard-drives were plugged in at the time when grub was configured. Swapping hard-drives around while configuring things will make grub be out of sync with where the hard-drives are actually plugged in later.

If you have to change the hard-drive placement on the SATA slots, then things can get tricky as far as configuring grub. One possible solution is to create the grub configuration (with grub-mkconfig) and then, manually edit the "grub.cfg" file to change the hard-drive identifiers to what they will be once you put the hard-drive back where it belongs.

I haven't done anything to the placement of the harddrive, just restarted my laptop and got the error..

Um, here I tried this and an error

Kali@Slavi:/home/Kali$ sudo grub-install '(hd0,0)'
/usr/sbin/grub-setup: error: no such partition.

then I tried also

Kali@Slavi:/home/Kali$ sudo grub-install --root-directory=/mnt/ /dev/sda1
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition.  This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub-setup: error: will not proceed with blocklists.

Now tried this and will go to Windows make new entry and see if it works

Kali@Slavi:/home/Kali$ sudo grub-mkconfig
Generating 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
  load_env
fi
set default="0"
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 load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root fef413f9-48f6-46fc-a0c4-861f65478662
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos1)'
  search --no-floppy --fs-uuid --set=root fef413f9-48f6-46fc-a0c4-861f65478662
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root fef413f9-48f6-46fc-a0c4-861f65478662
Found background image: /usr/share/images/desktop-base/desktop-grub.png
insmod png
if background_image /usr/share/images/desktop-base/kali-grub.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-3.14-kali1-amd64
Found initrd image: /boot/initrd.img-3.14-kali1-amd64
menuentry 'Debian GNU/Linux, with Linux 3.14-kali1-amd64' --class debian --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root fef413f9-48f6-46fc-a0c4-861f65478662
    echo    'Loading Linux 3.14-kali1-amd64 ...'
    linux   /boot/vmlinuz-3.14-kali1-amd64 root=UUID=fef413f9-48f6-46fc-a0c4-861f65478662 ro initrd=/install/gtk/initrd.gz quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.14-kali1-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.14-kali1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root fef413f9-48f6-46fc-a0c4-861f65478662
    echo    'Loading Linux 3.14-kali1-amd64 ...'
    linux   /boot/vmlinuz-3.14-kali1-amd64 root=UUID=fef413f9-48f6-46fc-a0c4-861f65478662 ro single initrd=/install/gtk/initrd.gz
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.14-kali1-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
  No volume groups found
Found Windows 8 (loader) on /dev/sda2
menuentry "Windows 8 (loader) (on /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 7C42AA5804E7AF49
    drivemap -s (hd0) ${root}
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### 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  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
done

Still didn't work :p Here is my EasyBCD configuration ..

This is the entries (Usually Windows is not default but deleted the old Linux entry that got broken)
7438ba221ff0ec63ecf5ee2cdf370743

and this is how the Linux one was configured

4452945b0c89a5d453efadc68163ea64

then I tried also

$ sudo grub-install --root-directory=/mnt/ /dev/sda1

Be careful man! I remember telling you in a PM that you have to be careful about every step you take and not let there be things that you don't understand in the commands that you issue. What is your understanding of the option --root-directory=/mnt/?

This option comes from the instructions that I linked to that refer to installing grub from a LiveCD/USB. The instructions mount the Linux partition onto a folder that they call /mnt, and then, they direct the grub install command to that directory where the Linux partition is mounted, so that the grub installation is done for that Linux installation and not the current running instance (the LiveCD/USB).

If you have managed to boot into the Linux installation that you are trying to repair, then you must not put that option there.

When you are in the Linux installation you are trying to repair, the correct command to reinstall it on your Linux partition is:

$ sudo grub-install /dev/sda1

And if grub throws a fit about not wanting to do this "dangerous" operation (the grub developers really would prefer that you install grub as the primary bootloader, instead of chain-loading with EasyBCD, but I tend to disagree with them, because grub is too brittle, IMO, to be the main bootloader), then you have to "force" it to do it:

$ sudo grub-install /dev/sda1 --force

But I'll await the reply about the reconfiguration of grub to see if it works.

Oh, I see ... Thank you
well, sudo grub-mkconfig didnt do it, will try the force now:)

Tried sudo grub-install /dev/sda1 --force as Mike proposed, it installed no errors, made new entry still no success(Same error). This now makes no sense to me, should've worked well with a new grub

If I were you, I would try the boot-repair disk. It always repaired my broken boots in one click. Unfortunately, sourceforge is currently down, and I'm not sure you can download the disk.

Edit: if you have a live ubuntu disk, you can run boot-repair as explained here.

added repository then this

Kali@Slavi:/home/Kali$ sudo apt-get install -y boot-repair && (boot-repair &)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package boot-repair

But anyway, not sure how would this fix it really if a completely new boot loader didn't work. Also I am kind of thinking that all of this was caused by some of the updates that I did today before the restart, as mentioned on the original post I had about 100 new ones to upgrade maybe that influenced easyBCD and grub2 but I thought making a new grub and then new entry would completely fix it ... I guess I'll give it a try when sourceforge is up.

On the other hand, could that error now be because I am trying it on Kali instead of Ubuntu? Guess could give it a try from LiveUbuntu as well, or maybe install grub from live ubuntu following Mike's steps again?

hm, sourceforge is back.

commented: it worked =) +5

Thanks Gri, downloading it!

because I am trying it on Kali instead of Ubuntu

That should not make any difference. As far as things like Grub are concerned, any distribution that ultimately derives from Debian works the same and uses the same commands. Whether the instructions are from Ubuntu, Mint, or Kali, or Debian directly, the procedures should be exactly the same.

all i can see on my screen is Try (hd0,0) ext2

There is something weird about it. I don't get it. You keep putting up different identifiers for your drives. And apparently, (hd0,0) is a legacy grub number (because grub2 starts from 1 for the partition number). And why do you have an ext2 partition. And the fact that you can boot just fine from an alternative bootloader (super grub) means that your installation, kernel image and initrd image are fine. You should try to get to your grub's menu (not from "super grub", but from the installed grub2) and boot manually by following the instructions here (remember, these instructions, like others, require that you be smart about what parameters you enter, don't just blindly enter the commands!!). If you are able to boot manually, by smartly following those instructions, then there is no reason, other than a bad configuration, why you shouldn't be able to boot automatically (from the menu entry). Just remember / note-down the outputs (and names of things like the partition, images, etc.) you see during the manual booting procedure, because these are basically the things you should also find in the grub configurations, especially in /etc/grub.d/10_linux file.

Hey Mike,
I have no clue why is it saying ext2, here is gparted configuration, it is ext4 ...
ed3103e54aa269fef4fb24df9e7a088b

Also I am inside Kali now using the super grub, if you want me to show you something let me know, I will read through the guide you linked in a few, thank you

Try the boot-repair disk first.

commented: Sure =) +0

.

Okay .. so Here we go with my latest essay ...

I got repair disk on my usb and I ran it .. it worked well.

Then when I restarted, it was GRUB the default loader

where I get option to go to Kali or go to Win8

I went to Win8, it took me to easyBCD boot menu .. selected win8, went in made a new entry for easyBCD, restarted.
Once again grub was the first loader to appear, I clicked win8 went to easyBCD configuration, clicked Linux entry, still got my error message there ..

Restarted again using GRUB's menu now chose to go to Kali
It took me to command mode ... I clicked ctrl-alt-f7 to switch to gui mode and screen just went black. Restarted, while loading Kali I got into an error message .. like this so i followed what the guy in the commends said fsck /dev/sda1 and then i got prompted with many things saying that some stuff got corrupted others got changed etc and if i wanted them to be fixed .. I clicked yes ... after a reboot I got into GUI mode and it seems to be working as in I am able to boot into it

Well but now a bit weird that I get grub as default loader, and easyBCD still doesn't detect that grub loader. Not sure if i should just give up at this point as it works or not :D

Then when I restarted, it was GRUB the default loader

So, that means that the boot repair utility installed Grub on the MBR. There is no easy way to go back now. You pretty much have to keep it like that until the end of time.

easyBCD still doesn't detect that grub loader.

The entries that you created with EasyBCD are now useless. Grub is now on the MBR, and your old (broken) grub that you had on the Linux partition is no longer needed. You should go into Windows and remove the EasyBCD entries (other than Windows, of course!), this way, selecting Windows under grub should lead you directly to Windows, without having the EasyBCD entries menu appear in between.

Just so that you understand what is going on, let me just draw out how it used to be, and how it is now.

Before, you had the following sequence:

Windows Boot Loader (on MBR of '/dev/sda')
 v
Windows Boot Manager (on 'C:\' drive)
  (with entries added by EasyBCD)
 v
Grub 2 (on Linux partition '/dev/sda1')
 v
Linux booted!

Now, the setup has changed to this:

For booting Windows:

Grub 2 (on MBR of '/dev/sda')
 v
Windows Boot Manager (on 'C:\' drive)
 v
Windows booted!

For booting Linux:

Grub 2 (on MBR of '/dev/sda')
 v
Linux booted!

Now that you have grub on the MBR, the path is direct to Linux. This is the "recommended" way to do things (not recommended by me, but by the grub developers and the Linux distributers). The only thing I don't like with this setup is that if this installation of grub breaks, it's a lot more trouble to recover (but I guess that boot repair disk would do the trick), and in my experience, grub breaks fairly regularly (once every 2 years or so), as you've experienced right here with this issue you've just managed to solve.

And once you replace the Windows bootloader with grub, there is essentially no turning back (there are probably tools to restore the Windows bootloader, but I don't think it's easy, even Windows restore disks don't have that option, the last time I tried that). It's not worth the trouble to try to restore the Windows bootloader, just stick with grub, you're probably good for a couple of years before it breaks again.

some stuff got corrupted others got changed

Well, that explains it! There must have been some corruption in the file system or hard-drive and that's what prevented your old grub installation from working or getting fix by all these things you've tried that should have worked.

Great answer Mike, Thank you and Gribouillis for helping me out

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.