grub2 usando partição errada / boot

2

Eu instalei recentemente o Ubuntu 18.04 a partir de um USB. Eu fiz tudo da mesma maneira que fiz quando atualizei de 14 para 16 e de 16 para 17, e funcionou todas as vezes até agora. Selecionei "apagar o ubuntu 17 e instalar o ubuntu 18" ao executar 18 a partir de uma imagem USB. Aqui está o meu problema: o Grub2 carrega, mas parece estar usando o arquivo de configuração errado na partição errada. Para executar o Ubuntu eu tenho que definir o diretório raiz para /dev/sda8 e definir os arquivos linux e initrd adequados que vivem em /dev/sda8/boot (é também onde o arquivo grub.cfg que eu quero usar mora) . Eu posso ver que há um arquivo grub.cfg em dev/sda1/EFI/ubuntu/grub.cfg que apenas aponta para /dev/sda5 , que é a partição do BIOS. Minha pergunta é: como posso obter o grub para usar o arquivo de configuração que atualizei do Ubuntu (o que está em /dev/sda8/boot )? Estou preocupado que, se eu alterar o em /dev/sda1 , eu quebrarei seriamente algo, mas se não, seria suficiente usar o conteúdo do arquivo cfg em sda8 ?

Aqui está a saída do terminal de fdisk -l para referência:

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    206847    204800   100M EFI System
/dev/sda2     206848    468991    262144   128M Microsoft reserved
/dev/sda3     468992 816990982 816521991 389.4G Microsoft basic data
/dev/sda4  816992256 818726911   1734656   847M Windows recovery environment
/dev/sda5  818726912 818728959      2048     1M BIOS boot
/dev/sda6  935913472 939819007   3905536   1.9G Linux swap
/dev/sda7  942651392 976773119  34121728  16.3G Microsoft basic data
/dev/sda8  818728960 935913471 117184512  55.9G Linux filesystem

O arquivo /dev/sda1/EFI/ubuntu/grub.cfg tem o seguinte conteúdo, observe que (hd0,5) é a partição do BIOS:

search.fs_uuid 7e076866-97b4-4d3c-b864-491137212645 root hd0,gpt5
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
    
por ThisGuyCantEven 20.06.2018 / 20:22

2 respostas

0

Como mencionei nos comentários, estou confuso sobre para que serve a partição 'BIOS boot' e por que você tem vários arquivos grub.cfg diferentes espalhados em diferentes partições. Acho que tudo o que você precisa é de um arquivo grub.cfg , do qual deve ser possível inicializar o Linux e o Windows.

Outra coisa é ter certeza absoluta de que o USB ao vivo do qual você está atualizando foi criado e inicializado no modo EFI, não modo de inicialização do BIOS legado. Uma maneira fácil de verificar isso é inicializar a partir do USB e verificar se o arquivo / sys / firmware / efi existe. Se não, então não foi inicializado no modo EFI.

Eu tenho um sistema dual-boot bastante similar com o Windows / Linux. Eu verifiquei e há apenas um arquivo grub.cfg , na partição raiz do sistema Linux na pasta / boot / grub. A partição do sistema EFI está sendo montada em / boot / efi durante a inicialização.

Com relação à sua pergunta sobre como modificar o grub.cfg na partição EFI: não deve haver nenhum mal em fazer isso. Na verdade, se você precisar de vários arquivos grub.cfg por algum motivo, provavelmente seria melhor manter os arquivos mesmo (em vez de esperar que a ferramenta de atualização automática lide com isso corretamente). Eu faria o backup do arquivo criado automaticamente primeiro e você também pode testar os comandos de inicialização na linha de comando do grub, antes de modificar o arquivo. O pior que provavelmente aconteceria se você estragasse alguma coisa é que você será jogado em um prompt de comando do GRUB, onde você terá que inserir os comandos de inicialização manualmente. Se você não sabe como fazer isso, talvez seja necessário inicializar por meio de um USB ativo e corrigir / restaurar o arquivo.

A outra coisa é que, se você fizer alterações em grub.cfg manualmente, elas podem ser sobrescritas na próxima vez que o GRUB fizer uma atualização automática (nesse caso, eu provavelmente desabilitaria o update-grub command no seu linux distribuição).

    
por 21.06.2018 / 00:06
0

Obrigado ao @ Time4Tea por me ajudar. Como se constata, houve uma solução muito simples para isso. O arquivo grub.cfg que postei anteriormente, que viveu em (hd0,1)/EFI/ubuntu/grub.cfg aka /dev/sda1/EFI/ubuntu/grub.cfg , precisava apenas alterar o prefixo de (hd0,gpt5) para (hd0,8) , que é onde o arquivo grub.cfg que criei com sudo update-grub2 foi localizado. Eu o substituí com o nano e o salvei montando /dev/sda1/ do ubuntu (depois de manualmente usar o terminal grub para inicializar no Ubuntu). Abaixo está o novo arquivo com uma pequena alteração:

search.fs_uuid 7e076866-97b4-4d3c-b864-491137212645 root hd0,gpt5
set prefix=(hd0,8)'/boot/grub'
configfile $prefix/grub.cfg
    
por 24.06.2018 / 22:20