Grub não vê unidade externa (Intel mac)

Grub não vê unidade externa (Intel mac)

Eu tenho um Intel Mac (MacMini) e um drive USB externo. No disco interno, tenho uma partição com instalação OSX e outra com Ubuntu + Grub2. Na unidade externa, tenho uma cópia da minha partição OSX completa e uma cópia da minha partição Ubuntu completa (ambas com UUIDs diferentes do original).

Eu uso o rEFIt para inicialização dupla. O OSX interno e o Linux e o OSX externo aparecem no menu rEFIt e são inicializáveis. O Linux externo, que desejo inicializar, está faltando. Depois de criar o backup do Linux, fiz update-grub no Linux interno (encontrou todas as 4 instalações) e no externo (através do chroot - encontrou todas as instalações, exceto o Linux interno). Isso não resolveu o problema.

Quando tento inicializar o Linux externo usando o Grub interno, recebo a mensagem de erro:

error: no such device: <the UUID of the external Linux partition>
error: no such partition.
error: you need to load the kernel first.

Quando digito lsno menu interno do Grub, ele lista todas as partições da unidade interna, mas (hd1)está totalmente ausente.

Tentei sincronizar as tabelas de partição na unidade externa usando gptsync, mas ele afirma que não há GPT presente. gdiskencontrei um, no entanto, e uma comparação manual com fdiska saída de me dá a impressão de que eles estão sincronizados. (A partição Linux está incluída em ambas as tabelas.)

EDITAR:

Gravei o rEFInd em um CD e experimentei. Resultados:

  • Quando eu inicializo meu mac pressionando C para inicializar a partir do CD, ele mostra rapidamente o fundo cinza do rEFInd, mas imediatamente inicia o grub a partir da instalação interna. Posso contornar isso selecionando rEFInd em rEFIt. No entanto, isso me dá pouca confiança para instalar o rEFInd no OSX.

  • rEFInd mostra todas as opções que deve mostrar. Como era de se esperar, os Grubs ainda são incapazes de inicializar o Linux a partir do disco externo.

  • Quando eu inicio um kernel Linux a partir do disco externo usando rEFInd, ele inicializa, mas após a inicialização acontece que a partição INternal está montada como /. De acordo comesseartigo, as únicas alterações que devem ser feitas após copiar uma partição estão no grub. Como não estou usando o grub, não entendo.

Responder1

Você deve primeiro entender a diferença entre a inicialização no modo EFI nativo e a inicialização no modo BIOS/CSM/legado. Macs baseados em Intel possuem firmware EFI e o OS X inicializa no modo EFI. Este firmware inclui um emulador de BIOS (conhecido como Módulo de Suporte de Compatibilidade, ou CSM; ou às vezes chamado de suporte de "modo legado") que permite inicializar carregadores de inicialização no modo BIOS. A Apple pretende que isso seja usado para inicializar o Windows; mas muitas pessoas também usam esse suporte BIOS/CSM/legado para inicializar outros sistemas operacionais, incluindo Linux. O Linux, porém, suporta inicialização no modo EFI, bem como inicialização no modo BIOS, portanto, usar o CSM do Mac geralmente é desnecessário e até mesmo uma complicação. OTOH, existem certos modelos nos quais o hardware funciona melhor no Linux quando inicializado no modo BIOS do que quando inicializado no modo EFI.

A inicialização a partir de mídia externa em Macs é uma proposta duvidosa, especialmente no modo BIOS/CSM/legado. Provavelmente, esse é o problema que você está enfrentando. Não conheço nenhuma solução "bala de prata" para o problema no modo BIOS. A solução que provavelmente funcionará é mudar para a inicialização no modo EFI. Para fazer isso, recomendo que você mude do rEFIt abandonado para o fork que eu mantenho,refInd.Entre outras coisas, o rEFInd adiciona suporte para o lançamento direto de kernels Linux com carregadores de stub EFI (que inclui a maioria dos kernels fornecidos pela distribuição desde 3.3.0). Se você inicializar o rEFInd a partir da unidade flash USB ou da imagem de CD-R disponível em sua página de downloads, ele poderá iniciar o Linux a partir de unidades internas e externas (e o OS X de ambos os locais também). Se funcionar, instale o rEFIndno OS Xe também instale o driver para qualquer sistema de arquivos que contenha seu kernel Linux (geralmente ext4fs). O resultado deve ser a capacidade de inicializar qualquer sistema operacional diretamente, ignorando o GRUB.

Se tudo isso funcionar, recomendo remover o feio e perigosoMBR híbrido,que o EFI da Apple usa como gatilho para ativar seu CSM. (O gptsyncutilitário cria ou modifica um MBR híbrido.) Leia esse link para entender o que é um MBR híbrido e por que ele é um problema.


EDITAR:

O fato de o CD-R rEFInd não ter funcionado corretamente quando você usou "C" para inicializá-lo diretamente, mas funcionou quando iniciado a partir do rEFIt diz pouco sobre a probabilidade de o rEFInd funcionar corretamente quando instalado em um disco rígido ou unidade flash USB. Infelizmente, inicializar a partir de mídia óptica em EFI é um tanto complicado, e a Apple parece ter criado suas próprias dificuldades. Portanto, inicializar dessa forma pode ser um pouco arriscado, especialmente porque eu (desenvolvedor do rEFInd) tenho apenas um Mac antigo para testar as coisas. É mais provável que a inicialização a partir do disco rígido (ou de uma unidade flash USB) funcione.

Com base na sua descrição, suspeito que você não conseguiu atualizar seu /etc/fstabarquivo no sistema de arquivos copiado. A atualização /etc/fstabpara consultar o novo UUID da partição é necessária ao seguir esse procedimento. Se por acaso você tiver um /boot/refind_linux.confarquivo, ele também deverá ser atualizado. (Provavelmente você não tem esse arquivo, mas você pode ter se tiver ido um pouco além das minhas instruções ou se já jogou com o rEFInd no passado.)

informação relacionada