Atualização do Windows 8.1 destruiu minha máquina Ubuntu [duplicada]

2

Eu tinha Win 8 e Ubuntu 12.04 coexistindo pacificamente em um Toshiba Portege Z935. Modo EFI, Grub2, arranque seguro, teve que usar o "reparo recomendado" na ferramenta Boot-Repair para fazer o boot funcionar após a instalação original do Ubuntu. Tudo feliz por cerca de 10 meses até ....

Eu tolamente aceitei a sugestão do MS para atualizar o Windows para o 8.1. Após a atualização, cada inicialização me levou a um "grub rescue >" pronto. Foi capaz de fazer uma longa solução para voltar ao menu do grub em cada inicialização, mas queria que fosse corrigido.

Então, eu comecei a brincar com o Boot-Repair, repetidamente, até que a caixa não fosse inicializada (é só pegar na tela preta com "Inserir disco com arquivos de comando" ou algo assim).

Tentei reinstalar o Win 8, atualizar para o 8.1 e reinstalar o Ubuntu. O mesmo resultado - não inicializaria nada. Tentei reinstalar 8 sem atualizar para 8.1, mesmo resultado. Tentei instalar o Ubuntu. O mesmo resultado.

Por fim, marque a caixa de seleção do UEFI para o CSM e instale o Ubuntu novamente. Agora botas! Então, eu estou supondo que o UEFI é de alguma forma lavado no "firmware" por uma ou mais das ações acima.

Como consertar? Estou sem ideias e quero a EFI de volta. OBRIGADO !!!

    
por Jon 01.12.2013 / 15:38

3 respostas

1

Atualização: atualizei o script agora

Eu criei um script para ajudar os usuários a inicializar o Windows 8.1 e o Linux. Temo que não seja um script do Linux, mas tenho certeza que você poderia fazer algo semelhante no linux ...

Este script irá alterar algumas coisas na sua partição S: \. Você precisa executá-lo como administrador.

Observe, neste exemplo, que estou usando o SuSE 12.1 e estou usando dois discos rígidos separados com o Windows 8.1 no disco rígido "Primário". Isso também é projetado para máquinas HP, no entanto, o diretório HP não é tão importante, então você pode simplesmente alterar 'HP' para qualquer outro diretório que você tenha em sua partição S: \. Tudo o que tenho atualmente no meu é

S: \ EFI S: \ Boot.old

Você precisará baixar e extrair o REFind e certificar-se de ter definido o REFINDSOURCEPATH onde ele está localizado.

Por favor, não faça isso a menos que você saiba o que está fazendo!

::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

Eu recebo uma mensagem de aviso quando o EFI está habilitado, então tudo que você precisa fazer é remover a palavra "hdbios" do arquivo de configuração se você tiver o EFI ativado.

A outra parte importante é o seu arquivo de configuração. Como você pode ver, o meu está localizado em C: \ refind.conf - provavelmente não é o lugar mais sensato para colocá-lo, mas pelo menos você sabe que ele não será apagado se você eliminar qualquer outra coisa por engano.

O meu é o seguinte, mas eu sugiro que você siga a documentação acima para configurar o seu corretamente. Você pode ver que eu uso o renomeado EFI / Microsoft / boot / bootmgfw_.efi no arquivo de configuração.

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
}
    
por jquerynewbie 03.01.2014 / 22:50
0

Tente isto:

  1. Faça o download da unidade flash USB ou da versão em CD-R de rEFInd.
  2. Prepare uma unidade flash USB ou CD-R com rEFInd.
  3. Inicialize a partir do disco rEFInd. (Talvez seja necessário desativar o suporte do CSM para fazer isso.)
  4. Se o rEFInd aparecer, teste sua capacidade de inicializar o Windows e o Linux.
  5. Se você puder inicializar o Windows e o Linux, verifique se sua partição do sistema EFI (ESP) está montada em /boot/efi e instale a versão do pacote Debian de rEFInd.

Em teoria, neste ponto seu computador deve inicializar o rEFInd, que deve permitir que você inicialize o Windows ou o Linux. Se isso não funcionar, poste o URL fornecido pelo Boot Repair; nos dará informações críticas específicas do sistema.

No futuro, esteja ciente de que as atualizações de sistema operacional frequentemente alteram o carregador de inicialização EFI padrão. Você pode alterar isso em cada sistema operacional usando uma ferramenta específica do sistema operacional, como bcdedit no Windows ou efibootmgr no Linux; mas você deve saber como usar essas ferramentas. A documentação de instalação do rEFInd descreve como usar essas ferramentas para registrar o rEFInd. O procedimento é semelhante para outros carregadores de inicialização.

    
por Rod Smith 02.12.2013 / 01:29
0

TENTE PRIMEIRO

No Win 8.1, mantenha pressionada a tecla SHIFT enquanto clica em Reiniciar. Ele exibirá as opções avançadas de inicialização. Você deve ser capaz de selecionar sua partição de inicialização do Ubuntu e então inicializar nela.

Salva o trabalho de reinstalar, mas você precisa pedir ao Windows para carregar o Ubuntu ...

    
por 7a2dd9 11.02.2014 / 04:15