- Arch Linux
- #1 2013-06-03 20:02:53
- [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
- #2 2013-06-03 21:29:14
- Re: [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
- #3 2013-06-04 05:45:05
- Re: [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
- #4 2013-06-04 16:34:41
- Re: [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
- дуалбут
- забыл
- Решение ошибок программы-загрузчика GRUB
- Способ 1
- Способ 2
Arch Linux
You are not logged in.
#1 2013-06-03 20:02:53
[SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
English is not my native language. Please excuse typing errors.
I have just successfully installed Arch linux with grub2 as its boot manager. I
followed the arch beginner guide. I’ve used grub before and I’m familiar with
it, so chose to use grub instead for efistub. I installed os-prober and
ran grub-mkconfig to create the grub.cfg file. The problem now is that I recieve
an error when I try to boot windows 8. I have two drives (/dev/sda and /dev/sdb)
and I believe both are EFI-systems.
However, it’s not very important for me to use grub, so if booting into windows
8 is easier using efistub, I will try that.
The computer is ASUS ux32vd with a hybrid disk with 25GB on the SSD and 500GB on
the hard drive. I believe the SSD part is used by Windows.
This is the first error I recieved when I tried to boot windows.
Then I tried to follow this post
https://bbs.archlinux.org/viewtopic.php?id=150183 and made a new boot
entry «Windows 82». And I got a new error:
Here are some command line outputs.
bootinitscript
EDIT:
I gave up trying to make grub work, so I uninstalled grub and deleted all the grub files I could find.
That last one I came to regret later on. So I installed rEFInd using the archlinux beginners guide. When I then tried to boot into windows It told me that /boot/grub/x86_64-efi/normal.mod was not found. I then reinstalled grub-efi-x86_64 and copied /usr/lib/grub/x86_64 to /boot/grub. Now everything works fine.
Last edited by sighol (2013-06-08 21:47:49)
#2 2013-06-03 21:29:14
Re: [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
#3 2013-06-04 05:45:05
Re: [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
I’ve now added bootinitscript in the description
#4 2013-06-04 16:34:41
Re: [SOLVED] Can’t boot Windows 8 using grub2. invalid EFI file path
However, it’s not very important for me to use grub, so if booting into windows
8 is easier using efistub, I will try that.
The EFI stub loader is a Linux-only boot loader; however, it is possible to use the EFI stub loader in conjunction with a separate boot manager, such as rEFInd or gummiboot. In such a configuration, you’d use the boot manager to select the OS to boot (Windows or Linux, and possibly the specific Linux kernel), and the boot loader (the Windows loader or the EFI stub loader built into a specific kernel) will then take over booting the OS. In Arch, this is often easier to configure than is GRUB, since GRUB is very complex and its automated tools to help with setting things up often get it wrong.
This is the first error I recieved when I tried to boot windows.
The «drivemap» command in GRUB is generally used when booting a BIOS-mode boot loader, and in fact your «Windows Recovery Environment (loader) (on /dev/sda2)» and «Windows 8 (loader) (on /dev/sda4)» GRUB entries are both built as for BIOS-mode Windows installations — but the fact that your disks both use GPT means that Windows won’t boot in BIOS mode on your computer. (This is one of the many things that the GRUB setup scripts can get wrong.)
Then I tried to follow this post
https://bbs.archlinux.org/viewtopic.php?id=150183 and made a new boot
entry «Windows 82». And I got a new error:
Both your «Windows 8» and «Windows 82» entries refer to an EFI boot loader file called EFI/Microsoft/Boot/bootmgfw.efi on your EFI System Partition (ESP). This should be correct, but your Boot Info Script output doesn’t show any evidence of such a file. Sometimes Boot Info Script misses such things, so you may want to check it just to be sure. Your ESP is /dev/sda1, and it looks like it’s being mounted at /boot/efi by default, so check for the /boot/efi/EFI/Microsoft directory tree, and for /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi in particular. If that file isn’t present, then something is wrong — perhaps you mistakenly erased the ESP when you installed Linux, thus wiping out the Windows boot loader; or perhaps the file was accidentally deleted somewhere along the way. (Note that on FAT, which the ESP uses, case is irrelevant, and in fact case varies between the filenames reported by Boot Info Script and what’s recorded in your configuration files.)
You do have another boot loader file that may be a duplicate of the Windows boot loader: EFI/BOOT/bkpbootx64.efi. This filename is generally created by Ubuntu’s «Boot Repair» tool, which IMHO can do as much harm as good, especially on a system that’s not booting Ubuntu. If you ran this tool, though, it’s conceivable that bkpbootx64.efi is a copy of the Windows boot loader, so copying it to EFI/Microsoft/Boot/bootmgfw.efi might get things working. OTOH, the Windows boot loader relies on other files to do its job, so if they’re not present, copying the Windows boot loader to its original location won’t be sufficient.
If you can’t get things working based on the preceding suggestions, I recommend you run a Windows repair tool. These are accessible from a Windows recovery disc. Such disc images are readily available on the Internet, but I don’t happen to have any links handy. Try Microsoft’s own site; images obtained from random third-party sites might contain malware. Once you’ve done this, chances are the computer will boot directly into Windows. You’ll then need to either restore GRUB as the default boot loader or install another boot loader or boot manager. You can use the Windows «bcdedit» command to do the former, as in:
You’ll need to type this from an Administrator Command Prompt window.
дуалбут
Привет всем. Не закидайте камнями, но . очень нужен дуалбут. с вин7. Винда установлена в efi режиме. Что имеем:
/bootmgr.efi, а не +1.
file not found. где его взять то?(
только вот кажется мне, что EFI раздел fat, а не ntfs
у меня его нету. есть efi файл только для дебиана, т.к. при установке вроде бы форматировал ефи раздел.
Как вариант можно ставить grub на раздел с линуксом, а линукс загружать из виндового загрузчика при помощи EasyBCD. Мне на ноуте пришлось так сделать (при загрузки винды из grub управление передавалось виндовому загрузчику, а он почему-то выдавал ощибку).
Если bootmgr.efi нигде нет, грузитесь с установочного диска семёрки и восстанавливайте загрузчик.
Она ведь 64-битная и установлена на GPT, да? В противном случае это не EFI.
допускается ли вариант снести винду, переключить винт в легаси, а потом установить все заново?
Ну тогда выпрашивать/находить где-то efi загрузчик Win7
Пока что оочень сильно не хочется все переустанавливать.
С EasyBCD не знаком, посмотрю что это, спасибо.
зато затирать горазд
Переустанавливать не надо, только загрузчик пофиксить
Раньше было fixboot емнип, шяс не знаю
челу нужен дуалбут
Челу нужно восстановить сначала вендовый загрузчик, а потом поставить и настроить граб
можно сделать копии разделов на внешний носитель перед изменением таблицы разделов
боюсь fixboot fixmbr для uefi не работают. ну можно проверить конечно
рабочий инструмент должен быть, надо поспрашивать на венфаках
P.S. Если линуксоиды не поняли зачем там 3 раздела объясняю.
Не троллинга ради, раздел восстановления системы будет работать всегда, даже если у вас поломан раздел с windows. Другое дело что там нет поддержки сети и браузера 😀
insmod part_gpt
set root='(hd0,gpt2)’
Мне кажется, что там должно быть вот такое.
ну если там gpt
Не могу нигде найти ефи загрузчик винды. У кого есть, кто может скинуть, пожалуйста?
Посмотри здесь мой пост: тынц Если что, могу скинуть загрузчик, только от 8-ой, хотя, по-моему один шут
забыл
refind умеет. Просто кидаешь под именем основного загрузчика, а его переименовываешь как хочешь. Ищет в efi-разделе, может грузить grub, может грузить напрямую линь.
Скинь, если можешь загрузчик, попробую загрузится так пока.
bootloader Отпишись о результатах.
Здесь довольно подробно расписано как восстановить загрузчик. Может пригодится ТС
И результат: no such file or directory.
Грабу не правильно путь прописал или что? По разному пробовал — эффект один и тот же.
1.Определись с номером загрузочного fat32 (efi) раздела в нумерации граба (т.е. точно ли gpt2) 2.Путь нужно указывать абсолютный,допустим /efi/boot/bootmgfw.efi. Несмотря на то, что у тебя может esp быть смонтирован в /boot/efi/ при загруженной системе. 3. Создать файл /etc/grub.d/40_custom с содержимым из вышеупомянутого поста и не лазить ручками в конфиге граба. Предварительно, конечно, подставь свой путь к загрузчику оффтопа.
Путь я указывал абсолютный. Номер загрузочного раздела вроде бы правильный, тем более он был сгенерирован самим грабом.
До третьего пункта дошел? Лучше скопипастить содержимое из приснопамятного поста и скорректировать путь к загрузчику. Он должен быть в форме /efi/boot/, /efi/microsoft/boot/. Заковыку нужно искать в путе(ях).
тем более он был сгенерирован самим грабом
Этого и надо боятся, в случае оффтопика и ефи он работает через жо^, очень криво.
Лежит он тут /boot/efi/EFI/boot. т.е. попробовать /efi/EFI/boot?
Ну да. Если у тебя Efi System Partition смонтирована в каталог efi. В противном случае вообще /efi/boot/_загрузчик_
ну путь вроде бы правильно указал? Пробовал так:
ключевая ошибка в скрипте,если винт размечен в gpt то
Сейчас так попробую, НО.. часть конфига загрузки дебиана : set root='(hd0,msdos5)’, тут ведь не gpt?
Я об этом и говорю. Хотя у меня дебиан установился на виртуалку с gpt, но там нет efi (
Решение ошибок программы-загрузчика GRUB
Нередко возникает необходимость в установке двух принципиально разных операционных систем на один компьютер: Windows и Linux. Разумеется, подобное «соседство» будет связано с некоторыми неудобствами. Для установки, как правило, используют специальную программу GRUB. Но к сожалению, при её использовании можно столкнуться с рядом ошибок. В этой статье разберёмся с тем, как исправить ошибки загрузчика GRUB. Давайте же начнём. Поехали!
Для начала давайте определимся с тем, что из себя представляет эта программа. GRUB — представляет собой системный загрузчик, устанавливающийся непосредственно с Линукса и записывающий все данные на первый раздел диска (MBR).
Сам rescue mode является отличительной чертой GRUB 2 от его предыдущей версии. Этот режим запускается, если программе-загрузчику не удалось найти файл «grub.cfg» либо не удалось передать управление в kernel (ядро). В итоге не удаётся найти загрузочные файлы и запустить операционную систему. Именно тогда и возникает ошибка.
Следуйте инструкциям ниже, чтобы узнать, как решить проблему с GRUB
Способ 1
Что делать в случае ошибки unknown filesystem grub-rescue? Перед вами окно, в котором можно использовать только 4 команды, их вполне достаточно, чтобы исправить все проблемы и успешно загрузиться:
- ls — позволяет вывести всё содержимое;
- set — применяется для установки переменных;
- unset — очищает переменную;
- insmod — необходима для загрузки модулей.
Также можно сделать доступным ряд других команд. Сделать их доступными можно, загрузив модуль «normal». Для этого пропишите:
После этого станут доступны:
- dump — для очистки памяти;
- exit — команда выхода из загрузчика;
- chainloader — необходима, чтобы указать последующей команде boot передать управление цепочечному загрузчику;
- kfreebsd — несколько команд, позволяющих загрузить ядро FreeBSD, его модули;
- rmmod — позволяет выгрузить указанный модуль ядра;
- multiboot.
Первым делом нужно отыскать модули, чтобы загрузить их. Для этого введите:
Результатом выполнения команды будет следующее:
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)
Из этого можно сделать вывод, что загрузчик не может определить файловые системы дисков, поэтому определяет их как msdos. Теперь необходимо угадать видимые диски. В конкретном примере перед вами два диска: hd0 (с тремя разделами) и hd1 (с двумя разделами). Допустим, вы знаете, что Linux инсталлирован на диск, который имеет три раздела. В таком случае вам нужен диск с индексом «0».
GRUB даёт названия разделам в обратном порядке. В связи с этим, неясно как трактовать запись: «(hd0,msdos3)». Ведь можно посчитать это как первым разделом, так и третьим. К счастью, из этой ситуации можно выйти при помощи такого синтаксиса команды: «(hd0,1)». Обратите внимание, что в программе-загрузчике GRUB отсчёт дисков идёт с 0, а разделов с 1.
Допустим, что Линукс хранится в первом разделе, тогда он будет обозначаться (hd0,1). В этом случае команда, которую необходимо прописать, будет иметь вид:
Теперь модули могут быть загружены. Использовать их можно только после загрузки.
После того как вы выбрали нужный диск, проверьте содержится ли там то, что нужно. Для этого пропишите:
В результате выполнения на экране появится список md файлов.
После этого загрузчик будет переведён в режим полной функциональности. Затем автоматически будут найдены разделы с операционной системой, и откроется меню программы.
Теперь остаётся загрузить Linux. Делается это при помощи команды:
Способ 2
Всё сильно упрощается, если использовать Live CD – загрузочный диск с системой Linux. Он может быть записан на флешке, на внешнем винчестере или на обычном диске – это неважно, главное, чтобы с него можно было загрузить компьютер.
После загрузки Linux стандартным способом устанавливается бесплатная утилита Boot Repair. Она предназначена именно для устранения ошибок загрузки с помощью загрузчика Grub и очень проста в использовании – достаточно кликнуть по кнопке.
Заметим, что иметь Live CD для линуксоида всегда полезно и даже необходимо. Это зачастую избавляет от множества проблем, так как позволяет загрузить полноценную систему с внешнего носителя и использовать весь её инструментарий. Скачать такой диск с любой версией Linux не представляет сложностей, в комплекте обычно идёт инструкция по записи его на флешку.
После выполнения всех этих действий ошибка будет устранена. Пишите в комментариях была ли полезна для вас эта статья и задавайте любые интересующие вопросы по рассмотренной теме.