4

I had Window 8 and Linux Mint. Mint broke and I installed Antergos. Now I lost GRUB completely and I have to use Windows Boot Manager to boot into Windows. So I used Boot Repair CD to try to fix that, but it goes on doing its thing then it stops asking me to "add GRUB2 repositories in Antergos sources list [package name here like "EFI amd64 GRUB"]"

How do I do that when I can't boot into Antergos? I've just installed it and that's the whole point I need to fix GRUB.. To boot into Antergos.

EDIT:

Here's a Boot Repair CD report: http://paste.ubuntu.com/9796903

Mars
  • 295

3 Answers3

4

This is not going to be straightforward so bear with me.

I cannot give you specific instructions as each system is a bit different but here are the major steps you need to do to fix your issue.

  • The first thing you need to do is boot the system from a live medium. Any Linux distro should work as long as it has the same architecture of the installed distro.

  • The second thing you need to do is chroot to your already installed system. I will lay down this example and this one for you to have an idea.

You will have to mount all the necessary directories first before you are able to chroot.

Once you are chrooted in, you may think of the environment as your installed OS. You can make the changes necessary, install grub both on the OS and on the boot sectors and configure it as needed.

Once you have done these steps successfully, you will have a fully working and configured grub.

Digisec
  • 461
  • 2
  • 6
  • I did that. Failed miserably for about 8 hours of trying. I'm out of ideas completely. I'll try again tomorrow. Thanks for your help, though I'm still open for suggestions as to how I can specifically install GRUB based on the partition table, in the original question, for dual-booting with Windows 8. – Mars Jan 21 '15 at 00:33
  • 1
    @Mars "I did that" doesn't really tell me much. What did you try exactly ? Trust me, these steps work with certainty. You install grub on the OS first and then you use grub-install (or which is the way to install it depending on the version of grub) to install it on the MBR of /dev/sda if you only have one drive and sda is the one having the OS. – Digisec Jan 21 '15 at 13:51
  • Thank you. Mentioning "chrooting" lead me to the answer eventually. – Mars Jan 27 '15 at 12:48
  • Why do you need to chroot? Why can't you just boot up a live-cd and install GRUB to every single sda/sdb etc if there's nothing to salvage? (not onto the USB disk you're booting from though...) – pzkpfw Jan 27 '15 at 13:17
2

You can probably fix this problem by reinstalling grub. You need to mount your existing root directory to /mnt and then arch-chroot /mnt. Then you can follow the instructions at GRUB- Arch Linux Wiki to reinstall grub. If you absolutely cannot get grub to work, you can always try a different bootloader.

waylon531
  • 119
  • 2
    Although this answer might be a start, a lot more detail is necessary for the OP to be able to solve the problem, can you edit your post and add those steps? – Anthon Jan 20 '15 at 19:30
  • Perhaps you could explain this a bit more? – slm Jan 20 '15 at 19:55
1

I found out that "Rufus", which I always use for everything related to burning bootable USBs, is burning EFI systems wrong (or at least, burning Antergos image wrong). I used "USBWriter" from Arch wiki and it burned correctly. Now I booted EFI live system correctly (previously I had to switch my system bootloader to legacy mode to boot it).

Then when I installed Antergos on the desired drive. I had to chroot into the newly created system and reinstall Grub2 from there.

For steps used, I've combined both this and this tutorials to achieve the desired results.

I used mount commands from the second tutorial and modprobe and grub-install commands from the first one.

It took two (almost) full days to figure it out, mostly because I used the wrong tool, Rufus, for this particular job. But hey, that's why I installed Antergos, to learn. Now I know "chrooting".

UPDATE:

Just made a written note with the exact commands, here they are:

Boot into a Live CD of Antergos and do this:

 modprobe efivarfs

 mount -t efivarfs efivarfs /sys/firmware/efi/efivars

 blkid

 mount /dev/sda$ /mnt
(mount root on mnt)

 mount /dev/sda1 /mnt/boot
(mount ESP on /mnt/boot)

 df -h

 mount -t proc proc /mnt/proc

 mount -t sysfs sys /mnt/sys

 mount -o bind /dev /mnt/dev

 mount -t devpts pts /mnt/dev/pts/

 chroot /mnt /bin/bash

 source /etc/profile

 grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub_uefi --recheck

 grub-mkconfig -o /boot/grub/grub.cfg
Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232
Mars
  • 295
  • If you're booting EFI, then you'd probably do better to drop grub altogether. You can boot both Windows and any 3.3+ vanilla linux kernel natively from firmware - any bootloader is only a hassle you don't need. – mikeserv Jan 27 '15 at 13:09
  • In my testing, I made Antergos an option in the firmware using EasyBCD. It showed an option but it didn't work. But admittedly, I did it when Antergos was installed wrongly by being burned by Rufus. I haven't tried it again afterwards, but I see what you mean. I think if I did it again now it would work natively. – Mars Jan 27 '15 at 13:14
  • 1
    No no - BCD is a bootloader - Windows's bootloader (or, more accurately, a registry hive which stores the bootloader's information - it's ugly). I'm saying you can directly execute both the Windows bootloader and the linux kernel from firmware without any intermediate - though a menu helper can be useful (but something far less complicated than grub would be desirable). Maybe see this and/or this for a little back-story. – mikeserv Jan 27 '15 at 13:29