web-dev-qa-db-fra.com

La mise à niveau de Windows 8.1 a détruit ma machine Ubuntu

J'ai eu Win 8 et Ubuntu 12.04 coexistant pacifiquement sur un Toshiba Portégé Z935. Le mode EFI, Grub2, démarrage sécurisé désactivé, devait utiliser "réparation recommandée" sur l'outil Boot-Repair pour que le démarrage fonctionne après l'installation initiale d'Ubuntu. Tous heureux pendant environ 10 mois jusqu'à ....

J'ai bêtement accepté la suggestion de MS de mettre à jour Windows vers la 8.1. Après la mise à niveau, chaque démarrage m’a amené à une invite "sauvetage de grub>". A été capable de faire une longue solution de contournement pour revenir au menu de grub à chaque démarrage, mais voulait le réparer.

J'ai donc commencé à jouer avec Boot-Repair, à plusieurs reprises, jusqu'à ce que la boîte de dialogue ne démarre plus du tout (obtenez simplement un écran noir avec "Insérer un disque avec des fichiers de commande" ou quelque chose du genre).

J'ai essayé de réinstaller Win 8, mettez à niveau vers 8.1, puis réinstallez Ubuntu. Même résultat - ne démarre pas du tout. Essayé de réinstaller 8 sans mise à niveau vers 8.1, même résultat. J'ai essayé d'installer JUST Ubuntu. Même résultat.

Enfin, set box UEFI à CSM, réinstallez Ubuntu. Maintenant ça démarre! Donc, je suppose que l’UEFI est en quelque sorte insufflée dans le "firmware" par une ou plusieurs des actions ci-dessus.

Comment réparer? Je suis à court d'idées et je veux retrouver EFI. MERCI!!!

2
Jon

Mise à jour: j'ai mis à jour le script maintenant

J'ai créé un script pour aider les utilisateurs à démarrer Windows 8.1 et Linux. Je crains que ce ne soit pas un script Linux, mais je suis sûr que vous pourriez faire la même chose sous Linux ...

Ce script modifiera certaines choses de votre partition S: \. Vous devez l'exécuter en tant qu'administrateur.

Remarque: dans cet exemple, j'utilise SuSE 12.1 et deux disques durs distincts avec Windows 8.1 sur le disque dur "principal". Ceci est également conçu pour les machines HP, mais le répertoire HP n’est pas si important que cela. Vous pouvez simplement changer le mot "HP" en un autre répertoire de votre partition S: \. Tout ce que j'ai dans le mien est

S:\EFI S:\Boot.old

Vous devrez télécharger et extraire REFind et vous assurer que vous avez défini REFINDSOURCEPATH avec son emplacement.

S'il vous plaît ne faites pas ceci à moins que vous sachiez ce que vous faites!

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

Je reçois un message d'avertissement lorsque EFI est activé. Tout ce que vous avez à faire est de supprimer le mot "hdbios" du fichier de configuration si vous avez activé EFI.

L’autre partie importante est votre fichier de configuration. Comme vous pouvez le voir, le mien se trouve à l'emplacement C:\refind.conf. Ce n'est probablement pas l'endroit le plus sensé pour le dire, mais au moins, vous savez qu'il ne sera pas effacé si vous supprimez autre chose par erreur.

Le mien est comme suit, mais je vous suggère de suivre la documentation ci-dessus pour configurer le vôtre correctement. Vous pouvez voir que j'utilise le fichier EFI/Microsoft/boot/bootmgfw_.efi renommé dans le fichier de configuration.

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
}
1
jquerynewbie

ESSAYEZ CECI EN PREMIER

Dans Win 8.1, maintenez la touche MAJ enfoncée pendant que vous cliquez sur Redémarrer. Il fera apparaître les options de démarrage avancées. Vous devriez pouvoir sélectionner votre partition de démarrage Ubuntu à partir de là, puis démarrer dessus.

Enregistre le problème de la réinstallation, mais vous devez demander à Windows de charger Ubuntu ...

0
abbaf33f

Essaye ça:

  1. Téléchargez la clé USB ou la version CD-R de rEFInd.
  2. Préparez un lecteur flash USB ou un CD-R avec rEFInd.
  3. Démarrez à partir du disque rEFInd. (Pour ce faire, vous devrez peut-être désactiver le support CSM.)
  4. Si rEFInd apparaît, testez sa capacité à démarrer Windows et Linux.
  5. Si vous pouvez démarrer à la fois Windows et Linux, vérifiez que votre partition système EFI (ESP) est monté sur /boot/efi et installez la version du paquet Debian de rEFInd.

En théorie, à ce stade, votre ordinateur devrait démarrer sur rEFInd, ce qui devrait vous permettre de démarrer Windows ou Linux. Si cela ne fonctionne pas, envoyez l'URL fournie par Boot Repair; cela nous donnera des informations critiques spécifiques au système.

À l'avenir, sachez que les mises à niveau du système d'exploitation modifient souvent le chargeur de démarrage EFI par défaut. Vous pouvez modifier cela dans chaque système d'exploitation à l'aide d'un outil spécifique, tel que bcdedit sous Windows ou efibootmgr sous Linux; mais vous devez savoir comment utiliser ces outils. Le documentation d'installation de rEFInd explique comment utiliser ces outils pour enregistrer rEFInd. La procédure est similaire pour les autres chargeurs de démarrage.

0
Rod Smith