Меню

Cannot find efi directory grub install ошибка

I just now encountered this issue. I booted a rescue USB stick. Let me describe the fix that worked for me.

Prowling around with gdisk -l /dev/sda I can see that my original root partition is /dev/sda2. To access it, I type sudo mount /dev/sda2 /mnt

So far, so good. Let me first describe what didn’t work, and then a solution. Some pages advise chroot /mnt and then grub-install, but this won’t work; giving the grub-install: error: cannot find EFI directory. error.

Following other suggestions, I see that my EFI partition is /dev/sda1 so I try sudo mount /dev/sda1 /mnt/boot/efi and chroot again. Now, grub complains about missing /dev so I mount --bind /dev/ /mnt/dev. … But then grub complains about something else. It’s snowballing out of control. chroot is not the answer.

What did work was this: grub-install -d /mnt/usr/lib/grub/x86_64-efi --boot-directory=/mnt/boot /dev/sda

Note that the -d flag is mandatory, as otherwise, grub tries to use /usr/lib/grub/i386-pc from the rescue image, which does not contain the correct stuff.

Yayy! My system is now bootable again!

This article documents issues that might arise when trying to use or install GRUB2.

Installation errors

Installing GRUB2 from within a chroot

When a separate /boot partition exists, be sure to mount the target root partition before chrooting, but do not mount the /boot partition until after chrooting to the new environment. This is required because grub-mkconfig will not detect /boot as a separate partition and will assume the /boot directory and the root (/) directory are on the same partition.

Reinstalling the GRUB2 EFI boot manager entry

In case the boot manager entries need to be restored, they can be re-added without invoking grub-install. Load the efivars kernel module and install sys-boot/efibootmgr:

root #emerge --ask sys-boot/efibootmgr

Next add a boot menu entry:

root #efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "gentoo" --loader "\EFI\gentoo\grubx86.efi"

grub-install: error: cannot find EFI directory.

Note
The following examples presumes a 64-bit EFI GRUB2 install, adjust accordingly for 32-bit EFI.

root #grub-install --target=x86_64-efi

grub-install: error: cannot find EFI directory.

Properly setting the GRUB_PLATFORMS variable in /etc/portage/make.conf (the first time!) as listed above should resolve this error. Set the GRUB_PLATFORMS variable then re-emerge GRUB2 using the following command:

root #emerge --ask --newuse sys-boot/grub:2

In the case this error persists try forcing the install to the EFI directory by issuing the grub-install command with correct parameters for the --target and --efi-directory options:

root #grub-install --target=x86_64-efi --efi-directory=/boot

grub-install: Attempting to install GRUB2 to a disk or partition

root #grub-install /dev/sda1

Attempting to install GRUB to a partition disk or to a partition.  This is a BAD idea.
Embedding is not possible.  GRUB can only be installed in this setup by using blocklists. 
However, blocklists are UNRELIABLE and their use is discouraged.

There could be many reasons for this error to come up.

No mounted /boot

A /boot partition is not mounted.

No BIOS boot partition while using BIOS-GPT setup

This could mean there is not a EF02 or bios_boot partition to embed the core.img file in.

Creating a little partition of a few hundreds kilobytes may be enough, although it is good practice to align this partition to 2048 sectors to avoid a performance penalty with the disk. A 1 MiB partition should work well.

Attempting to install GRUB2 in a partition

When attempting to install GRUB2 in a partition e.g. /dev/sda5 (for instance because the boot loader will be chainloaded by a different boot loader), simply add --force option switch to force install.

Missing target detection

If grub-install does not print any errors message or if the error message is about scanning disk files and several platforms are enabled in /etc/portage/make.conf while nothing is installed on the disk, then edit the /sbin/grub-install script with a text editor of choice.

Change the platform variable to the appropriate platform for the current use case. The platform must be rightly set when emerging sys-boot/grub, else it will be incorrectly configured in the /sbin/grub-install script.

For example, to set the platform for «PC», change platform=qemu to platform=pc.

Note
This is true for GRUB version 1.99x only… for GRUB2 the correct file to investigate can be found at /etc/grub.d/00_header; change transform="s,grub,grub-qemu," to transform="s,grub,grub2," for instance to install rightly with grub-$platform-install.

grub-setup: no post-MBR gap

root #grub-bios-setup

grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!
grub-bios-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.
            However, blocklists are UNRELIABLE and its use is discouraged.
grub-bios-setup: error: If you really want blocklists, use --force.

This error means that GRUB2 could not find the usual gap between the MBR and first partition of a disk. It is possible that the gap does not exist. Some tools (e.g. LiveUSB disk installer) format disks so that the first partition starts at sector 1 instead of 2048.

Repartitioning might be necessary to resolve the issue.

grub-install: embedding area is unusually small

root #grub-install /dev/sda

grub-install: warn: Your embedding area is unusually
small. core.img won't fit in it.
grub-install: 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.
grub-install: error: will not proceed with blocklists.

There is not enough room at the beginning of the disk before the first partition.

In general this is a bit of trouble to fix. One or more partitions need to be resized in order to leave some free space at the beginning of the drive. The GParted LiveCD or SystemRescueCD are excellent tools to make this job less difficult.

If the swap partition is the first partition on the disk (e.g. /dev/sda1) it is possible to simply remove the existing swap space partition and re-partition the space. This resolution would avoid the need for booting into a live medium in order to resize a root (/) partition.

Device          Start        End   Sectors   Size Type
/dev/sda1        2048    1050623   1048576   512M EFI System
/dev/sda2     1050624  837228543 836177920 398.7G Linux filesystem
/dev/sda3  1452748800 1465147391  12398592   5.9G Linux swap
/dev/sda4   837228544 1452748799 615520256 293.5G Microsoft basic data

Partition table entries are not in disk order.


Disk /dev/sdb: 14.6 GiB, 15636364800 bytes, 30539775 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00378159


Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1  *     2048 30539774 30537727 14.6G  c W95 FAT32 (LBA)

I am kinda lost here. I am not very experienced with ubuntu and might need a little detailed solution. I installed Windows 10 after ubuntu 16.10 and when I try to reinstall grub2 and it gives me the following error:
Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Please help!

Tony Lancer's user avatar

asked Nov 25, 2016 at 13:49

Evion Cane's user avatar

10

Try this:

Boot the Ubuntu Live Usb-Dvd.

Open a terminal,

Press Ctrl+Alt+T

Run it:

sudo -i
mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot/efi
grub-install --boot-directory=/mnt/boot --bootloader-id=ubuntu  --target=x86_64-efi --efi-directory=/mnt/boot/efi  
reboot

answered Nov 25, 2016 at 15:28

kyodake's user avatar

kyodakekyodake

14.7k3 gold badges36 silver badges44 bronze badges

5

The root cause of your problem is Temporary failure resolving 'al.archive.ubuntu.com This means that when you attempted this process the server was temporarily unavilable. You have 2 options.

1) Try again

2) Choose a different mirror By Opening Software & Updates and selecting a different server in the Download from drop down menu. (Choosing Other will run a series of tests to determine which is the best server for you.)

answered Nov 25, 2016 at 16:07

Elder Geek's user avatar

Elder GeekElder Geek

35k25 gold badges91 silver badges175 bronze badges

#1 2020-01-10 16:42:32

light9876
Member
Registered: 2020-01-05
Posts: 108

[SOLVED] grub-install: error «cannot find EFI directory»

I never had the following problem when I used to install Arch on an HDD.

But not on my new SSD, this is what I’m doing (note that when I do fdisk -l I can see the SSD has a GPT partitioning table):

1. I have been reading the following guides all day (and I’m following them):
https://wiki.archlinux.org/index.php/Installation_guide
https://wiki.archlinux.org/index.php/Partitioning
https://wiki.archlinux.org/index.php/Arch_boot_process

2. cgdisk /dev/sda and I create 3 partitions:
sda1; 2GB, code:ef00, name=efi
sda2; 200GB, code:8300, name=root
sda3; ~750GB, code:8302, name=home

3. I format all 3 partitions:
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3

4. Mount root:
mount /dev/sda2 /mnt

5. Install base:
pacstrap /mnt base base-devel linux grub efibootmgr
mkinitcpio -p linux

6. : All of the following commands give the same error: grub-install: error «cannot find EFI directory»
grub-install /dev/sda
grub-install —target=x86_64-efi /dev/sda
grub-install —efi-directory=/boot/efi —target=x86_64-efi /dev/sda

Can someone tell me what I am doing wrong please?

Last edited by light9876 (2020-01-10 18:37:40)

#2 2020-01-10 17:09:51

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 6,780
Website

Re: [SOLVED] grub-install: error «cannot find EFI directory»

You forgot to mount the EFI system partition, it should be FAT-formatted (not ext4) and you should (arch-)chroot in before running the GRUB commands.

Step 4 should be

# mount /dev/sda2 /mnt
# mkdir -p /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi

And step 6 should start with

Note that the UEFI grub-install command doesn’t need a block device.

EDIT: and the mkinitcpio command should be run from the chroot (although you probably don’t need to run it at all).

Last edited by Head_on_a_Stick (2020-01-10 17:11:24)

#3 2020-01-10 17:15:38

light9876
Member
Registered: 2020-01-05
Posts: 108

Re: [SOLVED] grub-install: error «cannot find EFI directory»

Thank you, I will try this immediately!

I am already doing arch-chroot /mnt but I forgot to mention it.

I will try now to format correctly and to mount /mnt/boot/efi

Last edited by light9876 (2020-01-10 17:15:58)

#4 2020-01-10 18:46:02

light9876
Member
Registered: 2020-01-05
Posts: 108

Re: [SOLVED] grub-install: error «cannot find EFI directory»

Thank you so much everything works okay now!

Only for future reference: the information you provided is written here:
https://wiki.archlinux.org/index.php/GR … allation_2

One final question:
I installed lxde and lxdm; then I logged in my user account. Now the partition /dev/sda3 that I created for /home, is not mounted at /home.

Instead, /home directory and all of its contents are resident on /dev/sda2

How can I fix this please?

Last edited by light9876 (2020-01-10 18:46:36)

#5 2020-01-10 18:58:31

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 6,780
Website

Re: [SOLVED] grub-install: error «cannot find EFI directory»

light9876 wrote:

How can I fix this please?

Create an fstab line to mount /home correctly then move the contents over to the new partition.

If you need more help with that then please open a new thread, it is off-topic here.

#6 2020-01-10 20:09:57

light9876
Member
Registered: 2020-01-05
Posts: 108

Re: [SOLVED] grub-install: error «cannot find EFI directory»

Thank you so much! I am very happy with the generous support you and everyone else have given me! : ) God bless you!

Last edited by light9876 (2020-01-10 20:10:39)

I’m new at Arch Linux and I’m trying to install it on my laptop. When I try to use this command:

grub-install --recheck /dev/sda

I get error messages like this:

Installing for x86_64-efi platform.

grub-install: error: cannot find EFI directory.

Just want to know what I did wrong.

Community's user avatar

asked Oct 26, 2016 at 3:21

osman-coskun's user avatar

1

Create an ESP partition Fat32 , the minimum size is 100MiB , the recommended size is 512 MiB then run the following command :

grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=grub --boot-directory=esp --debug

Regenerate grub.cfg

grub-mkconfig -o esp/grub/grub.cfg

answered Oct 26, 2016 at 9:41

GAD3R's user avatar

GAD3RGAD3R

3,6222 gold badges18 silver badges32 bronze badges

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

Lw-Cui opened this issue

May 5, 2017

· 18 comments


Closed

grub-install: Error cannot find EFI directory

#5

Lw-Cui opened this issue

May 5, 2017

· 18 comments

Comments

@Lw-Cui

Hi Michiel,
I use Ubuntu 16.04 and when doing grub-install --boot-directory="$PWD/boot" /dev/loop0 I got error grub-install: cannot find EFI directory.
How should I fix it?
Thanks.

@Shuliyey

@MichielDerhaeg

Yeah, I kindof mentioned this in the docs. GRUB defaults to EFI on your system, so you have to specify that you want to use the old MBR BIOS bootloader with the --target=i386-pc. If you followed the docs, this is required. An EFI installation would require a GPT partition table and an EFI partition.

@Lw-Cui

Thanks.
But when using --target=i386-pc it said grub-install:Error /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
Does that mean I need install 32bit version?

@MichielDerhaeg

@ric96 mentioned that you might need to install grub-pc-bin first on Ubuntu if your system uses EFI, could you try that?

@Lw-Cui

Yes this issue has been moved forward:)
But now qemu show error: no such device: 1da96cd4-faaf-4a02-ac75-ec0bc60e4b65.
Maybe it’s wrong PARTUUID number?
Thanks for your patience!

@MichielDerhaeg

Did you add the --modules=part_msdos option to grub-install?

@Lw-Cui

Yes. I tried grub-install again to make sure it has this option.

@MichielDerhaeg

@Lw-Cui

Yes.
By the way I replaced it using root=/dev/sda1 and this error still occurred, while qemu with root=/dev/sda1 works fine all the time.

@MichielDerhaeg

The root option in grub.cfg isn’t used by GRUB to determine the root device, it’s for the kernel. The root devices is determined by GRUB when you do grub-install. Do you have the same issue when using the makefile to build the image?

@Shuliyey

what’s the output of

and this line in boot/grub/grub.cfg

linux /boot/bzImage quiet init=/bin/sh root=PARTUUID=........
boot

@Lw-Cui

@Shuliyey
fdisk -l image is

Disk image: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x02170d17

设备       启动 Start 末尾 扇区 Size Id 类型
image1           2048 204799 202752  99M 83 Linux

and boot/grub/grub.cfg is


linux /boot/bzImage quiet init=/bin/sh root=PARTUUID=02170d17-01
boot

@Lw-Cui

@MichielDerhaeg
OK I will try Makefile tomorrow, currently I build them by hand.
You write awesome instruction:)

@Shuliyey

can you try upload your grub.cfg and /etc/fstab, i got a feeling it’s something to do one of these two @Lw-Cui

@MichielDerhaeg

@Lw-Cui
Thanks!
@Shuliyey
I disagree, I believe this is an error caused grub-install not installing the right modules so it can find the right filesystem. I think this error occurs before any file can even be read.

@MichielDerhaeg

I could confirm my suspicion if you would do grub-install with the --verbose option and pass me the output somehow.

@Shuliyey

@Lw-Cui

@MichielDerhaeg Yes Makefile works well! Thanks a lot:)
Then I could re-execute those commands by hand and find what’s going wrong.

  • Home
  • Forum
  • The Ubuntu Forum Community
  • Ubuntu Official Flavours Support
  • General Help
  • [SOLVED] GRUB Install Error: Cannot find EFI directory

  1. Exclamation GRUB Install Error: Cannot find EFI directory

    Hi everyone,
    I have a dual boot, 64 bit laptop with Windows 8 on one partition and Ubuntu 14.04 on the other. Windows recently updated and now GNU GRUB no longer appears when I boot my computer. I found information on the following website on how to repair it: http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd
    This worked fine until I got to this command:

    Code:

    grub-install /dev/sda

    When I put this command into terminal, it says:

    Code:

    grub-install: error: cannot find efi directory

    I found information about this error on the following website: https://bbs.archlinux.org/viewtopic.php?id=178423
    There are two commands suggested on that site, one does not work at all, the other gives me the error

    Code:

    /boot/efi does not appear to be the efi partition

    or something like that.
    Could someone please help me get GRUB back so I can use Ubuntu again please?
    Thanks in advance.

    Last edited by Kpenguin; April 9th, 2015 at 03:44 PM.


  2. Re: GRUB Install Error: Cannot find EFI directory

    Your link is to the full chroot (CHange ROOT) to use the kernel from live installer, but be working in your system. But it is a bit older for BIOS based systems. You also have to mount the efi partition and any other system partitions that some have as separate partitions. You should just need to add a mount of the efi partition.

    Usually most desktops do not have separate partitions for other system folders, a few do have separate /boot but that is not recommended for most desktops.

    UEFI chroot
    http://askubuntu.com/questions/53578…er/57380#57380

    But often easier to use Boot-Repair.

    Boot Repair -Also handles LVM, GPT, separate /boot and UEFI dual boot.:
    Precise, Trusty, Vivid, & Utopic all should work now with current ppa
    https://help.ubuntu.com/community/Boot-Repair

    https://help.ubuntu.com/community/Gr…_Broken_System


  3. Re: GRUB Install Error: Cannot find EFI directory

    Use the Ubuntu installation CD/flash drive (or any Linux) and go to the boot repair site, download and run it selecting the option to Create Boot Info Summary. Post the output text file here as it will have more detailed information on your system(s).


  4. Re: GRUB Install Error: Cannot find EFI directory

    Hi,
    I tried the boot repair application and it worked great! I now have GRUB and Ubuntu back.This is rather minor, but I now also have a bunch of other stuff that wasn’t there before (see attached screenshot).
    SAM_0463.JPG
    I previously just had Ubuntu, Advanced options for Ubuntu, Windows boot manager, and System setup. Is there some way to get rid of the stuff in between?
    Again, this is minor and not vital
    Thanks for your help!


  5. Re: GRUB Install Error: Cannot find EFI directory

    HP seems to have a lot of its recovery/repair files as efi files in the standard efi(ESP) partition. So Boot-Repair just adds them to the grub menu.
    Boot-Repair normally creates a new 25_custom folder. That is just from Boot-Repair so you can edit at will.

    Just to have a backup.
    sudo cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
    Edit :
    gksudo gedit /etc/grub.d/25_custom
    Or:
    sudo nano /etc/grub.d/25_custom
    Then do:
    sudo update-grub


  6. Re: GRUB Install Error: Cannot find EFI directory

    So, I need to follow those steps and then re-run boot manager, or just update GRUB?


  7. Re: GRUB Install Error: Cannot find EFI directory

    Just the steps shown.
    Boot-Repair would probably add them back again.


  8. Re: GRUB Install Error: Cannot find EFI directory

    Wow…. That was easy. Thanks for your help!


Tags for this Thread

Bookmarks

Bookmarks


Posting Permissions

  • Печать

Страницы: [1]   Вниз

Тема: Ошибка при установке загрузчика, grub install: error: cannot find efi directory.  (Прочитано 1448 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
logosios

Я ставил Linux kde neon(можно сказать kubuntu, они оба на ядре ubuntu, вроде), при установке вышла ошибка
Command «grub-install — — target=x86_64 efi directory= boot/efi —bootloader-id=neon force»returned   non-zero exit status 1.
Я подумал что не установился загрузчик grub и попробовал поставить его через терминал,но мне вышла ошибка grub install: error: cannot find efi directory.
Я ставил линукс на раздел sdb2
Мои разделы:
sda(Windows)
Sdb: sdb1(хранилище данных), sdb2(Linux).

У меня Uefi Dual bios


Оффлайн
SergeyIT

logosios, по какой инструкции ставил?

Извините, я все еще учусь


Оффлайн
vladimirzhuravlev

не установился загрузчик grub и попробовал поставить его через терминал,но мне вышла ошибка grub install: error: cannot find efi directory.

Инсталлятор граба сказал, что не найден раздел efi, ты куда пытался граб установить ? Можно попробовать указать виндовый раздел efi для установки граба, но загрузчик винды будет перезаписан. Чот все стараются присунуть linux не к винде на диск, а на другой и получают проблемы. Неужели не возможно чуть уменьшить системный раздел с виндовс, он что…забит почти полностью ?


Оффлайн
andytux

Linux kde neon(можно сказать kubuntu

Не можно.

grub install: error: cannot find efi directory

Не может найти каталог efi. ESP-раздел существует? Указана его точка монтирования?


Оффлайн
mahinist


Правила форума


2. На форуме ЗАПРЕЩЕНО
2.17. Обсуждение вопросов, напрямую не связанных с использованием дистрибутивов, входящих в официальное семейство Ubuntu. Другие дистрибутивы GNU/Linux и прочие операционные системы следует обсуждать на иных, специализированных ресурсах. Исключением является раздел Разговоры обо всем.

Тема закрыта !
-mahinist


  • Печать

Страницы: [1]   Вверх

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Cannot find appropriate setup exe file matlab ошибка
  • Cannot find a compatible graphics card dirt 5 ошибка