Mover /var
sem alterar para o modo de usuário único
Quando assumi um novo servidor virtual que havia sido provisionado para mim pela empresa de hospedagem do meu empregador, criei volumes lógicos extras para var
e home
, que eram diretórios regulares na partição raiz. Como o provedor de servidor virtual não forneceu uma interface semelhante à do KVM pela qual eu podia acessar o servidor no modo de usuário único, as respostas acima não eram aplicáveis à minha configuração. Espero que esta resposta seja útil para outras pessoas em situação semelhante (mantive os detalhes do LVM, mas eles podem ser ignorados, pois não é particularmente relevante se o novo sistema de arquivos é criado em um volume lógico ou em uma partição de disco).
Crie e use um novo sistema de arquivos /var
com o LVM
Crie o sistema de arquivos para o novo var
volume, monte-o (usando um diretório temporário) e copie os arquivos do atual /var
para o novo sistema de arquivos. Ao copiar arquivos com rsync
, use sua opção -a, --archive
para preservar carimbos de data, propriedade, modos etc. e sua opção -X, --xattrs
para preservar os atributos estendidos, como os rótulos de segurança usados pelo AppArmor e SELinux.
sudo lvcreate -L 60GB -n var VolGroup00
sudo mkfs.ext4 /dev/VolGroup00/var
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
sudo rsync -raX /var/ /var.new/
Atualizar a tabela do sistema de arquivos
Configure o novo sistema de arquivos a ser usado como um novo ponto de montagem para /var
, adicionando a seguinte linha a /etc/fstab
. Observe que 0
é usado como o número de passagem (último campo) para que o sistema de arquivos não seja verificado automaticamente ( fsck
) após um certo número de reinicializações (não tenho acesso para efetuar login no servidor em único modo de usuário).
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
Como não posso mudar para o modo de usuário único, reinicie o computador para usar este novo volume como /var
.
Recupere espaço em disco do sistema de arquivos raiz
Após a reinicialização da máquina, siga os seguintes passos para limpar o diretório temporário e remover os antigos arquivos /var
do sistema de arquivos raiz:
-
Remova o ponto de montagem temporário:
sudo rmdir /var.new
-
Crie um novo ponto de montagem para criar um caminho alternativo para os arquivos no antigo diretório /var
no sistema de arquivos raiz (atualmente é "mascarado" pelo novo sistema de arquivos /var
montado no diretório):
sudo mkdir /old-root
sudo mount /dev/mapper/VolGroup00-root /old-root/
sudo rm -rf /old-root/var/*
sudo umount /old-root/
sudo rmdir /old-root/