Eu não sei exatamente qual foi o problema, mas esta é uma solução funcional para ter uma partição contendo o grub.cfg acessível a partir do windows e linux.
- crie uma partição fat32 com windows e dê uma carta para a partição, tive problemas com o gparted (não é necessário colocar a partição no início). Então reinicie no linux, a nova partição é sdb8 para mim.
primeiro backup /boot/grub/grub.cfg antes de iniciar estes comandos
sudo mkdir -p /media/grub2 /media/efi
sudo mount /dev/sdb8 /media/grub2
sudo mkdir -p /media/efi
sudo mount /dev/sdb1 /media/efi
sudo grub-install --no-floppy --boot-directory=/media/grub2/boot --efi-directory=/media/efi /dev/sdb
Em seguida, restaure o backup do grub.cfg em /media/grub2/boot/grub/grub.cfg Em seguida, modifique a ordem de inicialização (F2 na inicialização) para colocar a nova entrada primeiro. Agora é suposto que funciona. Eu tenho uma partição fat32 contendo o grub.cfg que eu posso editar nas janelas e no linux.
Eu acho que é o uso de boot-directory em vez de root-directory e o fato de eu colocar file em / media ao invés de / mnt, eu tentei sem --no-floopy ele funciona também. Eu não faço grub-mkconfig porque ele cria uma entrada não inicializável e depois eu tenho que usar o boot-repair com um live usb.
Eu tentei também tentei:
- efibootmgr: Is é um comando para adicionar entrada no EFI, mas para mim cada modificação estava desaparecendo durante a reinicialização, até mesmo a ordem de inicialização
Talvez outra maneira de fazer isso seja o uso do grub-mkstandalone
Instalei também o rEFInd, o trevo e o OSX siera talvez tenha mudado o meu EFI de uma maneira que funcionasse melhor.