Install Arch Linux on LVM (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Install Arch Linux on LVM. Data da última tradução: 2024-10-10. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Você deve criar seus volumes LVM entre as etapas de particionamento e formatação do procedimento de instalação. Ao invés de diretamente formatar uma partição para que ela seja a raiz de seu sistema de arquivos, o sistema de arquivos deverá ser criado dentro de um volume lógico (LV).

Visão geral:

  • Instalação dos pacotes necessários. (consulte LVM#Instalação);
  • Criação de partições no lugar onde seus volumes físicos (PVs) irão residir;
  • Criação de seus volumes físicos (PVs). Se você tiver um disco é melhor apenas criar um PV em uma partição grande. Se você tiver múltiplos discos, você pode criar partições em cada um deles e criar um PV em cada partição;
  • Criação seu grupo de volumes (VG) e adicionar todos os PVs a ele;
  • Criação volumes lógicos (LVs) dentro deste VG;
  • Continuação a partir do Guia de instalação#Formatar as partições;
  • Ao chegar na etapa “Initramfs” do guia de instalação, adicione o hook lvm2 ao /etc/mkinitcpio.conf (consulte os detalhes abaixo);
Atenção: /boot não pode residir como LVM se o seu gerenciador de boot não possuir suporte ao LVM (somente o GRUB é conhecido por fornecer suporte ao LVM). Você deve criar uma partição /boot separada e formatá-la diretamente.

Instalação

Você seguirá o guia de instalação até chegar ao Guia de instalação#Partição dos discos. Nesse ponto, você irá divergir e fazer todo o seu particionamento com o LVM em mente.

Criação de partições

Primeiro, particione o dispositivo conforme necessário antes de configurar o LVM.

Ao criar as partições:

  • Se estiver usando GPT, defina a partição do tipo GUID para E6D6D379-F507-44C2-A23C-238F2A3DF928 (partição do tipo Linux LVM no fdisk e 8e00 no gdisk).
  • Se estiver usando uma tabela de partições do tipo MBR, defina o ID do tipo de partição para 8e (partição do tipo Linux LVM no fdisk).

Criação de volumes físicos

Para listar todos os seus dispositivos capazes de serem usados como volume físico:

# lvmdiskscan
Atenção: Certifique-se de que o seu alvo é o dispositivo correto, ou os comandos a seguir irão resultar em perda de dados!

Crie um volume físico neles:

# pvcreate DISPOSITIVO

Este comando cria um cabeçalho em cada dispositivo que poderá ser usado pelo LVM. Conforme definido em LVM#Blocos de construção do LVM, DISPOSITIVO pode ser qualquer dispositivo de bloco, ou seja, um disco /dev/sda, uma partição /dev/sda2 ou um dispositivo de loopback. Por exemplo:

# pvcreate /dev/sda2

Você pode verificar os volumes físicos criados com:

# pvdisplay

Você também pode obter um resumo de informações em volumes físicos com:

# pvscan
Dica: Se você tiver problemas com uma assinatura de disco já existente, você poderá removê-la usando wipefs.

Criação e expansão de um grupo de volumes

Primeiro, você precisa criar um grupo de volumes em um dos volumes físicos:

# vgcreate grupo_de_volumes volume_fisico

Por exemplo:

# vgcreate GrupoVolume00 /dev/sda2

Veja lvm(8) para uma lista de caracteres válidos para nomes de grupos de volumes.

Então, estenda-o para todos os volumes físicos que você desejar que pertençam a ele:

# vgextend grupo_de_volumes volume_fisico

Por exemplo, para adicionar sdb1 e sdc a seu grupo de volumes:

# vgextend GrupoVolume00 /dev/sdb1
# vgextend GrupoVolume00 /dev/sdc

Você pode ver como o seu grupo de volumes aumenta, usando:

# vgdisplay

Isto é o que você também faria se desejasse adicionar um disco a um RAID ou grupo de espelhamento com discos em falha.

Nota: Você pode criar mais do que um grupo de volumes se necessário, mas nesse caso não terá todo o seu armazenamento apresentado como um único disco.

Criação combinada de volumes físicos e grupos de volumes

O LVM permite combinar a criação de grupo de volumes e de volume físico em um simples passo. Por exemplo, para criar o grupo de volumes GrupoVol00 com três dispositivos mencionados acima, você pode executar:

# vgcreate GrupoVol00 /dev/sda2 /dev/sdb1 /dev/sdc

Este comando irá primeiro configurar três partições como volumes físicos (se necessário) e então irá criar o grupo de volumes com os três volumes. O comando irá avisá-lo se detectar um sistema de arquivos existente em qualquer um dos dispositivos.

Criação de volumes lógicos

Dica:
  • Se desejar usar snapshots, armazenar cache em volumes lógicos, definir volumes lógicos de provisionamento fino ou configurar RAID, consulte a página principal a partir de LVM#Volumes lógicos.
  • Se um volume lógico será formatado em ext4, deixe pelo menos 256 MiB de espaço livre em seu grupo de volume para permitir o uso de e2scrub(8). Após a criação do último volume com -l 100%FREE, isto pode ser alcançado ao reduzir o tamanho com lvreduce -L -256M grupo_volume/volume_logico.

Agora será necessário criar volumes lógicos neste grupo de volumes. Você cria um volume lógico com o comando a seguir fornecendo o nome de um novo volume lógico, seu tamanho, e o grupo de volumes ao qual ele pertencerá:

# lvcreate -L tamanho grupo_de_volumes -n volume_logico

Por exemplo:

# lvcreate -L 10G GrupoVol00 -n lvolhome

Isto irá criar um volume lógico que você poderá acessar posteriormente com /dev/GrupoVol00/lvolhome. Assim como grupos de volumes, você pode usar qualquer nome que desejar para seu volume lógico quando estiver criando-o, com exceção de algumas restrições listadas em lvm(8) § VALID_NAMES.

Você também pode especificar um ou mais volumes físicos para restringir onde o LVM irá alocar os dados. Por exemplo, você pode criar um volume lógico para a raiz do sistema de arquivos em seu SSD pequeno, e seu volume /home em um disco rígido mecânico mais lento. Simplesmente adicione os dispositivos de volume físicos à linha de comando, por exemplo:

# lvcreate -L 10G GrupoVol00 -n lvolhome /dev/sdc1

Se você desejar preencher todo o espaço livre no restante do grupo de volumes, use o seguinte comando:

# lvcreate -l 100%FREE grupo_de_volumes -n volume_logico

Você pode verificar os volumes lógicos criados com:

# lvdisplay
Nota: Você pode precisar carregar o módulo do kernel device-mapper (modprobe dm_mod) para que os comandos acima funcionem.
Dica: Você pode iniciar com volumes lógicos relativamente pequenos e expandi-los posteriormente se necessário. Por simplicidade, deixe algum espaço livre no grupo de volumes para que haja espaço para expansões futuras.

Formatação e montagem de volumes lógicos

Seus volumes lógicos deverão agora estar localizados em /dev/NomeDoSeuGrupoDeVolumes/. Se você não puder localizá-lo, use os comandos a seguir para carregar o módulo para criação de nodes de dispositivo e para tornar os grupos de volumes disponíveis:

# modprobe dm_mod
# vgscan
# vgchange -ay

Agora você pode criar sistemas de arquivos em volumes lógicos e montá-los como partições normais (veja como montar um sistema de arquivos para detalhes adicionais):

# mkfs.tipo_de_sistema_de_arquivos /dev/grupo_de_volumes/volume_logico
# mount /dev/grupo_de_volumes/volume_logico/ponto_de_montagem

Por exemplo:

# mkfs.ext4 /dev/GrupoVol00/lvolhome
# mount /dev/GrupoVol00/lvolhome /home
Atenção: Ao escolher pontos de montagem, selecione seu recém-criados volumes lógicos (use: /dev/GrupoVol00/lvolhome). Não selecione as atuais partições onde os volumes lógicos foram criados (não use: /dev/sda2).

Configuração do sistema

Certifique-se que o pacote lvm2 está instalado.

Dica: lvm2 fornece por padrão o hook lvm2. Se você está executando mkinitcpio em uma nova instalação sob uso do arch-chroot, lvm2 precisa estar instalado dentro do sistema acessado pelo arch-chroot para que mkinitcpio consiga encontrar o hook lvm2. Se lvm2 apenas existe fora de arch-chroot, mkinitcpio terá uma saída como: Error: Hook 'lvm2' cannot be found, ou seja, Erro: Hook 'lvm2' não pode ser encontrado.

Adição de hooks do mkinitcpio

No caso da raiz do sistema de arquivos estar em um LVM, você irá precisar ativar os hooks apropriados do mkinitcpio, caso contrário seu sistema não irá inicializar. Ative:

  • udev e lvm2 para um initramfs baseado no busybox;
  • systemd e lvm2 para um initramfs baseado no systemd;

udev estará lá por padrão. Edite o arquivo e insira lvm2 entre block e filesystems, como por exemplo:

/etc/mkinitcpio.conf
HOOKS=(base udev ... block lvm2 filesystems)

Para initramfs baseados no systemd:

/etc/mkinitcpio.conf
HOOKS=(base systemd ... block lvm2 filesystems)

Depois, você pode continuar com as instruções normais de instalação com a etapa criar uma ramdisk inicial.

Opções de inicialização do kernel

Se a raiz do sistema de arquivos estiver em um volume lógico, o parâmetro do kernel root= deve ser apontado para o dispositivo mapeado, por exemplo /dev/nome-do-vg/nome-do-lv.