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

0

Eu tenho um Mac Intel (MacMini) e um drive USB externo. Na unidade interna, tenho uma partição com uma instalação do OSX e outra com o Ubuntu + Grub2. No drive externo, eu tenho uma cópia da minha partição completa do OSX e uma cópia da minha partição completa do Ubuntu (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 eu quero poder inicializar, está faltando. Depois de criar o backup do Linux, fiz o update-grub no Linux interno (ele encontrou todas as 4 instalações) e no externo (através do chroot - ele 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 eu digito ls no menu interno do Grub, ele lista todas as partições na unidade interna, mas (hd1) está totalmente ausente.

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

EDITAR:

Eu gravei o rEFInd em um cd e experimentei. Resultados:

  • Quando eu inicializo meu mac pressionando C para inicializar a partir do cd, ele mostra o fundo cinza do rEFInd, mas imediatamente inicia o grub a partir da instalação interna. Eu posso contornar isso selecionando rEFInd de 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 o rEFInd, ele inicializa, mas após a inicialização, a partição interna é montada como / . De acordo com este artigo, as únicas mudanças que alguém tem que fazer depois de copiar uma partição, estão no grub. Como não estou usando o grub, não entendo.

por dremodaris 21.07.2014 / 19:44

1 resposta

1

Você deve primeiro entender a diferença entre a inicialização e inicialização do modo EFI nativo no modo BIOS / CSM / herdado. Macs baseados em Intel têm firmware EFI e o OS X inicializa no modo EFI. Esse firmware inclui um emulador de BIOS (conhecido como Compatibility Support Module ou CSM; ou às vezes chamado de suporte a "modo herdado") 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 / herdado para inicializar outros sistemas operacionais, incluindo o Linux. O Linux, no entanto, suporta a inicialização no modo EFI, bem como a inicialização no modo BIOS, portanto, usar o CSM do Mac é muitas vezes desnecessário e até mesmo uma complicação. OTOH, existem certos modelos em que 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 proposição duvidosa, especialmente no modo BIOS / CSM / legado. Provavelmente, esse é o problema que você está encontrando. Eu não conheço nenhuma solução "bala de prata" para o problema no modo BIOS. A solução que provavelmente funcionará é alternar 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 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 tanto de suas unidades internas quanto externas (e do OS X de ambos os locais também). Se isso funcionar, instale o rEFInd no OS X e instale também o driver para qualquer sistema de arquivos que contenha o kernel do Linux (geralmente ext4fs). O resultado deve ser uma capacidade de inicializar um dos sistemas operacionais diretamente, ignorando o GRUB.

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

EDITAR:

O fato de o rEFInd CD-R não funcionar corretamente quando você usou o "C" para inicializá-lo diretamente, mas funcionou quando lançado do rEFIt diz pouco sobre a probabilidade de o rEFInd funcionar corretamente quando instalado em um disco rígido ou USB Flash drive. Infelizmente, a inicialização a partir de mídia ótica no EFI é um pouco confusa, e a Apple parece ter jogado suas próprias rugas. Assim, inicializar dessa maneira pode ser um pouco arriscado, especialmente porque eu (desenvolvedor do rEFInd) tenho apenas um Mac antigo para testar as coisas. Inicializar a partir do disco rígido (ou de uma unidade flash USB) é mais provável que funcione.

Com base na sua descrição, suspeito que você não tenha atualizado o arquivo /etc/fstab no sistema de arquivos copiado. A atualização de /etc/fstab para se referir ao novo UUID da partição é necessária ao seguir esse procedimento. Se por acaso você tiver um arquivo /boot/refind_linux.conf , ele também deverá ser atualizado. (Provavelmente você não tem esse arquivo, mas você poderia se você fosse um pouco além das minhas instruções ou se você tocasse com o rEFInd no passado.)

    
por 24.07.2014 / 14:59