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: 2020-08-17. 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:

  • Instalar os pacotes necessários. (consulte LVM (Português)#Introdução)
  • Criar partições onde seu PV(s) irá residir;
  • Criar 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;
  • Criar seu grupo de volumes (VG) e adicionar todos os PVs a ele;
  • Criar volumes lógicos (LVs) dentro deste VG;
  • Continuar com [[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 (veja abaixo para detalhes).
Atenção: /boot não pode residir em um LVM quando seu gerenciador de boot não suportar LVM; você deverá criar uma partição /boot separada e formatá-la diretamente. Somente GRUB é conhecido por oferecer suporte ao LVM.

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.

Criar partições

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

Criar as partições:

  • 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).
  • Se estiver usando GPT, defina o GUID do tipo de partição para E6D6D379-F507-44C2-A23C-238F2A3DF928 (partição do tipo Linux LVM no fdisk e 8e00 no gdisk).

Criar 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#Construção em blocos 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.
Nota: Se estiver usando um SSD sem particioná-lo primeiro, use pvcreate --dataalignment 1m /dev/sda (para tamanho de bloco de remoção < 1 MiB), veja exemplo aqui

Criar e estender 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.

Criar volumes lógicos

Dica: Se desejar usar snapshots, cache de volume lógico, volumes lógicos provisionados ou RAID, veja LVM#Tipos de volume lógico.

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.

Criar sistemas de arquivos e montar 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 (consulte montando partições 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

Adicionando 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 sd-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 sd-lvm2 filesystems)

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

Dica:
  • Os hooks lvm2 e sd-lvm2 são instalados por lvm2, não mkinitcpio. Se estiver executando mkinitcpio em arch-chroot para uma nova instalação, lvm2 deve ser instalado dentro do arch-chroot para mkinitcpio para encontrar os hooks lvm2 ou sd-lvm2. Se lvm2 existir apenas fora de arch-chroot, mkinitcpio irá dar a saída Error: Hook 'lvm2' cannot be found.
  • Se a raiz de seu sistema de arquivos está em LVM RAID, veja #Configurar mkinitcpio para RAID.

Configurar mkinitcpio para RAID

Se seu sistema de arquivos raiz está em RAID LVM além do hook lvm2 ou sd-lvm2, você precisa adicionar dm-raid e os módulos RAID apropriados (e.x. raid0, raid1, raid10 e/ou raid456) para o arranjo MODULES em mkinitcpio.conf.

Para o initramfs com base no busybox:

/etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456)
HOOKS=(base udev ... block lvm2 filesystems)

Para o initramfs com base no systemd:

/etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456)
HOOKS=(base systemd ... block sd-lvm2 filesystems)

Opções de carregamento 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.