O LVM facilita o redimensionamento de partições existentes e a movimentação delas¹. Mas eles têm que ser partições LVM em primeiro lugar. Como sua partição atual não está no LVM, você terá que fazer as coisas manualmente. Todos os comandos da minha resposta precisam ser executados como root.
Prepare o novo disco
- Crie uma partição GPT ou MBR para uso do Linux. Use o disco inteiro, a menos que você queira compartilhar o disco com outro sistema operacional. Vou chamar essa partição
/dev/sdb1
. -
Crie
/dev/sdb1
umfísico do LVM, ou seja, declare que esta parte do disco deve ser usada para o LVM. pvcreate /dev/sdb1
-
Crie um grupo de volumes LVM contendo este volume físico. Todos os volumes do LVM fazem parte de um grupo de volumes. Escolha um nome para esse grupo de volumes, por ex.
alex_os
.vgcreate alex_os /dev/sdb1
-
Agora você tem algum espaço para uso do LVM. Crie um volume lógico LVM grande o suficiente para os dados que você deseja armazenar nele. Você pode usar todo o espaço se quiser (a menos que queira reservar espaço para outro sistema de arquivos ou espaço de troca), mas como a redução de um sistema de arquivos é mais difícil do que expandi-lo, é melhor usar somente o que você acha que precisa médio prazo mais uma margem de segurança. Escolha um nome para o volume lógico, por ex.
root
para seu sistema de arquivos raiz, oudb
se você for armazenar seu banco de dados nele.lvcreate -L 40g -n root alex_os
O que fazer a seguir depende se você deseja mover sua partição do sistema operacional para o novo disco ou usar o novo disco como armazenamento extra.
Use o novo disco para armazenamento extra
-
Crie um sistema de arquivos no novo disco.
mkfs.ext4 /dev/mapper/alex_os-root
-
Registre o novo sistema de arquivos para uso. Escolha um ponto de montagem para isso. Isso pode ser um diretório existente ou um novo diretório.
-
Se você deseja mover, por exemplo
/var/lib/mysql
para o novo disco, faça desse ponto de montagem. Primeiro monte o novo sistema de arquivos em um local temporário, mova os dados ( verifique se os arquivos não estão em uso enquanto você faz isso! )service mysql stop mount /dev/mapper/alex_os-db /mnt mv /var/lib/mysql/* /mnt mount --move /mnt /var/lib/mysql service mysql start
Por fim, edite o arquivo
/etc/fstab
para adicionar a seguinte linha após a linha que contém/
na segunda coluna:/dev/mapper/alex_os-db /var/lib/mysql ext4 errors=remount,ro 0 2
-
Se você não quiser vincular o novo disco a um serviço específico, monte-o em um local diferente, por exemplo, adicione a seguinte linha a
/etc/fstab
após a linha contendo/
na segunda coluna:/dev/mapper/alex_os-db /media/data ext4 errors=remount,ro 0 2
Em seguida, crie o ponto de montagem e monte o sistema de arquivos:
mkdir /media/data mount /media/data
Agora você pode mover os dados que quiser colocar lá e usar links simbólicos do local em que o serviço espera os arquivos. Interrompa todos os serviços que acessam os arquivos enquanto você os move! Por exemplo, para mover o conteúdo de
/var/lib/mysql
para o novo disco:service mysql stop mv /var/lib/mysql /media/data/ ln -s /media/data/mysql /var/lib/mysql service mysql start
-
Transferir o sistema para o novo disco
-
Reinicialize para resgatar mídia (por exemplo, SystemRescueCD ) para copiar os dados para o novo disco. Você não pode fazer a cópia do sistema em execução porque é impossível obter um instantâneo consistente². Para copiar os dados, você tem duas possibilidades:
-
Crie um sistema de arquivos e copie os arquivos, por exemplo para um sistema de arquivos ext4:
mkfs.ext4 /dev/mapper/alex_os-root mount /dev/mapper/alex_os-root /media/alex_os-root cp -a /media/sda1 /media/alex_os-root
-
Copie a imagem do sistema de arquivos e, em seguida, expanda-a para preencher, por exemplo, para um sistema de arquivos ext4:
cat /dev/sda1 >/dev/mapper/alex_os-root resize2fs /dev/mapper/alex_os-root
-
-
Torne o novo disco inicializável. Exatamente como fazer isso depende da sua distribuição. Você normalmente terá que instalar o bootloader e reconstruir o initramfs. Por exemplo, no Ubuntu, você normalmente precisa de algo como
chroot /media/alex_os-root update-initramfs update-grub grub-install /dev/sdb
¹ O redimensionamento do sistema de arquivos na partição é um assunto separado; o sistema de arquivos mais moderno suporta expansão on-line, mas não encolhe online.
² Tecnicamente pode ser possível ter sorte com cp -a
se o sistema estiver ocioso, mas isso é uma receita para o desastre; isso pode causar erros atrasados difíceis de rastrear. Uma das vantagens do LVM é que você pode usá-lo para obter um instantâneo consistente. Alguns sistemas de arquivos (zfs, btrfs) possuem um recurso de snapshot próprio, mas não ext4.