Após a instalação do Windows, o Fedora não é mais inicializado. Obtendo o erro: arquivo '/ vmlinuz' não encontrado encontrado. Como corrijo a inicialização?

1

Eu tive que instalar o Windows 10. Como estava tendo dificuldades com a instalação, desconectei as duas primeiras unidades (que tinham dados do Fedora). Então, com apenas um disco rígido conectado, consegui instalar o Windows com sucesso.

Agora, conectei todas as minhas unidades. Eu consigo fazer o Windows inicializar corretamente, mas o Fedora não está mais inicializando.

Este é o erro quando eu seleciono o Fedora no grub:

error: no such device: 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2

error: file'/vmlinuz-4.13.9-300.fc27.x86_64' not found.

error: you need to load the kernel first.

Então, eu pesquisei e encontrei este pergunta , mas para ser honesto, eu realmente não entendi a resposta completamente. De qualquer maneira, pressionei c para a linha de comando do grub. Quando eu digito ls na linha de comando, vejo isso:

(lvm/fedora_hdd-swap) (lvm/fedora_sdd-root) (lvm/fedora_sdd-home) (hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,gpt12) (hd1,gpt11) (hd2) (hd3) (hd3,gpt4) (hd3,gpt3) (hd3,gpt2) (hd3,gpt1)

Agora, quando eu digito ls (lvm/fedora_hdd-root)/ , eu vejo todos os arquivos linux necessários, como / boot, / etc, etc. Então, meus arquivos estão sãos e salvos, eu só preciso configurar o grub corretamente, eu estou assumindo?

Quando eu volto para o grub, e digito e para editar a listagem do Fedora, vejo isto:

getparams 'Fedora (4.13.9-300.fc27.x86_64) 27 (Workstation Edition)
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=achi0,gpt2 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2
    else
        search --no-floppy --fs-uuid --set=root 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2
    fi  

Acho que, com base no que vejo na linha de comando do grub, devo editar a listagem de acordo.

    
por gjvatsalya 24.08.2018 / 04:23

1 resposta

2

O GRUB não se importa com a sua partição raiz do Linux; somente o kernel do Linux se importa com isso. O que o GRUB deseja encontrar é a partição que contém o sistema de arquivos /boot . Por várias razões, o GRUB o chama de "sistema de arquivos raiz do GRUB".

O nome do caminho do kernel na mensagem de erro error: file '/vmlinuz-4.13.9-300.fc27.x86_64' not found não tinha /boot prefixado a ele. Isso me diz que seu /boot foi provavelmente um sistema de arquivos separado, e a linha set root='hd0,gpt2' na configuração do GRUB para inicializar o Fedora me diz que costumava ser a segunda partição em algum disco particionado por GPT em algum momento.

Se você digitar ls (lvm/fedora_hdd-root)/boot/ , provavelmente descobrirá que é apenas um diretório vazio. Ele serve como o ponto de montagem para o sistema de arquivos /boot real.

Existe também o UUID do sistema de arquivos, mas a mensagem de erro error: no such device: 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2 indica que ele não pode ser encontrado.

Meu palpite é que, na melhor das hipóteses, a ordem de detecção da unidade pode ter mudado, e o que costumava ser hd0,gpt2 agora poderia ser hd3,gpt2 .

No pior caso, sua partição /boot estava no disco em que você instalou o Windows 10 e a instalação do Windows substituiu essa partição. Mas uma partição /boot é relativamente fácil de substituir: você precisará inicializar no modo de recuperação a partir de uma mídia de instalação do Fedora, usando a opção do menu de inicialização Troubleshooting - > Rescue a Fedora system ou a opção de inicialização inst.rescue .

Quando o modo de recuperação for iniciado, ele deverá oferecer um prompt de comando. Se tudo correr bem, o seu sistema Fedora já deve estar montado para você em /mnt/sysimage . Então, primeiro use um comando chroot /mnt/sysimage , assim você não terá que prefixar /mnt/sysimage para todos os nomes de caminho, e você poderá usar as ferramentas normais de gerenciamento de pacotes.

Agora você pode criar uma nova partição /boot e montá-la, ou - já que seu GRUB pode aparentemente ler volumes lógicos LVM - basta reinstalar o conteúdo que deveria estar no sistema de arquivos /boot no diretório /boot do seu sistema de arquivos raiz.

Como aparentemente você está usando um sistema baseado em UEFI (como todas as suas partições são do tipo GPT), isso significa apenas criar um diretório vazio em /boot/efi se ele ainda não existir (para agir como um ponto de montagem para o EFI System Partition, ou ESP), executando mount /boot/efi , verificando se as configurações em /etc/default/grub correspondem à configuração atual e reinstalando o pacote do kernel mais recente usando rpm --reinstall .

O pacote kernel contém o arquivo /vmlinuz-* , e o processo de instalação do pacote criará automaticamente um arquivo initramfs apropriado para ele. Feito isso, todos os arquivos essenciais que devem estar em /boot devem ser recuperados. O processo de reinstalação do pacote kernel deve atualizar o arquivo de configuração do GRUB para você.

Observe que o GRUB tem dois arquivos de configuração: o simplificado em /etc/default/grub e o arquivo de configuração real gerado automaticamente, localizado em /boot/efi/EFI/fedora/grub.cfg nos sistemas UEFI. Se você atualizar o primeiro após reinstalar o pacote do kernel, você pode disparar manualmente a atualização do último arquivo com este comando:

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    
por 24.08.2018 / 11:05