Я пытаюсь настроить 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.
Спасибо за любые идеи, Googling завел меня так далеко, и я не могу найти ничего лучше.
PS - windows 8 МОЖЕТ уничтожить раздел при выключении - когда я заказываю выключение в W8, это занимает необычно много времени (около полминуты вместо ~ 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
.Если вы не можете заставить его работать и не хотите или не можете заменить компьютер, у меня есть два других предложения для обходных путей:
Я наткнулся на эту страницу после публикации своего первого ответа, и у него есть еще одна возможная причина, по крайней мере, для части вашей проблемы: Очевидно, Windows 8 использует метод завершения работы, который больше похож на операцию приостановки на диск. В результате подключенные разделы могут быть повреждены, если вы выключите Windows, а затем загрузите Linux. Хотя ESP, обычно не устанавливается в Windows 7, AFAIK, это может быть , что Windows 8 делает вещи по- другому, или , может быть, ESP будет установлен в Windows 7 и просто , кажется, скрыт. В любом случае вы можете отключить эту функцию Windows 8, введя следующую команду в окне командной строки администратора:
источник
efibootmgr
; это показало, что есть необычно большое количество загрузочных менеджеров (больше, чем 3, которые я ожидал), что привело меня к лучшему взгляду на мой диск; и я обнаружил, что на самом деле у меня есть два раздела EFI: -x Только второй (/ dev / sda2) был показан какEFI system partition
GDisk, так что я подумал, что он правильный. Другой - просто раздел FAT (sda1) с тем же размером и стандартной файловой структурой EFI.bootmgfw.efi
powercfg /h off
в w8, и это исправило W8, ломая раздел EFI .. это святой Грааль, который я искал, кажется :) СПАСИБО, СПАСИБО, СПАСИБО!powercfg /h off
решило твою главную проблему. Возможно, вам будет интересно услышать, что я натолкнулся на информацию о том, что некоторые реализации UEFI, по-видимому, закодированы для перемещения загрузчика под названием «Диспетчер загрузки Windows» в начало их списков. Таким образом, переименование ваших загрузчиков с помощьюefibootmgr
может позволить вам установить rEFInd (или что угодно) под более разумным именем файла.