Проблема с Ubuntu и UEFI (проблема с любой операционной системой Linux) [дубликат]

Нет, тема предназначена для целых приложений, но некоторые приложения, такие как monodevelop, позволяют выбирать для нее определенную тему (это относится и к некоторым приложениям Java)

10
задан 13 June 2012 в 10:38

33 ответа

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 25 July 2018 в 17:31

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 1 August 2018 в 23:52

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 4 August 2018 в 15:24

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 5 August 2018 в 23:57

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 7 August 2018 в 17:19

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 10 August 2018 в 06:19

В конце концов я смог решить это. Я заменил EFI / Microsoft / boot / bootmgfw.efi на grub64.efi. Я переименовал его в bootmgfw.efi.old и использовал grub для добавления опции меню для загрузки в нее.

Это означает, что прошивка жестко запрограммирована для поиска загрузчика Microsoft Windows и не уважает efibootmgr настройки или startup.nsh. Это ужасно.

Я узнал, как работает процесс загрузки Sony EFI:

  1. Посмотрите /EFI/Microsoft/Boot/fwbootmgr.efi; если присутствует, загрузите его.
  2. Посмотрите во всех подкаталогах / EFI / для grubx64.efi. Если присутствует, загрузите его.
  3. Загрузите /EFI/Boot/bootx64.efi
  4. Отобразите сообщение об ошибке, например «Операционная система не найдена».

В Linux инструмент efibootmgr действительно работает, но он отображает много автогенерированных бессмыслиц, включая последний используемый вами USB-накопитель.

Вот как я узнал все это:

  1. Я открыл свою новую машину и рухнул раздел Windows, чтобы установить Linux и Mac бок о бок.
  2. Я установил Ubuntu 12.10, а программа установки перезаписала fwbootmgr.efi,
  3. Я восстановил старый загрузчик Windows, но не смог загрузить ничего, кроме Windows.
  4. Я переименовал загрузчик Windows на что-то фиктивный, а затем Grub BL
  5. Я переименовал каталог ubuntu в что-то еще, и Grub все еще загрузился, хотя я установил rEFInd.
  6. Единственный способ, которым я мог бы сделать rEFInd делать то, что я хотел было:
  7. Переместить fwbootmgr.efi в его родительский каталог; rEFInd все равно найдет его, и Windows не будет жаловаться на то, что вы его переименовали.
  8. Переименуйте grubx64.efi в rfgrubx64.efi или что-то еще узнаваемое.
  9. Скопируйте rEFInd из / EFI / переустановите / EFI / boot, переименуйте /EFI/refind_x64.efi в * .bak и, наконец, переименуйте /Boot/refind_x64.efi в bootx64.efi. Теперь вы можете загружать Windows BL или GRUB из rEFInd. Я планирую обновить свою установку MacOS до Clover и загрузить Clover из rEFInd.

(Возможно, возможно использовать Windows Boot Manager для выполнения всего этого, но поддержка EFI EeeasyBCD все еще беспорядок в моем опыте. Я отказываюсь трогать его еще некоторое время.)

8
ответ дан 15 August 2018 в 18:06
  • 1
    Обратите внимание, что я также попытался изменить настройки BCD [using bcdedit.exe] из Windows, чтобы установить диспетчер загрузки Windows, чтобы он был загружен, и это все еще не сработало - мне пришлось фактически заменить файл .efi на .efi grub , – Rohan Dhruva 14 June 2012 в 09:41

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 25 July 2018 в 17:31

То же начальное положение здесь, в новой серии sony vaio e. Спасибо Rod Rod за ваш ответ.

На всякий случай кому-то нужно прохождение игры, это то, что сработало для меня:

Установил ubuntu 12.04 с USB вместе с win7.

mount / dev / sda3 из live-сессии

  • копировать EFI / ubuntu / grubx64.efi в EFI / Boot /
  • переименовать EFI / Boot /bootx64.efi to bootx64.efi.old
  • переименовать EFI / Boot / grubx64.efi в bootx64.efi

теперь он загружается непосредственно в grub2, но без win7 запись

после загрузки ubuntu Я отредактировал

/etc/grub.d/40_custom

добавив

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

и после

sudo update-grub

все работает отлично

4
ответ дан 25 July 2018 в 17:31
  1. Запустите Boot-Repair из liveCD / liveUSB
  2. Нажмите кнопку Recommended Repair. (при этом автоматически будут установлены правильные параметры для grub-efi, включая параметры SecureBoot, и переименование файлов EFI, если прошивка UEFI заблокирована для файлов Windows). Укажите URL-адрес, который появится, если возникнет проблема.

Boot-Repair [/g1]

0
ответ дан 25 July 2018 в 17:31

Я предлагаю две разные альтернативы:

  1. Не перезаписывать окна mbr, но использовать его для запуска grub
  2. изменить настройки BIOS (f2 или f3 при запуске) в параметрах загрузки от UEFI до LEGACY, тогда он обычно запускает последнюю систему, установленную как всегда
1
ответ дан 25 July 2018 в 17:31

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 1 August 2018 в 23:52

То же начальное положение здесь, в новой серии sony vaio e. Спасибо Rod Rod за ваш ответ.

На всякий случай кому-то нужно прохождение игры, это то, что сработало для меня:

Установил ubuntu 12.04 с USB вместе с win7.

mount / dev / sda3 из live-сессии

  • копировать EFI / ubuntu / grubx64.efi в EFI / Boot /
  • переименовать EFI / Boot /bootx64.efi to bootx64.efi.old
  • переименовать EFI / Boot / grubx64.efi в bootx64.efi

теперь он загружается непосредственно в grub2, но без win7 запись

после загрузки ubuntu Я отредактировал

/etc/grub.d/40_custom

добавив

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

и после

sudo update-grub

все работает отлично

4
ответ дан 1 August 2018 в 23:52

Я предлагаю две разные альтернативы:

  1. Не перезаписывать окна mbr, но использовать его для запуска grub
  2. изменить настройки BIOS (f2 или f3 при запуске) в параметрах загрузки от UEFI до LEGACY, тогда он обычно запускает последнюю систему, установленную как всегда
1
ответ дан 1 August 2018 в 23:52

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 4 August 2018 в 15:24

То же начальное положение здесь, в новой серии sony vaio e. Спасибо Rod Rod за ваш ответ.

На всякий случай кому-то нужно прохождение игры, это то, что сработало для меня:

Установил ubuntu 12.04 с USB вместе с win7.

mount / dev / sda3 из live-сессии

  • копировать EFI / ubuntu / grubx64.efi в EFI / Boot /
  • переименовать EFI / Boot /bootx64.efi to bootx64.efi.old
  • переименовать EFI / Boot / grubx64.efi в bootx64.efi

теперь он загружается непосредственно в grub2, но без win7 запись

после загрузки ubuntu Я отредактировал

/etc/grub.d/40_custom

добавив

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

и после

sudo update-grub

все работает отлично

4
ответ дан 4 August 2018 в 15:24

Я предлагаю две разные альтернативы:

  1. Не перезаписывать окна mbr, но использовать его для запуска grub
  2. изменить настройки BIOS (f2 или f3 при запуске) в параметрах загрузки от UEFI до LEGACY, тогда он обычно запускает последнюю систему, установленную как всегда
1
ответ дан 4 August 2018 в 15:24
  1. Запустите Boot-Repair из liveCD / liveUSB
  2. Нажмите кнопку Recommended Repair. (при этом автоматически будут установлены правильные параметры для grub-efi, включая параметры SecureBoot, и переименование файлов EFI, если прошивка UEFI заблокирована для файлов Windows). Укажите URL-адрес, который появится, если возникнет проблема.

Boot-Repair [/g1]

0
ответ дан 4 August 2018 в 15:24

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 5 August 2018 в 23:57

То же начальное положение здесь, в новой серии sony vaio e. Спасибо Rod Rod за ваш ответ.

На всякий случай кому-то нужно прохождение игры, это то, что сработало для меня:

Установил ubuntu 12.04 с USB вместе с win7.

mount / dev / sda3 из live-сессии

  • копировать EFI / ubuntu / grubx64.efi в EFI / Boot /
  • переименовать EFI / Boot /bootx64.efi to bootx64.efi.old
  • переименовать EFI / Boot / grubx64.efi в bootx64.efi

теперь он загружается непосредственно в grub2, но без win7 запись

после загрузки ubuntu Я отредактировал

/etc/grub.d/40_custom

добавив

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

и после

sudo update-grub

все работает отлично

4
ответ дан 5 August 2018 в 23:57
  1. Запустите Boot-Repair из liveCD / liveUSB
  2. Нажмите кнопку Recommended Repair. (при этом автоматически будут установлены правильные параметры для grub-efi, включая параметры SecureBoot, и переименование файлов EFI, если прошивка UEFI заблокирована для файлов Windows). Укажите URL-адрес, который появится, если возникнет проблема.

Boot-Repair [/g1]

0
ответ дан 5 August 2018 в 23:57

Я предлагаю две разные альтернативы:

  1. Не перезаписывать окна mbr, но использовать его для запуска grub
  2. изменить настройки BIOS (f2 или f3 при запуске) в параметрах загрузки от UEFI до LEGACY, тогда он обычно запускает последнюю систему, установленную как всегда
1
ответ дан 5 August 2018 в 23:57

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 7 August 2018 в 17:19

То же начальное положение здесь, в новой серии sony vaio e. Спасибо Rod Rod за ваш ответ.

На всякий случай кому-то нужно прохождение игры, это то, что сработало для меня:

Установил ubuntu 12.04 с USB вместе с win7.

mount / dev / sda3 из live-сессии

  • копировать EFI / ubuntu / grubx64.efi в EFI / Boot /
  • переименовать EFI / Boot /bootx64.efi to bootx64.efi.old
  • переименовать EFI / Boot / grubx64.efi в bootx64.efi

теперь он загружается непосредственно в grub2, но без win7 запись

после загрузки ubuntu Я отредактировал

/etc/grub.d/40_custom

добавив

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

и после

sudo update-grub

все работает отлично

4
ответ дан 7 August 2018 в 17:19

Я предлагаю две разные альтернативы:

  1. Не перезаписывать окна mbr, но использовать его для запуска grub
  2. изменить настройки BIOS (f2 или f3 при запуске) в параметрах загрузки от UEFI до LEGACY, тогда он обычно запускает последнюю систему, установленную как всегда
1
ответ дан 7 August 2018 в 17:19

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 10 August 2018 в 06:19

То же начальное положение здесь, в новой серии sony vaio e. Спасибо Rod Rod за ваш ответ.

На всякий случай кому-то нужно прохождение игры, это то, что сработало для меня:

Установил ubuntu 12.04 с USB вместе с win7.

mount / dev / sda3 из live-сессии

  • копировать EFI / ubuntu / grubx64.efi в EFI / Boot /
  • переименовать EFI / Boot /bootx64.efi to bootx64.efi.old
  • переименовать EFI / Boot / grubx64.efi в bootx64.efi

теперь он загружается непосредственно в grub2, но без win7 запись

после загрузки ubuntu Я отредактировал

/etc/grub.d/40_custom

добавив

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

и после

sudo update-grub

все работает отлично

4
ответ дан 10 August 2018 в 06:19

Я предлагаю две разные альтернативы:

  1. Не перезаписывать окна mbr, но использовать его для запуска grub
  2. изменить настройки BIOS (f2 или f3 при запуске) в параметрах загрузки от UEFI до LEGACY, тогда он обычно запускает последнюю систему, установленную как всегда
1
ответ дан 10 August 2018 в 06:19
  1. Запустите Boot-Repair из liveCD / liveUSB
  2. Нажмите кнопку Recommended Repair. (при этом автоматически будут установлены правильные параметры для grub-efi, включая параметры SecureBoot, и переименование файлов EFI, если прошивка UEFI заблокирована для файлов Windows). Укажите URL-адрес, который появится, если возникнет проблема.

Boot-Repair [/g1]

0
ответ дан 10 August 2018 в 06:19

Во-первых, у вас нет двух ESP. ESP - это раздел с кодом типа раздела C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который разделен как раздел с установленным «флагом загрузки». Ваш вывод указывает, что только у / dev / sda3 установлен «флаг загрузки», поэтому у вас есть только один ESP - / dev / sda3. Под GPT разделы могут иметь имена, и у вас есть два раздела с названием «системный раздел EFI», но эти имена используются только для целей идентификации людей. Таким образом, я предполагаю, что вы (или какая-то автоматическая утилита) создали / dev / sda1 с целью сделать его ESP, но либо возникла ошибка при установке кода типа раздела, либо какая-либо другая утилита неправильно изменила код своего типа с C12A7328-F81F-11D2-BA4B-00A0C93EC93B - что-то еще.

Есть несколько способов исправить это. Самое простое - просто изменить имя / dev / sda1, чтобы избежать путаницы. Если вы считаете, что / dev / sda1 не имеет никакой цели, вы можете создать резервную копию и удалить ее. Это избавит вас от пути и позволит избежать путаницы, но, конечно же, у вас будет 273 МБ неиспользуемого дискового пространства. Кроме того, вы можете посвятить пространство другим целям, при необходимости изменив имя и тип кода, чтобы избежать путаницы. EFI явно разрешает несколько ESP, поэтому вы можете изменить код типа (например, установив флаг загрузки, используя разделенные, и использовать оба ESP; но это может сбить с толку.

Скорее всего, эта проблема не связана с вашей неспособностью загружать Linux, поскольку это похоже на то, что все соответствующие файлы находятся на / dev / sda3. Для меня есть несколько возможных причин для этой проблемы:

  • Возможно, вы ошиблись в команде efibootmgr. Я не вижу никаких очевидных опечаток, но если двоичный файл GRUB не находится там, где вы указали, команда не будет работать. Параметры «--gpt» и «--write-signature» почти наверняка не нужны и, возможно, могут вызывать проблемы, но, скорее всего, это не так.
  • В вашем прошивке может быть ошибка, вызывающая Эффекты команды efibootmgr являются временными. Попробуйте перезагрузить, а затем введите «sudo efibootmgr -v», чтобы узнать, сохранилась ли ваша запись после перезагрузки.
  • В вашей прошивке может быть ошибка, вызывающая игнорирование переменной порядка загрузки. У меня есть такая материнская плата; он загружается в том порядке, в котором создаются записи загрузки, а не в порядке, в котором они указаны переменной BootOrder. Чтобы обойти эту ошибку, вам придется удалить все записи и заново создать их в порядке загрузки, который вы хотите использовать.
  • Ваш двоичный файл grubx64.efi может быть поврежден таким образом, чтобы прошивка отказывается запускать его, и поэтому он переходит к следующему элементу в порядке загрузки.

Вы можете попробовать настроить команду efibootmgr, найти новый двоичный файл или еще что проверить эти возможности. Если все остальное не удается, я рекомендую вам сделать следующее:

  1. Удалить все записи для загрузки с помощью efibootmgr или вашей прошивки (если для этого есть интерфейс).
  2. Скопируйте grubx64.efi в EFI / Boot / bootx64.efi на ESP.
  3. Если при перезагрузке вы все равно получите Windows, переименуйте EFI / Microsoft / Boot / bootmgfw.efi в EFI / Microsoft / bootmgfw.efi .

Это должно привести к загрузке GRUB с использованием имени по умолчанию для загрузчика (EFI / Boot / bootx64.efi). Одна из проблем заключается в том, что GRUB может не иметь рабочей записи для Windows. Возможно, вы можете создать его вручную; такая запись должна работать:

menuentry "Windows 7" {
    set root='(hd0,gpt3)'
    chainloader /EFI/Microsoft/bootmgfw.efi
}

В качестве альтернативы вы можете установить rEFIt или rEFInd как EFI / Boot / bootx64.efi. Обратите внимание, что двоичные файлы rEFIt, доступные со своего сайта, не будут работать на компьютерах на базе UEFI; вам нужно будет использовать эту версию в репозиториях Ubuntu. rEFInd - это вилка rEFIt с многочисленными исправлениями и обновлениями ошибок, включая лучшую поддержку UEFI. (rEFIt, похоже, был оставлен около двух лет назад.) Таким образом, я рекомендую использовать rEFInd, а не rEFIt, но я сторонник rEFInd, поэтому я не являюсь независимым наблюдателем на этот счет. К сожалению, AFAIK rEFInd пока не включен в репозитории Ubuntu, поэтому вам придется загружать и устанавливать его вручную.

5
ответ дан 15 August 2018 в 18:06
  • 1
    Большое вам спасибо, Род! Однако sda1 сам по себе является ESP [возможно, не загрузочным по умолчанию], который используется для загрузки в аварийный раздел (20Gb SONSYS). Я знаю, что это странная настройка, но Sony по каким-то причинам сделала это так. Нажатие кнопки "ASSIST" , в отличие от кнопки питания, вызывает этот загрузчик. – Rohan Dhruva 14 June 2012 в 09:33
  • 2
    Спасибо за информацию Rod, у меня была такая же проблема, и после ваших шагов частично ее исправить. GRUB работал отлично, а затем я попытался добавить запись для Win7, и теперь GRUB не отображается, просто загрузившись прямо в Ubuntu. Любые идеи, почему и как исправить? Также мой раздел EFI - sda1, а Win - sda3, если X в этой строке «set root = '(hd0, gptX)» & quot; равным 1 или 3? Я попробовал оба! – barro32 3 July 2012 в 08:12
  • 3
    @Rod, Где я должен добавить пункт меню (Windows 7)? в \ etc \ default \ grub? – alekhine 27 July 2012 в 13:19

Другие вопросы по тегам:

Похожие вопросы: