Para uma melhor experiência com caixas de código, experimente ver o site em um Desktop.
A principal vantagem de utilizar o LVM (Logical Volume Manager) no Linux é a flexibilidade que ele oferece para gerenciar o espaço em disco. Com o LVM, é possível expandir, reduzir e reorganizar volumes lógicos facilmente, sem a necessidade de reformatar ou interromper o sistema, o que é ideal para ambientes que precisam se adaptar rapidamente a mudanças de armazenamento. Além disso, ele permite combinar vários discos em um único volume, criar snapshots para backup e migração de dados, facilitando a administração e aumentando a eficiência do gerenciamento de espaço.
Para configurar o LVM, você começa criando Physical Volumes (PVs) em discos ou partições, que são a base do LVM. Em seguida, agrupa esses PVs em um Volume Group (VG), que age como um "pool" de armazenamento. A partir do VG, você cria Logical Volumes (LVs), que funcionam como partições flexíveis para os dados. Durante o boot, o Linux mapeia automaticamente os LVs usando o device mapper, que cria pontos de montagem para cada LV de acordo com a configuração em /etc/fstab ou usando o UUID do volume. Isso permite que o sistema encontre e monte os volumes lógicos de forma consistente sempre que inicializa.
Durante a instalação do Oracle Linux 9, o LVM pode ser configurado pela interface gráfica do instalador. Ao selecionar o disco de instalação, você escolhe a opção para usar o LVM no particionamento, o que permite criar uma configuração mais flexível de volumes lógicos.
Escolha do Particionamento LVM: Ao definir o particionamento, selecione a opção "Custom" para criar uma configuração personalizada e marque "LVM" como o esquema de particionamento.
Criação dos Physical Volumes (PVs): O instalador irá identificar os discos disponíveis, e você pode então selecionar o(s) disco(s) para inicializar o LVM criando Physical Volumes, que servirão como a base do LVM.
Criação do Volume Group (VG): Após definir os PVs, o próximo passo é criar um Volume Group. Nomeie o VG e associe os discos selecionados. O Volume Group é o "pool" de armazenamento no qual você alocará os volumes lógicos.
Criação dos Logical Volumes (LVs): Dentro do Volume Group, você cria os Logical Volumes. Geralmente, cria-se um LV para o sistema raiz (/), um para a partição swap, e outros volumes conforme necessário, como /home, /var, etc.
Mapeamento e Montagem: Após a configuração dos LVs, o instalador define pontos de montagem para cada LV e configura o arquivo /etc/fstab para garantir que os volumes sejam montados automaticamente no boot. Durante a inicialização, o sistema usa o device mapper para mapear e ativar os LVs, garantindo que estejam prontos e acessíveis ao iniciar o sistema.
Vamos imaginar que um sistema Linux não inicia corretamente após ter seu Volume Group (VG) renomeado. Durante o processo de boot, notamos várias linhas com "dracut-initqueue...", e o sistema não consegue completar a inicialização, parando no prompt do Dracut.
Para reparar o sistema, podemos investigar a situação comparando o sistema de arquivos com a configuração atual. Os arquivos de configuração do GRUB que precisamos analisar são o /etc/default/grub e todos os arquivos .cfg localizados na pasta /boot/loader/entries.
Essa análise nos permitirá identificar possíveis problemas na configuração que podem estar impedindo o sistema de inicializar corretamente.
/etc/default/grub: Este arquivo é utilizado para gerar os arquivos de menu do GRUB2. Ele contém configurações básicas que definem como o GRUB2 deve se comportar durante o processo de inicialização do sistema.
/boot/loader/entries: Esta pasta contém as configurações para cada entrada do menu do GRUB2. Cada arquivo nesta pasta representa uma entrada específica que aparece no menu de inicialização, permitindo que o usuário selecione diferentes opções de inicialização, como diferentes sistemas operacionais ou modos de recuperação.
Para ter acesso aos arquivos acima, teremos de usar o DVD de inistalacao da distro usando o "Rescue Mode" (modo de recuperacao).
Inicie o servidor atraves da media de instalacao e ecolha: "Troubleshooting"→"Rescue a Oracle Linux system"→ opcao 3 "Skip to shell"→ precione Enter.
Use o comando abaixo para listar as partições e confirmar quais são as partições /boot e /boot/efi. Compare os tamanhos das partições com o esperado para cada uma:
lsblk
O lsblk exibe uma árvore de dispositivos de bloco, ajudando a identificar as partições e suas montagens.
ls /dev/mapper
Este comando lista os dispositivos mapeados do LVM. Verifique se o grupo de volumes (VG) está visível.
No screenshot abaixo, é possível identificar que, neste caso, o sda2 corresponde à partição /boot, enquanto o sda1 representa a partição /boot/efi, conforme minha escolha durante a instalação.
Caso os volumes não apareçam no resultado do ls /dev/mapper, faça uma varredura para encontrar o grupo de volumes:
vgscan
O vgscan procura por grupos de volumes disponíveis e atualiza o cache do LVM.
Ative o grupo de volumes:
vgchange -ay
Este comando ativa todos os volumes lógicos disponíveis, tornando-os prontos para serem montados.
Confirme que os volumes agora estão visíveis:
ls /dev/mapper
Verifique novamente se os dispositivos LVM agora aparecem.
Monte todas as partições necessárias no grupo de volumes, incluindo /boot e /boot/efi:
mount /dev/mapper/vg01-root /mnt
mount /dev/mapper/vg01-home /mnt/home
mount /dev/sda3 /mnt/boot
mount /dev/sda1 /mnt/boot/efi
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
Esses comandos montam as partições necessárias no diretório /mnt, que será usado como ponto de acesso para o sistema recuperado. O --bind é usado para montar diretórios especiais do sistema, como /dev, /proc, e /sys, para que o ambiente chroot tenha acesso a eles.
Agora, use o comando chroot para acessar o sistema montado:
chroot /mnt
O chroot altera o diretório raiz para /mnt, permitindo que você trabalhe dentro do sistema montado como se fosse o sistema operacional em execução.
Edite os arquivos para substituir o nome do antigo VG pelo novo. Utilize vi ou vim para abrir cada arquivo e use o comando de substituição de texto para atualizar o nome do grupo de volumes:
Para abrir cada arquivo:
/etc/fstab
/etc/grub2.cfg
/etc/default/grub
Use o comando :%s/<nome_antigo>/<nome_novo>/g no vi para substituir todas as ocorrências do nome antigo do VG pelo novo nome.
Para determinar se o sistema está usando o GRUB configurado para UEFI ou BIOS, você pode buscar o arquivo grub.cfg dentro do diretório /boot. Execute o seguinte comando:
find /boot | grep grub.cfg
Este comando listará o caminho completo do grub.cfg, caso ele exista. Se o arquivo estiver localizado em /boot/efi/EFI/redhat/grub.cfg, o sistema está configurado para UEFI. Se aparecer em /boot/grub2/grub.cfg, ele está configurado para BIOS.
Após identificar o tipo de configuração, você pode prosseguir com a remoção do arquivo de configuração existente no local correto:
Para UEFI:
rm /boot/efi/EFI/redhat/grub.cfg
Para BIOS:
rm /boot/grub2/grub.cfg
Esta etapa de remoção prepara o sistema para uma nova configuração do GRUB, que será gerada na próxima etapa usando o comando grub2-mkconfig.
Use os comandos abaixo para atualizar as configurações do Grub e definir o kernel padrão:
grubby --update-kernel=ALL
Esse comando atualiza as entradas do kernel no GRUB para refletir todas as versões de kernel instaladas.
Para UEFI:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
*caso nao esteja utilizando UEFI
Para BIOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Esses comandos regeneram o arquivo de configuração do GRUB, garantindo que as entradas do menu de inicialização estejam atualizadas com as alterações feitas.
Após concluir essas etapas, você pode sair do ambiente chroot e reiniciar o sistema:
Esses passos para restaurar o sistema aplicam-se especificamente a casos em que o nome do Volume Group (VG) foi alterado e, por algum motivo, o sistema foi reiniciado antes de serem feitas as correções necessárias nos arquivos fstab e grub.
É importante destacar que o procedimento ideal é sempre atualizar o fstab e o grub antes de reiniciar o servidor após qualquer mudança no nome do VG. Este guia, no entanto, oferece uma alternativa para situações imprevistas em que o sistema é reiniciado antes dessas atualizações, ajudando a recuperar o acesso ao sistema.
Esse processo também serve como um exercício útil para quem está aprendendo ou pode precisar de uma referência no futuro. No meu caso, uma necessidade real me levou a buscar essa solução e a experimentar várias abordagens até encontrar o procedimento adequado.