10

Я пытаюсь настроить Windows 8 и Arch Linux на новый Sony Vaio E14 с предустановленной Windows 8.

До сих пор:

  • установил W8 на мой новый SSD (переключен на оригинальный HDD) с помощью Recovery Media
  • сжал раздел W8, удалил раздел восстановления, отключил своп
  • подтвердил загрузку W8 просто отлично

На Арке:

  • отключена безопасная загрузка в биосе
  • подтвердил загрузку W8 просто отлично
  • Загрузил Arch с CD и установил все на 4-й и 5-й раздел
  • настроить rEFInd для загрузчика ядра EFIstub

После этого стало еще хуже. Я не смог загрузить ничего, кроме Windows 8 (хотя я был рад, что они, по крайней мере, продолжали работать просто отлично).

Пытался:

  • создание EFI\refind\ и помещение туда .efi (согласно руководству по Arch
  • перезапись EFI\ boot\ bootx64.efi
  • перезапись EFI\ Microsoft\ Boot\ bootmgr.efi
  • перезаписывать EFI\ Microsoft\ Boot\ bootmgfw.efi --- YAY rEFInd обнаружен!

Все идет нормально. Я сохранил весь каталог W8 Boot\ в EFI\ windows8 и настроил для него пункт меню загрузки; и он загрузился просто отлично.

Но при перезагрузке все было не так - «Операционная система не найдена» вместо любого загрузчика (refind или w8).

Загрузился обратно в Arch, используя live CD, чтобы узнать, что в разделе EFI была ошибочная таблица FAT. fsck.vfat исправил это, и я обнаружил, что EFI\Microsoft\Boot вернулся в исходное состояние (все файлы refind удалены и заменены на загрузчики W8). Я перезаписал их снова и вернулся к REFInd, показавшемуся корректно, и Arch был полностью загружаемым.

После этого я попытался переименовать только EFI\Microsoft\Boot\bootmgfw.efi в bootmgfw.001.efi (затем скопировать .efi из refind в bootmgfw.efi и сохранить КАЖДЫЙ ДРУГОЙ файл), но с тем же результатом. Попытка пометить раздел GPT EFI только для чтения, тот же результат.

Теперь мне немного не повезло. Arch отлично загружается, как и W8, но в процессе уничтожает раздел EFI.

Спасибо за любые идеи, Гуглинг привел меня так далеко, и я не могу найти ничего лучше.

PS - windows 8 МОЖЕТ уничтожить раздел при выключении - когда я заказываю выключение в W8, это занимает необычно много времени (около полминуты вместо ~ 5 секунд). Так что теоретически я мог бы решить эту проблему путем жесткого сброса ноутбука вместо обычного выключения, но это просто нехорошо.

1 ответ1

5

Возможно, стоит выполнить холодное отключение (нажать кнопку питания) в Windows, чтобы проверить, сможете ли вы загрузиться позже, просто в качестве теста. Очевидно, что вы не захотите делать это на регулярной основе, но может быть полезно подтвердить, что Windows перезаписывает ваши пересмотренные данные ESP. Если это фактически повреждает файловую систему при завершении работы Windows, то это звучит как ошибка Windows, о которой следует сообщить в Microsoft. Если он просто заменяет файл bootmgfw.efi , то это технически входит в задачу Microsoft, так что на самом деле это не ошибка.

В более широком смысле, пытались ли вы использовать программу efibootmgr linux для регистрации rEFInd в EFI под его собственным именем (скажем, EFI/refind в ESP)? Это описано в документации rEFInd, в разделе по ручной установке Linux. Кроме того, вы можете установить с помощью сценария install.sh . Любой метод потребует загрузки в режиме EFI для успешного выполнения, но вы должны быть в состоянии сделать это с помощью rEFInd CD или выполнить загрузку с аварийного диска в режиме EFI.

Если efibootmgr не работает, попробуйте использовать bcfg в программе оболочки EFI, как описано на этой вики-странице Arch.

Если эти процедуры не работают, попробуйте использовать efibootmgr или bcfg чтобы удалить запись для bootmgfw.efi из NVRAM, а затем установить rEFInd как EFI/BOOT/bootx64.efi . Теоретически, компьютер может затем запустить rEFInd, который должен нормально работать и включать загрузку любой ОС. Однако есть две потенциальные ошибки: микропрограмма может EFI/Microsoft/boot/bootmgfw.efi EFI/BOOT/bootx64.efi ; и Windows может проверить свои параметры загрузки и добавить собственный загрузчик обратно в NVRAM при загрузке. Тем не менее, этот метод стоит попробовать.

Спецификация EFI требует, чтобы компьютеры соблюдали свои настройки NVRAM (которые управляются efibootmgr в Linux, bcfg в оболочке EFI или аналогичных программах), поэтому, если эти утилиты не работают, ваша прошивка не работает, и вы можете рассмотреть вернуть компьютер для другой модели. (Обязательно сообщите Sony, почему вы вернули компьютер, если это так!) Этот тип проблемы на самом деле довольно распространен; Например, у меня есть плата Gigabyte с "гибридным EFI", которая постоянно забывает свои настройки NVRAM. По крайней мере, с этой платой, однако, можно обойти проблему, назвав мой загрузочный менеджер / загрузчик по выбору EFI/BOOT/bootx64.efi .

Если вы не можете заставить его работать и не хотите или не можете заменить компьютер, у меня есть два других предложения для обходных путей:

  • Вы можете держать загрузочный CD или USB-флеш-накопитель под рукой с rEFInd и использовать его, когда хотите загрузить Linux. Для этого может потребоваться использование функциональной клавиши, чтобы компьютер загружался со съемного носителя, а не с жесткого диска при загрузке.
  • Вы можете стереть разделы с диска, переразбить с помощью MBR и переустановить обе ОС в режиме BIOS, а не в режиме EFI. Это удалит любую нестабильность EFI с картинки и позволит вам использовать GRUB в режиме BIOS в качестве загрузчика. Для этого, вероятно, потребуется розничная версия установщика Windows 8; по крайней мере, для Windows 7 копии OEM были негибкими в отношении режима установки (BIOS против EFI). В качестве альтернативы, можно выполнить преобразование из загрузки в режиме EFI в загрузку в режиме BIOS без переустановки. Возможен противоположный вариант (я собирался опубликовать ссылку на сайт, на котором он описан, но этот сайт не позволит мне опубликовать более двух ссылок; извините), и я, кажется, вспоминаю, как наткнулся на описание выполнения EFI преобразование в BIOS где-то, но у меня нет удобного URL. Поиск Google может что-то поднять.

Я наткнулся на эту страницу после публикации своего первого ответа, и у него есть другая возможная причина, по крайней мере, для части вашей проблемы: Очевидно, Windows 8 использует метод завершения работы, который больше похож на операцию приостановки на диск. В результате подключенные разделы могут быть повреждены, если вы выключите Windows, а затем загрузите Linux. Хотя ESP, обычно не устанавливается в Windows 7, AFAIK, это может быть , что Windows 8 делает вещи по- другому, или , может быть, ESP установлена в Windows 7 и просто , кажется, скрыт. В любом случае вы можете отключить эту функцию Windows 8, введя следующую команду в окне командной строки администратора:

powercfg /h off

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .