Обновление Windows 8.1 уничтожило мою машину Ubuntu [дубликат]

На этот вопрос уже есть ответ:

У меня были Win 8 и Ubuntu 12.04, мирно сосуществующие на Toshiba Portege Z935. Режим EFI, Grub2, безопасная загрузка отключена, пришлось использовать «рекомендованное восстановление» в инструменте восстановления загрузки, чтобы заставить загрузку работать после исходной установки Ubuntu. Все счастливы около 10 месяцев, пока ....

Я по глупости принял предложение MS обновить Windows до 8.1. После обновления каждая загрузка приводила меня к приглашению «grub rescue>». Был в состоянии сделать длительный обходной путь, чтобы вернуться в меню grub при каждой загрузке, но хотел, чтобы это было исправлено.

Итак, я начал возиться с Boot-Repair, неоднократно, до тех пор, пока компьютер не переставал загружаться (просто выводил черный экран с помощью «Вставьте диск с командными файлами» или что-то в этом роде).

Пытался переустановить Win 8, обновить до 8.1, а затем переустановить Ubuntu. Тот же результат - вообще не загружался. Пробовал переустановить 8 без обновления до 8.1, результат тот же. Пробовал установить ПРОСТО Ubuntu. Тот же результат.

Наконец, переключите UEFI в CSM, снова установите Ubuntu. Теперь он загружается! Итак, я предполагаю, что UEFI каким-то образом попадает в «прошивку» одним или несколькими из указанных выше действий.

Как исправить? У меня нет идей, и я хочу вернуть EFI.БЛАГОДАРНОСТЬ!!!

2
задан 4 January 2014 в 05:23

3 ответа

Обновление: я обновил скрипт сейчас

Я создал скрипт, чтобы помочь пользователям загружать Windows 8.1 и Linux. Боюсь, что это не скрипт Linux, но я уверен, что вы могли бы сделать то же самое в Linux ...

Этот скрипт изменит некоторые вещи в вашем разделе S: \. Вам нужно запустить его как администратор.

Обратите внимание, что в этом примере я использую SuSE 12.1 и использую два отдельных жестких диска с Windows 8.1 на «основном» жестком диске. Это также разработано для компьютеров HP, однако каталог HP не так важен, поэтому вы можете просто заменить «HP» на любой другой каталог, который есть в вашем разделе S: \. Все, что у меня сейчас есть, это

S: \ EFI S: \ Boot.old

Вам нужно будет загрузить и извлечь REFind и убедиться, что вы указали REFINDSOURCEPATH, где он находится.

Пожалуйста, не делайте этого, если вы не знаете, что делаете!

::Setup Refind script version 04/01
echo off
CHOICE /C YN /M "Have you already attempted copy of files since last losing the boot manager? Y/N"
IF %ERRORLEVEL% EQU 1 SET _FIRSTRUN=Yes
IF %ERRORLEVEL% EQU 2 SET _FIRSTRUN=No
echo on
::Mount partition
mountvol S: /S
::Set paths
::You might want to modify these for your system?
set REFINDSOURCEPATH=C:\refind-bin-0.7.4\refind
set REFINDSPATH=S:\EFI\refind
set SBOOTPATH=S:\EFI\Boot
set REFINDCONFIG=C:\refind.conf
::Rename refind directory if it's already present
rename %REFINDSPATH% refind.old
::Copy to S:\ assuming refind is located at %REFINDSOURCEPATH%
IF "%_FIRSTRUN%" == "Yes" (
echo a | xcopy /E %REFINDSOURCEPATH% %REFINDSPATH%
)
IF "%_FIRSTRUN%" == "No" (
echo d | xcopy /E %REFINDSOURCEPATH% %REFINDSPATH%
)
::Rename old boot HP files - we don't need the HP directory!
rename S:\EFI\HP HP.old
::Rename boot directory - we will recreate this ourselves below
rename  %SBOOTPATH% Boot.old
::Stop this file from being detected/set as default boot - this can still be detected by Windows otherwise.
rename S:\EFI\Boot.old\bootx64.efi bootx64.efi.old

::Recreate the boot directory
mkdir %SBOOTPATH%
::Put refind into the boot directory
IF "%_FIRSTRUN%" == "Yes" (
echo a | xcopy /E %REFINDSOURCEPATH%  %SBOOTPATH%
)
IF "%_FIRSTRUN%" == "No" (
echo d | xcopy /E %REFINDSOURCEPATH%  %SBOOTPATH%
)

::Rename/overwrite the file so it will always boot refind
rename %SBOOTPATH%\refind_x64.efi bootx64.efi
::This is a dirty hack to stop Microsoft finding their EFI file and setting as default boot
IF "%_FIRSTRUN%" == "Yes" (
copy S:\EFI\Microsoft\boot\bootmgfw.efi S:\EFI\Microsoft\boot\bootmgfw.efiold
rename S:\EFI\Microsoft\boot\bootmgfw.efi bootmgfw_.efi
)
::This is a dirty hack to stop Microsoft finding their EFI file and setting as default boot
IF "%_FIRSTRUN%" == "No" (
::I'm assuming we don't have to do anything different at this point. Error may be thrown but should not cause issues.
copy S:\EFI\Microsoft\boot\bootmgfw.efi S:\EFI\Microsoft\boot\bootmgfw.efiold
rename S:\EFI\Microsoft\boot\bootmgfw.efi bootmgfw_.efi
)

::Copy the config file.
copy /Y %REFINDCONFIG%  %REFINDSPATH%\refind.conf
::Set the boot manager (doesn't always work)

bcdedit /set {bootmgr} path \EFI\refind\refind_x64.efi
echo off
pause

CHOICE /C YN /M "Press Y to destroy the S:\EFI\Boot.old directory"
IF %ERRORLEVEL% EQU 1 SET _BOOT=Yes
CHOICE /C YN /M "Press Y to destroy the S:\EFI\refind.old directory"
IF %ERRORLEVEL% EQU 1 SET SET _REFIND=Yes
CHOICE /C YN /M "Press Y to destroy the S:\EFI\HP.old directory"
IF %ERRORLEVEL% EQU 1  SET _HP=Yes

IF "%_BOOT%" == "Yes" (
::Remove the path below
rmdir /s S:\EFI\Boot.old
echo "Removing path"
)

IF "%_REFIND%" == "Yes" (
::Remove the path below
rmdir /s S:\EFI\refind.old
echo "Removing path"
)

IF "%_HP%" == "Yes" (
::Remove the path below
rmdir /s S:\EFI\HP.old
echo "Removing path"
)

pause
echo "Pressing a key will restart immediately"
pause

::Restart
shutdown /r /t 0

Я получаю предупреждающее сообщение, когда EFI включен, поэтому все, что вам нужно сделать, это удалить слово «hdbios». "из файла конфигурации, если у вас включен EFI.

Другая важная часть - это ваш конфигурационный файл. Как вы можете видеть, мое находится в C: \ refind.conf - это, вероятно, не самое разумное место для его размещения, но, по крайней мере, вы знаете, что оно не будет стерто, если вы по ошибке удалите что-то еще.

У меня следующее, но я бы посоветовал вам следовать приведенной выше документации, чтобы правильно настроить свою. Вы можете видеть, что я использую переименованный EFI / Microsoft / boot / bootmgfw_.efi в файле конфигурации.

timeout 20
hideui singleuser
#hideui all
#icons_dir myicons
use_graphics_for windows
showtools reboot, exit
scanfor internal,external,optical,hdbios,manual
dont_scan_volumes ROOT BOOT
dont_scan_dirs EFI/Boot, Boot
#scan_all_linux_kernels
#also_scan_dirs EFI/Microsoft/boot, Microsoft/boot

menuentry Windows8 {

    loader EFI/Microsoft/boot/bootmgfw_.efi
    icon EFI/refind/icons/os_win.icns

}


menuentry SuSE {
    icon EFI/refind/icons/os_linux.icns
    volume BOOT
    loader \vmlinuz
    initrd \initrd
    options "video=1600x900 splash=silent quiet showopts vga=0x37f root=UUID=201bb438-10b4-49aa-ac1c-4c7d52ad66a0
    splash=silent quiet showopts"
}

menuentry SuSERoot {
    icon EFI/refind/icons/os_linux.icns
    volume ROOT
    loader /boot/vmlinuz-3.4.11-2.16-desktop
    initrd /boot/initrd-3.4.11-2.16-desktop 
    options "video=1600x900 splash=silent quiet showopts vga=0x37f root=UUID=201bb438-10b4-49aa-ac1c-4c7d52ad66a0
    splash=silent quiet showopts"
    disabled
}
0
ответ дан 4 January 2014 в 05:23

Попробуйте:

  1. Загрузите флэш-накопитель USB или CD-R версию rEFInd.
  2. Подготовьте флэш-накопитель USB или CD-R с помощью команды REFInd.
  3. Загрузка с первого диска. (Для этого может потребоваться отключить поддержку CSM.)
  4. Если появится rEFInd, проверьте его способность загружать как Windows, так и Linux.
  5. Если вы можете загружать как Windows, так и Linux, убедитесь, что ваш системный раздел EFI (ESP) смонтирован на /boot/efi, и установите версию rEFInd для пакета Debian.

Теоретически, в этот момент ваш компьютер должен загрузиться с rEFInd, что должно позволить вам загружать либо Windows, либо Linux. Если это не работает, то опубликуйте URL, который предоставляет Boot Repair; это даст нам критическую системную информацию.

В будущем следует помнить, что обновления ОС часто меняют загрузчик EFI по умолчанию. Вы можете изменить это в каждой ОС, используя специальный инструмент для ОС, такой как bcdedit в Windows или efibootmgr в Linux; но вы должны знать, как использовать эти инструменты. Документация по установке rEFInd описывает, как использовать эти инструменты для регистрации rEFInd. Процедура аналогична для других загрузчиков.

0
ответ дан 4 January 2014 в 05:23

ПОПРОБУЙТЕ ЭТО ПЕРВЫЙ

В Win 8.1 удерживайте SHIFT, пока вы нажимаете «Перезагрузить». Это вызовет дополнительные параметры запуска. Там вы сможете выбрать загрузочный раздел Ubuntu, а затем загрузиться в него.

Сохраняет проблему переустановки, но вы должны попросить Windows загрузить Ubuntu ...

0
ответ дан 4 January 2014 в 05:23

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

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