Install Arch Linux on LVM (Portuguê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).
/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 tipoLinux LVM
no fdisk). - Se estiver usando GPT, defina o GUID do tipo de partição para
E6D6D379-F507-44C2-A23C-238F2A3DF928
(partição do tipoLinux LVM
no fdisk e8e00
no gdisk).
Criar volumes físicos
Para listar todos os seus dispositivos capazes de serem usados como volume físico:
# lvmdiskscan
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
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.
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
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
modprobe dm_mod
) para que os comandos acima funcionem.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
/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
elvm2
para um initramfs baseado no busybox -
systemd
esd-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.
- Os hooks
lvm2
esd-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 hookslvm2
ousd-lvm2
. Se lvm2 existir apenas fora de arch-chroot, mkinitcpio irá dar a saídaError: 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
.