Como o grub2 carrega o kernel de um volume LVM?

6

O Grub2 é capaz de carregar o kernel mesmo se /boot for colocado em um volume LVM. Para usar este recurso é necessário adicionar insmod lvm (o módulo pode estar na partição grub bios que não está em um volume LVM) na entrada do grub correspondente. Mas isso não me explica como o grub lê o kernel, já que o kernel deve ser carregado antes que qualquer coisa possa ser inserida nele.

Como funciona?

    
por vehsakul 11.06.2014 / 18:05

2 respostas

9

O comando insmod no GRUB2 está relacionado apenas aos módulos GRUB e não ao kernel que está sendo carregado. Quando você executa insmod lvm , está carregando um módulo do GRUB para permitir que ele leia o volume do LVM.

    
por 11.06.2014 / 18:13
5

Já foi mencionado que o comando grub2 insmod não está relacionado ao kernel, mas apenas suporta módulos para o grub. Esta talvez tenha sido uma má escolha de palavra-chave, pois pode causar confusão com os módulos do kernel, mas os dois não estão relacionados.

Como o grub2 acessa o LVM sem o kernel? O LVM tem uma estrutura definida no disco e contém metadados. Qualquer coisa que possa ler um disco bruto e saiba como interpretar os metadados do LVM2 para encontrar um sistema de arquivos pode buscar um arquivo sem precisar de um kernel. Uma vez que o módulo lvm grub2 localizou o sistema de arquivos com o kernel, o kernel é carregado da mesma forma que seria de um sistema de arquivos normal - copiado do disco bruto para a memória, descompactado e executado.

    
por 11.06.2014 / 18:19

Tags