Por que não abençoe tornar o rEFInd boot por padrão? [fechadas]

1

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
    
por trusktr 04.01.2016 / 09:37

2 respostas

2

Primeiro, a opção --root não é usada para especificar um ESP; é usado para especificar o diretório raiz da sua instalação normal ( / ). Ele é destinado para uso ao instalar o rEFInd de um sistema de emergência do Linux, embora possa ser usado em um sistema OS X (mas provavelmente não seria muito útil lá, exceto talvez em conjunção com --notesp - mas eu não testei isso). Assim, você está basicamente "latindo na árvore errada" ao tentar usar essa opção.

O script refind-install realmente não possui opções explícitas para instalar o rEFInd em um ESP secundário. No Linux, você pode controlar o ESP montando o que deseja em /boot ou /boot/efi ; mas no OS X, o ESP não é normalmente montado, então o script tenta encontrar o ESP, e se você tiver múltiplos ESPs, não é garantido usar o que você quer. Nesse caso, você praticamente precisa voltar à instalação manual, conforme descrito aqui:

link

Como alternativa, você pode usar --ownhfs para instalar o rEFInd em um volume dedicado do HFS +. Note que ter dois ESPs provavelmente não será útil. Eu sei que você diz que quer duas ESPs, mas você não disse por que você quer isso, e na ausência de uma razão, minha sugestão é que você esqueça, porque provavelmente não há nenhum benefício. O ESP é significado para ser compartilhado entre sistemas operacionais. Existe o perigo de um sistema operacional atrapalhar os arquivos de outro SO no ESP, mas manter um backup deve permitir a recuperação de tais problemas.

AFAIK, a opção --folder para bless funciona ao instalar em um volume HFS +, mas não ao instalar em um volume FAT. Alguns dos detalhes desse comando não parecem estar bem documentados - ou, pelo menos, não encontrei boa documentação. IIRC, quando eu escrevi refind-install , eu peguei exemplos de vários sites e experimentei até conseguir algo que funcionasse, então ajustei com o tempo usando o feedback de outros usuários.

    
por Rod Smith 04.01.2016 / 16:26
0

Eu posso estar errado, mas se você quiser que o refind apareça depois do boot, acredito que você deve escolher sua partição ESP para refind.

Você está tentando instalar a partir do Linux ou do Mac OS X?

    
por Joe 04.01.2016 / 10:32