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
}