Grub install error cannot find efi directory


Grub — ALT Linux Wiki

Содержание

  • 1 Что такое GRUB?
  • 2 Зачем нужен GRUB, если есть LILO/ELILO?
  • 3 Как установить GRUB?
  • 4 Как передать свои параметры загрузки ядра?
  • 5 Где отредактировать параметры ядра?
  • 6 Как дописать свои собственные пункты меню?
  • 7 Как выбрать ядро для загрузки по умолчанию (первый пункт grub)?
  • 8 Как выбрать то, что будет загружаться автоматом?
  • 9 Как отучить GRUB2 запоминать последний выбранный пункт?
    • 9.1 Способ 1
    • 9.2 Способ 2
  • 10 Как однократно выполнить загрузку произвольного пункта меню?
  • 11 Как загрузить Xen?
  • 12 Как включить работу с последовательным портом?
  • 13 Загрузка Linux и Windows c разных жестких дисков
  • 14 Как установить пароль на редактирование параметров ядра?
  • 15 Как переустановить GRUB?
  • 16 Как установить/восстановить загрузочную запись grub?
  • 17 Что за жалобы про BIOS Boot Partition?
  • 18 Во время загрузки Windows искажена картинка, что делать?
  • 19 Где почитать ещё?
  • 20 Примечания

Что такое GRUB?[править]

Wikipedia сообщает "GNU GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки." GRUB 2

Зачем нужен GRUB, если есть LILO/ELILO?[править]

  • Поддержка модулей Raid, LVM файловых систем вкупе с интерактивным интерфейсом позволяют выбрать, что загружать откуда угодно в процессе загрузки (а не установки загрузчика).
  • Возможность multiboot (для загрузки, к примеру, XEN)

Как установить GRUB?[править]

Установить дистрибутив с GRUB либо мигрировать загрузчик вручную.

apt-get install grub grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB grub-mkconfig -o /boot/grub/grub.cfg 

Последний пункт выполняет генерацию конфига GRUB на основе шаблонов/скриптов в /etc/grub.d/. Редактировать полученный конфиг руками не рекомендуется т.к. он будет уничтожен следующей автогенерацией (выполняемой, к примеру, installkernel-ом).

Проверьте содержимое /etc/sysconfig/grub2: если там нет раскомментированной переменной GRUB_AUTOUPDATE_DEVICE (при смене загрузчика вручную не будет, т.к. она добавляется только alterator-grub), добавьте устройство или их список; если root/boot на md raid1, следует задать список дисков, на которых он размещён -- например, не '/dev/md0 ', а '/dev/sdb /dev/sda '. После этого стоит выполнить grub-autoupdate.

Как передать свои параметры загрузки ядра?[править]

Для однократного изменения таковых при загрузке GRUB следует:

  1. нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT;
  2. в открывшемся редакторе отыскать строку, начинающуюся с linux /boot/vmlinuz;
  3. в её конец дописать требуемые параметры, отделив пробелом;
  4. нажать F10.

Если нужно, чтобы эти параметры ядра передавались ядру при каждой загрузке, надо прописать их в /etc/sysconfig/grub2 и дать команду update-grub; подробнее см. следующий пункт.

Где отредактировать параметры ядра?[править]

Для постоянного применения иных параметров загрузки следует изменить конфигурацию загрузчика.

  • Параметры ядра содержатся в /etc/sysconfig/grub2
  • После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg

В /etc/sysconfig/grub2 поддерживаются следующие опции:

GRUB_AUTOUPDATE_CFG=true/false 

обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ваш_пункт1 ваш_пункт2" 

опции загрузки ядра

GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg 

имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)

GRUB_VMLINUZ_SYMLINKS=true/false/default 

добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz [по умолчанию])

GRUB_VMLINUZ_FAILSAFE=true/false/default 

добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz [по умолчанию])

Как дописать свои собственные пункты меню?[править]

  • Теоретически вам не должно хотеться этого делать. Расскажите (в рассылке sisyphus@, к примеру) зачем вам этого захотелось - возможно, придумается какой-то новый общий случай.
  • Если вам всё же хочется - допишите то, что считаете нужным в /etc/grub.d/40_custom

Например, если автоматически не обнаружилась Windows 10, может помочь такое описание пункта меню:

menuentry 'Windows 10' { search --fs-uuid --no-floppy --set=root <UUID> chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi } 

Где UUID - UUID раздела с загрузчиком Windows. Узнать UUID раздела можно командой blkid

  • После редактирования этого файла нужно вызвать # grub-mkconfig -o /boot/grub/grub.cfg

Как выбрать ядро для загрузки по умолчанию (первый пункт grub)?[править]

Командой installkernel <имя ядра>, можно с переменной — к примеру, для текущего:

# installkernel $(uname -r) 

Внесено предложение (altbug #38888) по добавлению к утилите update-kernel опции -d, --default — установка ядра по умолчанию. Будет ли оно реализовано — неизвестно.

Как выбрать то, что будет загружаться автоматом?[править]

данный пункт очень похож на следующий, но на этот пункт есть ссылки

  • Выберите нужный вам пункт один раз при загрузке. savedefault должен сохранять ваш выбор на будущее.
  • Не нравится такое поведение? Отключите GRUB_SAVEDEFAULT в /etc/sysconfig/grub2
  • NB: в 2.00+ поведение изменилось, теперь дополнительные ядра для того же корня спрятаны в субменю "Advanced options".

Как отучить GRUB2 запоминать последний выбранный пункт?[править]

Поведение Grub в плане запоминания пунктов зависит от переменных GRUB_DEFAULT и GRUB_SAVEDEFAULT в файле /etc/sysconfig/grub2. GRUB_DEFAULT может содержать пункт меню для загрузки, либо служебное слово 'saved'. В случае, если GRUB_DEFAULT='saved' (в ALT по-умолчанию), загрузка определяется содержимым файла /boot/grub/grubenv: утилита grub-set-default задаёт значение переменной saved_entry, утилита grub-reboot — значение переменной next_entry (используется однократно при следующей загрузке, потом очищается). Утилита grub-entries (altbug #36048) выводит список существующих вариантов (правда неполный с точки зрения допустимых вариантов написания: не выводятся смешанные варианты выбора и выбор на основе ID пунктов меню). В случае, если GRUB_SAVEDEFAULT=true (в ALT по-умолчанию), в пункты меню Grub добавляется команда savedefault, вызывающая изменение переменной saved_entry в файле /boot/grub/grubenv.

Способ 1[править]

В файле /etc/sysconfig/grub2 изменить значение GRUB_SAVEDEFAULT на false, перегенерировать конфиг grub:

grub-mkconfig -o /boot/grub/grub.cfg 

посмотреть имеющийся список вариантов загрузки утилитой grub-entries:

grub-entries 

например

0 ALT p8 starter kit 1>0 Advanced options for ALT p8 starter kit>ALT p8 starter kit, vmlinuz 1>1 Advanced options for ALT p8 starter kit>ALT p8 starter kit, vmlinuz (recovery mode) 1>2 Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.14.97-un-def-alt0. M80P.1 1>3 Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.9.154-std-def-alt0.M80P.1 2 Memtest86+-5.01 

задать нужный вариант загрузки:

grub-set-default "Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.14.97-un-def-alt0.M80P.1" 

или

grub-set-default "1>2" 

цифровой вариант лучше не использовать, так как номера строк изменяются при удалении и добавлении ядер, но его вполне можно использовать для указания варианта на следующую перезагрузку утилитой grub-reboot.

Внимание! Обнаружилась возможность внезапного изменения и буквенного названия altbug #37379

Способ 2[править]

В файле /etc/sysconfig/grub2 изменить строку

 GRUB_DEFAULT='saved' 

на

 GRUB_DEFAULT=n 

где n номер пункта меню, либо на

 GRUB_DEFAULT='точное название пункта меню' 

Вариант с названием предпочтительнее, поскольку после обновления ядра количество пунктов в меню увеличится и нумерация некоторых пунктов изменится. Внимание! Нумерация пунктов начинается с 0. Список пунктов можно получить по команде

grep menuentry /boot/grub/grub.cfg | nl -v0 

Например, пусть мы имеем следующие пункты меню (этот пример не учитывает текущее состояние с подменю; оставлено в качестве примера, удобнее использовать grub-entries, как в первом варианте):

# grep menuentry /boot/grub/grub.cfg | nl -v0 0 menuentry "ALT Linux 6.0.1 KDesktop" --class gnu-linux --class gnu --class os { 1 menuentry "ALT Linux 6.0.1 KDesktop (failsafe mode)" --class gnu-linux --class gnu --class os { 2 menuentry "ALT Linux 6.0.1 KDesktop, 3.0.8-std-def-alt0.M60P.1" --class gnu-linux --class gnu --class os { 3 menuentry "Windows Vista (loader) (on /dev/sda1)" --class windows --class os { 4 menuentry "Memtest86+-4.20" { # 

и хотим, чтобы по умолчанию грузился Windows. Тогда в /etc/sysconfig/grub2 пишем

 GRUB_DEFAULT='Windows Vista (loader) (on /dev/sda1)' 

Потом в терминале от пользователя root:

grub-mkconfig -o /boot/grub/grub. cfg 

Перезагрузка. Так как в GRUB_DEFAULT задано конкретное значение, а не 'saved', переменная GRUB_SAVEDEFAULT значения не имеет.

Как однократно выполнить загрузку произвольного пункта меню?[править]

Иногда бывает удобно загрузиться с произвольным пунктом меню, но не менять текущий вариант. Это удобно, например, для тестирования нового ядра, когда надо иметь возможность вернуть старое ядро простой перезагрузкой. Для этого надо настроить Grub в соответствии со способом 1 предыдущего пункта, после чего можно задать пункт меню для следующей загрузки командой grub-reboot и запустить команду reboot. В момент начала загрузки конфигурация Grub автоматически вернётся в исходное состояние, и следующая загрузка компьютера произойдёт по-старому. Это аналогично использованию опции -R загрузчика Lilo.

Как загрузить Xen?[править]

Xen грузится с помощью multiboot:

  • проверить, что вы используете grub2 >= 1.98-alt11
  • apt-get install xen xen-libs xen-runtime xen-hypervisor
  • запустить grub-mkconfig -o /boot/grub/grub. cfg
  • выбрать соответствующий пункт при загрузке (savedefault запомнит выбор на будущее)

Как включить работу с последовательным портом?[править]

Примерно такими строчками в /etc/sysconfig/grub2:

GRUB_TERMINAL='console serial' GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200' 

(см. также). Не забываем про grub-mkconfig.

Загрузка Linux и Windows c разных жестких дисков[править]

Grub грузится с основного диска на котором Linux, Windows установлен на дополнительный жесткий диск. В 40_custom добавляем:

menuentry "Windows XP" { drivemap -s (hd1) ${root} set root='(hd1)' chainloader +1 } 

Если жестких дисков больше двух, играемся с hdX.

Как установить пароль на редактирование параметров ядра?[править]

По умолчанию при загрузке любой пользователь может добавить/изменить параметры. Этого можно избежать, если установить пароль. Проще всего сделать это в центре управления системой. Для этого потребуется пакет alterator-grub и выполнить следующие действия:

  • Зайдите в ЦУС (acc), перейдите в режим эксперта, и в разделе "Система" откройте "Загрузчик GRUB".
  • Установите флажок "Установить или сбросить пароль" и введите необходимый пароль.

После нажатия на кнопку "Установить" (переконфигурация GRUB происходит автоматически) при запуске системы и попытке либо изменить параметры загрузки (клавиша Е), либо выбрать другой пункт загрузочного меню, будет требоваться логин/пароль. Логин по умолчанию сейчас boot (altbug #33098)

Примечание: Логин/пароль (последний в хэшированном виде) записываются в файл /etc/grub.d/50_password:

#!/bin/sh cat << EOF set superusers="boot" password_pbkdf2 boot grub.pbkdf2.sha512.10000.<hash> EOF 


Также для ограничения загрузки (как с изменением параметров, так и без) можно добавить в файл /etc/grub.d/40_custom строки:

set superusers="user" password user password 

Внимание! В этом случае не забудьте запретить чтение данного файла обычным пользователям (см. altbug #33099). А лучше всего используйте хэшированные пароли. Для этого следует воспользоваться password_pbkdf2 и командой grub-mkpasswd-pbkdf2.


В случае дистрибутивов серии 6.0 отключить графику в /etc/sysconfig/grub2 (см. altbug #26198):

GRUB_TERMINAL_OUTPUT='console' 

Для защиты паролем возможности загрузки именно с изменёнными параметрами придётся добавить в переменную CLASS в скрипте /etc/grub.d/10_linux опцию --unrestricted (внимание: этот скрипт по состоянию на версию 2.00-alt20 входит в пакет grub-common и не помечен как %config, поэтому будет перезаписан при обновлении!).

После подобных операций следует перегенерировать конфигурацию командой grub-mkconfig -o /boot/grub/grub.cfg (либо grub-mkconfig, в зависимости от дистрибутива). В случае использования alterator-grub - это не требуется.

Как переустановить GRUB?[править]

После обновления до grub2-pc-2.00-alt1 операционная система может не загрузиться. В таком случае, необходимо иметь под рукой любой live disk. Далее:

  • Загружаемся с rescue-cd, например ALT Linux Rescue
  • Если использован ALT Linux Rescue:
mount-system chroot /mnt/system1 
  • Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
mount /dev/sda2 /mnt mount -o bind /dev /mnt/dev mount -o bind /proc /mnt/proc mount -o bind /run /mnt/run mount -o bind /sys /mnt/sys chroot /mnt/ /bin/bash 
  • Скачиваем предыдущую версию пакета:

http://ftp.altlinux.org/pub/distributions/archive/Sisyphus/2012/10/30/

  • Устанавливаем rpm
rpm -Uvh --oldpackage /home/andy/grub2-pc-1.99-alt9.i586.rpm 
  • Переконфигурируем меню grub
grub-mkconfig -o /boot/grub/grub.cfg 

После описанного выше, у меня загрузилась операционная система.

По мотивам: http://edoceo.com/notabene/grub-probe-error-cannot-find-device-for-root

Как установить/восстановить загрузочную запись grub?[править]

Аналогично предыдущему пункту (см. также Восстановление_загрузочной_записи#grub:

  • Если использован ALT Linux Rescue:
mount-system chroot /mnt/system1 
  • Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
mount /dev/sda2 /mnt mount -o bind /dev /mnt/dev mount -o bind /proc /mnt/proc mount -o bind /run /mnt/run mount -o bind /sys /mnt/sys chroot /mnt/ /bin/bash 

После того как проведены подготовительные действия и сделан сhroot, необходимо выполнить

grub-mkconfig -o /boot/grub/grub.cfg grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB 

Примечание: Если при выполнении команды grub-install, в режиме legaсy, вы получаете ошибку:

# grub-install /dev/sda grub-install: error: cannot find EFI directory 

то выполните команду:

# grub-install --target=i386-pc /dev/sda 


если же используется EFI-режим, может потребоваться восстановить загрузчик в ESP-разделе (EFI System Partition), который монтируется в /boot/efi:

mount -a # достаточно смонтировать точку монтирования /boot/efi grub-efi-autoupdate 

Что за жалобы про BIOS Boot Partition?[править]

При загрузке под PC BIOS используется MBR и небольшая свободная область диска после него (31 килобайт до 63-го сектора) — соответственно первая стадия и core. img; при использовании UEFI ожидается GPT-разбивка загрузочного диска, при которой нет ни MBR, ни этой области. Отсюда возникает необходимость встроить вторую стадию загрузчика куда-то ещё. Таким местом и решили взять определённый в GPT тип раздела BIOS Boot Partition.

Инструмент разбивки дисков в составе инсталятора ALT Linux сделает такой раздел автоматически под UEFI, если разбиваете вручную или большой диск для BIOS — может потребоваться создать раздел минимального объёма (RED Hat рекомендует 1 мегабайт) с типом «bios boot partition» в терминологии alterator-vm либо меткой «bios_grub» в терминологии parted.

См. тж. архивную статью.

Во время загрузки Windows искажена картинка, что делать?[править]

Если при загрузке, например, Windows 7 часть экрана содержит "шум", возможно, отдалённо напоминающий картинку заставки GRUB -- попробуйте выровнять используемые видеорежимы VESA:

  • в файле /etc/sysconfig/grub2 поменяйте GRUB_GFXMODE='800x600' на GRUB_GFXMODE='640x480'[1];
  • выполните команду update-grub или grub-mkconfig -o /boot/grub/grub. cfg

Вы можете сделать заставку текстовой, указав GRUB_GFXMODE='console'.

Где почитать ещё?[править]

  • Викиучебник (debian-related документация) http://ru.wikibooks.org/wiki/Grub_2, с небольшими изменениями применимо и у нас.
  • http://people.apache.org/~skitching/MineOfInformation/linux/Booting_Linux_on_x86_with_Grub2.html (англ.)
  • GNU GRUB Manual 2.00 http://www.gnu.org/software/grub/manual/grub.html (англ.)
  • дистрибутивные вики: Arch, Frugalware, Gentoo

А также в операционной системе:

info grub info -f grub -n 'Simple configuration' 
  • ...ну и надо хотя бы назвать по имени os-prober
  1. ↑ возможно, понадобится подобрать разрешение, например, 1024x768 -- см. тж. здесь и здесь

Загрузчики

Grub • LILO • Загрузчик systemd • Загрузчики • Установка Altlinux с Ubuntu

 

Не ставится загрузчик grub / Уголок новичка / Русскоязычное сообщество Manjaro Linux

По какой-то причине у меня во время установки в самом конце постоянно вылетает ошибка. Сама системя в общем ставится, но приходится устанавливать grub вручную с livecd и ещё исправлять UUID в файле /etc/fstab. Я уже создавал по этой проблеме топик Your text to link... и к этому геморою уже привык. Но решил попробовать manjaro KDE. Однако на этот раз старая схема дала сбой. Появилась новая ошибка

grub-install: error: /boot/efi doesn't look like an EFI partition.

Собственно, что я делал для её достижения:

[manjaro@manjaro ~]$ sudo su
 [manjaro manjaro]# sudo mkdir /boot/efi
 [manjaro manjaro]# mount /dev/sda2 /mnt
 [manjaro manjaro]# mount /dev/sda1 /boot/efi
 [manjaro manjaro]# cd /mnt
 [manjaro mnt]# mount -t proc proc /mnt/proc
 [manjaro mnt]# mount -t sysfs sys /mnt/sys
 [manjaro mnt]# mount -o bind /dev /mnt/dev
 [manjaro mnt]# mount -t devpts pts /mnt/dev/pts/
 [manjaro mnt]# chroot /mnt
 [root@manjaro /]# sudo pacman -Sy efibootmgr
 :: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 warning: efibootmgr-17-1 is up to date -- reinstalling
 resolving dependencies. ..
 looking for conflicting packages...
 
 Packages (1) efibootmgr-17-1
 
 Total Download Size: 0.03 MiB
 Total Installed Size: 0.08 MiB
 Net Upgrade Size: 0.00 MiB
 
 :: Proceed with installation? [Y/n] y
 :: Retrieving packages...
 efibootmgr-17-1-... 27.4 KiB 0.00 B/s 00:00 [###################] 100%
 (1/1) checking keys in keyring [###################] 100%
 (1/1) checking package integrity [###################] 100%
 (1/1) loading package files [###################] 100%
 (1/1) checking for file conflicts [###################] 100%
 (1/1) checking available disk space [###################] 100%
 :: Processing package changes...
 (1/1) reinstalling efibootmgr [###################] 100%
 :: Running post-transaction hooks...
 (1/1) Arming ConditionNeedsUpdate...
 [root@manjaro /]# sudo pacman -Sy dosfstools
 :: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 warning: dosfstools-4. 1-3 is up to date -- reinstalling
 resolving dependencies...
 looking for conflicting packages...
 
 Packages (1) dosfstools-4.1-3
 
 Total Download Size: 0.06 MiB
 Total Installed Size: 0.17 MiB
 Net Upgrade Size: 0.00 MiB
 
 :: Proceed with installation? [Y/n] y
 :: Retrieving packages...
 dosfstools-4.1-3... 57.4 KiB 617 KiB/s 00:00 [###################] 100%
 (1/1) checking keys in keyring [###################] 100%
 (1/1) checking package integrity [###################] 100%
 (1/1) loading package files [###################] 100%
 (1/1) checking for file conflicts [###################] 100%
 (1/1) checking available disk space [###################] 100%
 :: Processing package changes...
 (1/1) reinstalling dosfstools [###################] 100%
 :: Running post-transaction hooks...
 (1/1) Arming ConditionNeedsUpdate...
 [root@manjaro /]# sudo pacman -Sy grub
 :: Synchronizing package databases. ..
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 resolving dependencies...
 looking for conflicting packages...
 
 Packages (1) grub-2.04-11.1
 
 Total Download Size: 9.88 MiB
 Total Installed Size: 48.87 MiB
 Net Upgrade Size: -1.95 MiB
 
 :: Proceed with installation? [Y/n] y
 :: Retrieving packages...
 grub-2.04-11.1-x... 9.9 MiB 2.24 MiB/s 00:04 [###################] 100%
 (1/1) checking keys in keyring [###################] 100%
 (1/1) checking package integrity [###################] 100%
 (1/1) loading package files [###################] 100%
 (1/1) checking for file conflicts [###################] 100%
 (1/1) checking available disk space [###################] 100%
 warning: could not get file information for boot/grub/grub.cfg
 :: Processing package changes...
 (1/1) upgrading grub [###################] 100%
 New optional dependencies for grub
 libusb: For grub-emu USB support [installed]
 :: Running post-transaction hooks. ..
 (1/2) Arming ConditionNeedsUpdate...
 (2/2) Updating the info directory file...
 [root@manjaro /]# sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro -recheck
 grub-install: invalid option -- 'r'
 Try 'grub-install --help' or 'grub-install --usage' for more information.
 [root@manjaro /]# sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
 Installing for x86_64-efi platform.
 grub-install: error: /boot/efi doesn't look like an EFI partition.
 [root@manjaro /]# sudo pacman -Sy mtools os-prober
 :: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 warning: mtools-4.0.24-1 is up to date -- reinstalling
 warning: os-prober-1.77-1 is up to date -- reinstalling
 resolving dependencies...
 looking for conflicting packages...
 
 Packages (2) mtools-4.0.24-1 os-prober-1. 77-1
 
 Total Installed Size: 0.48 MiB
 Net Upgrade Size: 0.00 MiB
 
 :: Proceed with installation? [Y/n] y
 (2/2) checking keys in keyring [###########################################################] 100%
 (2/2) checking package integrity [###########################################################] 100%
 (2/2) loading package files [###########################################################] 100%
 (2/2) checking for file conflicts [###########################################################] 100%
 (2/2) checking available disk space [###########################################################] 100%
 :: Processing package changes...
 (1/2) reinstalling mtools [###########################################################] 100%
 (2/2) reinstalling os-prober [###########################################################] 100%
 :: Running post-transaction hooks...
 (1/2) Arming ConditionNeedsUpdate...
 (2/2) Updating the info directory file. ..
 [root@manjaro /]# sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
 Installing for x86_64-efi platform.
 grub-install: error: /boot/efi doesn't look like an EFI partition.
 

Ноут с GPT разметкой под UEFI. Я создал раздел sda1 на 512 мб, форматировал как fat32, и пометил флагами boot, esp. sda2 — это корневой раздел. Т.е. всё по инструкции.

[root@manjaro /]# parted -l
 Model: ATA HGST HTS545050A7 (scsi)
 Disk /dev/sda: 500GB
 Sector size (logical/physical): 512B/4096B
 Partition Table: gpt
 Disk Flags:
 
 Number Start End Size File system Name Flags
 1 1049kB 538MB 537MB fat32 ESP Boot boot, esp
 2 538MB 54.2GB 53.7GB ext4
 3 54.2GB 243GB 189GB ext4
 4 243GB 252GB 8703MB ext4
 5 252GB 305GB 53.7GB ntfs msftdata
 6 305GB 500GB 195GB ntfs msftdata
 
 
 Model: USB DISK 2.0 (scsi)
 Disk /dev/sdb: 7748MB
 Sector size (logical/physical): 512B/512B
 Partition Table: msdos
 Disk Flags:
 
 Number Start End Size Type File system Flags
 2 3120MB 3124MB 4194kB primary esp
 

Гугл не помог. В основном там у всех просто формат диска в каком-нибудь ext2, а не в fat32. У меня не так. В чём моя ошибка?

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.



linux — не удается найти каталог EFI: проблема с grub-install

спросил

Изменено 23 дня назад

Просмотрено 259 тысяч раз

Я пытался восстановить GRUB в Linux. Я смог войти в ОС, следуя этому руководству:

https://www.lisenet.com/2014/grub2-rescue-mode-error-unknown-filesystem/

Мне нужно обновить GRUB, чтобы решить эту проблему. Однако, когда я запускаю grub-install , я получаю сообщение об ошибке:

 $ grub-install /dev/sda grub-install: ошибка: не удается найти каталог EFI. 

Моя файловая система содержит sda4 , sda5 и sda6 для системы EFI, подкачки Linux и файловой системы Linux соответственно.

У меня нет большого опыта использования mount или других команд.

  • линукс
  • жратва

0

При запуске grub-install по умолчанию предполагается, что система EFI смонтирована как /boot/efi

Это зависит от вашего дистрибутива, где смонтирована система EFI, а в некоторых дистрибутивах она не монтируется после загрузки.

Сначала проверьте, смонтирован ли /boot/efi с помощью монтирования

 | grep/загрузка/efi 

Если это не сработает, сначала попробуйте следующее, чтобы узнать, не смонтирован ли он в другом месте.

 крепление | grep /dev/[efi-устройство] 

Если ни одна из этих работ не работает:

 mount /dev/[efi device] /mnt 

Теперь запустите:

 grub-install --efi-directory=[efi dir] grub-mkconfig -o /boot/grub/grub. cfg 

, где [efi dir] — это /boot/efi или /mnt, а [efi device] — это устройство с системным разделом EFI. Если вы не знаете, используйте команду lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"

9

Каталог efi должен находиться в /boot/efi/

Чтобы узнать, в каком разделе находится efi, мы должны изучить таблицу разделов, поэтому, если ваш основной диск /dev/sda, то.

 fdisk -l /dev/sda Размер начальных и конечных секторов устройства Тип /dev/sda1 2048 309247 307200 Система EFI 150M /dev/sda2 309248 964843519 964534272 459.9G файловая система Linux /dev/sda3 964843520 1000214527 35371008 Файловая система Linux 16.9G 

В результате найдите что-то вроде EFI System или EFI (FAT-12/16/32)

Как только вы узнаете номер раздела (в данном случае sda1), мы должны смонтировать его в /boot /efi .

Если по какой-либо причине каталог /boot/efi/ не существует, создайте его:

 mkdir /boot/efi 

и смонтируйте efi в этот каталог:

 mount /dev/sda1 /boot/efi/ 

И я думаю, что это все, вы должны иметь возможность установить grub на свой диск.

1

Режим спасения Grub можно рассматривать как

 set root=(hd0,gpt6) установить префикс=(hd0,gpt6)/boot/grub инсмод нормальный обычный 

После входа в систему введите sudo update-grub && sudo grub-install /dev/sda .

3

Я только что столкнулся с этой проблемой. Я загрузил аварийную флешку. Позвольте мне описать исправление, которое сработало для меня.

Бродя вокруг с gdisk -l /dev/sda я вижу, что мой исходный корневой раздел /dev/sda2 . Чтобы получить к нему доступ, я набираю sudo mount /dev/sda2 /mnt

Пока все хорошо. Позвольте мне сначала описать, что не работало , а затем решение. На некоторых страницах рекомендуется chroot /mnt , а затем grub-install , но это не сработает; дает grub-install: ошибка: не удается найти каталог EFI. Ошибка .

Следуя другим предложениям, я вижу, что мой раздел EFI равен /dev/sda1 , поэтому я пытаюсь sudo mount /dev/sda1 /mnt/boot/efi и снова выполнить chroot. Теперь grub жалуется на отсутствие /dev , поэтому я монтирую --bind /dev/ /mnt/dev . ... Но потом grub жалуется на что-то другое. Это выходит из-под контроля. chroot это не ответ.

Вот что сработало: grub-install -d /mnt/usr/lib/grub/x86_64-efi --boot-directory=/mnt/boot /dev/sda

Обратите внимание, что -d флаг обязателен, в противном случае grub пытается использовать /usr/lib/grub/i386-pc из спасательного образа, который не содержит нужных данных.

Ура! Теперь моя система снова загружается!

 sudo apt-get --purge autoremove grub-efi-amd64-signed 

2

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

grub2 - grub-install: ошибка: не удается найти каталог EFI.

(Переустановка загрузчика Grub с двойной загрузкой Windows 10/Kali Linux с двойным жестким диском)

У меня в ноутбуке 2 жестких диска (SSD). На одном жестком диске установлена ​​Windows 10, а на другом - Kali Linux. После переустановки Windows 10 мой загрузчик kali linux grub больше не работает. Поэтому я попытался переустановить загрузчик grub для kali linux с помощью kali live cd.

Я использовал эти команды для установки загрузчика grub для kali linux:

 sudo mount /dev/sdb4 /mnt sudo mount --bind /dev /mnt/dev && sudo mount --bind /dev/pts /mnt/dev/pts && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys судо chroot/mnt grub-установить /dev/sdb 

Всякий раз, когда я пишу команду:

grub-установить /dev/sdb

Я получаю сообщение об ошибке " grub-install: ошибка: не удается найти каталог EFI. "

Кто-нибудь, пожалуйста, помогите мне!

Вот результат fdisk -l:

 kali@kali:~$ sudo fdisk -l Диск /dev/sdb: 447,14 ГиБ, 480113590272 байт, 937721856 секторов Модель диска: WDC WDS480G2G0A- Единицы: секторы 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: gpt Идентификатор диска: E85DA061-C60D-4CA9-9EEF-B703A8B89C96 Размер начальных и конечных секторов устройства Тип /dev/sdb1 34 32767 32734 16M зарезервировано Microsoft /dev/sdb2 32768 734455807 734423040 350,2G Основные данные Microsoft /dev/sdb3 734455808 745361407 10905600 Основные данные Microsoft 5. 2G /dev/sdb4 745361408 922120191 176758784 Файловая система Linux 84.3G /dev/sdb5 922120192 937719807 15599616 Файловая система Linux 7.4G Диск /dev/sda: 238,49 ГиБ, 256060514304 байт, 500118192 сектора Модель диска: SanDisk SD9SN8W2 Единицы: секторы 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: gpt Идентификатор диска: AC00DC72-4C02-49E3-B211-9AC5CB577E09 Размер начальных и конечных секторов устройства Тип /dev/sda1 2048 10854391083392 529M Среда восстановления Windows /dev/sda2 1085440 1290239 204800 Система 100M EFI /dev/sda3 1290240 1323007 32768 16M зарезервировано Microsoft /dev/sda4 1323008 500117503 498794496 237,9G Основные данные Microsoft Диск /dev/sdc: 15,12 ГиБ, 16231956480 байт, 31703040 секторов Модель диска: v165w Единицы: секторы 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: dos Идентификатор диска: 0x121f4f51 Размер начальных и конечных секторов загрузки устройства Идентификатор типа /dev/sdc1 * 0 7539839 7539840 3. 

Learn more

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: