Estou no OS X. No script refind-install
, há um comando bless em execução, mas parece não funcionar:
elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --setBoot --folder "$InstallDir/$TargetDir" --file "$InstallDir/$TargetDir/$Refind"
echo BLESS COMMAND: bless --setBoot --folder "$InstallDir/$TargetDir" --file "$InstallDir/$TargetDir/$Refind"
fi
Eu adicionei a linha echo
extra para ver como é o comando, e esta é a saída:
BLESS COMMAND: bless --setBoot --folder /Volumes/efi///EFI/refind --file /Volumes/efi///EFI/refind/refind_x64.efi
Estou executando o script de instalação assim:
sudo ./refind-install --root /Volumes/efi
onde / Volume / efi contém a raiz de uma partição de sistema EFI personalizada no disco0s6, não o ESP padrão do MacBook 0s1.
Alguma idéia de por que não funciona e como obter o rEFInd para inicializar por padrão?
EDITAR:
Tudo bem, acho que posso saber o que está errado. Então, consegui fazer isso substituindo a opção --root
para refind-install
pela opção --usedefault
, assim:
sudo ./refind-install --usedefault /dev/disk0s6
Agora, o que acontece a seguir é que o script ignora /dev/disk0s6
e vai em frente e instala o rEFInd em /dev/disk0s1
, o principal OS X ESP (que não é o que eu desejava, mas funciona).
O script vai em frente e executa o comando other bless:
if [[ $InstallToEspOnMac == "1" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind" --shortform
elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
Após a reinicialização, isso funciona e o rEFInd é inicializado por padrão. Eu tenho um palpite de que isso está funcionando devido ao fato de ser reinstalado com o padrão /EFI/BOOT/bootx64.efi
dentro da partição do OS X ESP.
Mas isso não é o que eu quero. Gostaria de ter reencontrado instalado em /dev/disk0s6
, em /EFI/refind/
em vez de /EFI/BOOT
.
EDITAR:
Observe também que, ao usar a opção --usedefault
, o script de instalação instala refind_aa64.efi
em /EFI/BOOT
do OS X ESP (disk0s1), mas ao usar a opção --root
para instalar no disk0s6, o script instala refind_x86.efi
Além disso, não tenho certeza se talvez ter a opção --mount
em um comando de bênção, mas não o outro, foi o que fez a diferença.
EDITAR:
Eu consegui copiar / EFI / BOOT do disco0s1 para o disco0s6 e, em seguida, executar o mesmo comando --mount
bless como no script, e isso funcionou.
EDITAR:
Tudo bem, estamos nos aproximando. Eu modifiquei o script e mudei
elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --setBoot --folder "$InstallDir/$TargetDir" --file "$InstallDir/$TargetDir/$Refind"
fi
para
elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind"
fi
e agora que funciona como eu quero: refind instalado em /EFI/refind
na partição cujo ponto de montagem especifico com a opção --root
. Embora isso me dê o resultado que eu estava procurando, há agora um pequeno problema: demora cerca de 30 segundos ou mais para finalmente chegar ao rEFInd ao inicializar, o que é realmente lento por algum motivo. Vou redefinir a NVRAM e tentar novamente ...
EDITAR
Aha! Antes de redefinir a NVRAM, tentei adicionar a opção --shortform
ao comando bless e isso resolveu o problema de latência na edição anterior!
Por que o segundo comando de benção no modo --pasta? Parece funcionar melhor no modo --mount.
Então, por enquanto, a solução foi modificar o segundo comando bless no script para ser exatamente igual ao primeiro, de modo que parte do script tenha a seguinte aparência:
if [[ $InstallToEspOnMac == "1" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind" --shortform
elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind" --shortform
fi
e usei a opção --root
para refind-install
para especificar o ponto de montagem da partição de destino.
mkdir /Volumes/efi
sudo mount -t msdos /dev/disk0s6 /Volumes/efi
sudo ./refind-install --root /Volumes/efi