Acabei de instalar o Ubuntu 24.04 e cometi um erro: coloquei o /var
diretório em sua própria partição e seu tamanho é 10 GB. Depois de alguns dias já está cheio.
Existe uma maneira de corrigir esse problema sem reinstalar o sistema operacional do zero?
É possível redimensionar uma partição, mesmo perdendo seu conteúdo?
Qual é o tamanho sugerido para o /var
diretório?
Esta é minha tabela de partições:
Model: WD_BLACK SN850X 2000GB (nvme)
Disk /dev/nvme0n1: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
8 1049kB 1075MB 1074MB fat32 boot boot, esp
1 1075MB 323GB 322GB xfs /
2 323GB 426GB 103GB linux-swap(v1) swap swap
3 426GB 437GB 10.7GB ext4 var
4 437GB 439GB 2147MB ext4 temp
6 439GB 547GB 107GB xfs 3rdp
5 547GB 1406GB 859GB ext4 home
7 1406GB 1427GB 21.5GB ext4 crypt
Este é o conteúdo do meu /var
diretório:
~> sudo bash -c 'shopt -s dotglob; du -hxs /var/*'
7.0M /var/backups
661M /var/cache
4.0K /var/crash
8.9G /var/lib
4.0K /var/local
0 /var/lock
49M /var/log
16K /var/lost+found
4.0K /var/mail
4.0K /var/metrics
4.0K /var/opt
0 /var/run
13M /var/snap
52K /var/spool
108K /var/tmp
4.0K /var/.updated
Aqui estão mais detalhes sobre minhas partições:
~> df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 5.9G 2.7M 5.9G 1% /run
/dev/nvme0n1p1 300G 29G 272G 10% /
tmpfs 30G 180M 30G 1% /dev/shm
tmpfs 5.0M 12K 5.0M 1% /run/lock
efivarfs 148K 62K 81K 44% /sys/firmware/efi/efivars
/dev/nvme0n1p6 100G 2.5G 98G 3% /opt
/dev/nvme0n1p7 20G 24K 19G 1% /crypt
/dev/nvme0n1p4 2.0G 103M 1.7G 6% /tmp
/dev/nvme0n1p3 9.8G 9.6G 0 100% /var
/dev/nvme0n1p5 787G 13G 734G 2% /home
/dev/nvme0n1p8 1022M 41M 982M 4% /boot/efi
tmpfs 5.9G 196K 5.9G 1% /run/user/1000
Não há dados suficientes em sua pergunta para obter uma resposta significativamente completa além de "talvez".
Existe espaço não alocado no disco em que
/var
reside atualmente? Nesse caso, você poderá usar uma ferramenta comoparted
ougparted
para expandir a partição. Se houver espaço alocado não utilizado em outra partição da unidade, a mesma ferramenta poderá ser usada para reduzir essa partição e liberar espaço para/var
expansão.Você usou uma ferramenta como o LVM para configurar sua alocação de disco? Nesse caso, pode ser possível criar uma nova partição física e usar o LVM para expandi-la
/var
.Na ausência de conhecimento destas ou de outras possíveis considerações, a única resposta correta a dar é “talvez”.
Além disso, antes de usar qualquer meio para expandir sua
/var
alocação, seria uma boa ideia garantir que você tenha um bom backup, porque essas operações têm uma chance diferente de zero - embora pequena - de causar perda de dados.O tamanho
/var
depende muito do que o sistema está fazendo. Por exemplo, se o sistema for um servidor de correio/var/mail
e/var/spool
puder crescer arbitrariamente, dependendo do tamanho da base de usuários; esses diretórios seriam então efetivamente a principal razão da existência do sistema.O tamanho
/var/lib
depende do software que você instalou e/var/cache
também/var/snap
pode aumentar dependendo de quais aplicativos estão instalados e como são usados.Você está usando inicialização GPT e UEFI, mas por outro lado é uma configuração de particionamento bastante clássica. (GPT é bom; significa que não precisamos lidar com as restrições de tamanho do MBR e com o absurdo da partição primária/estendida/lógica; todas as partições serão igualmente utilizáveis para qualquer finalidade.)
Se não me engano, ainda há cerca de 500G de espaço não utilizado no final do disco. E bem ao lado da partição muito pequena
/var
, há uma partição swap de 103G. Poderia ser reaproveitado para expandir/var
com bastante facilidade. Infelizmente o swap está localizado antes da/var
partição, o que complica um pouco as coisas.Eu começaria criando uma nova partição swap no espaço não utilizado e executando-
mkswap
a. Então eu comentaria a partição swap antiga/etc/fstab
e adicionaria as informações da nova partição swap. Neste ponto, eu também verificaria se a configuração de suspensão/retomada precisa ser atualizada para apontar para a nova partição swap (/etc/initramfs-tools/conf.d/resume
no Debian, provavelmente semelhante no Ubuntu). Entãosudo update-initramfs -u
reinicie.Depois de confirmar que o sistema está usando a nova partição swap e não mais a antiga, seria hora de remover o sinalizador swap da partição swap antiga e definir seu tipo de partição para ser o mesmo
/var
. Então o swap antigo poderia ser inicializado como o futuro/var
usandosudo mkfs.ext4
e montado temporariamente em/mnt
.Então, seria hora de encerrar todos os aplicativos que possam estar gravando ativamente
/var
e copiar os dados da partição antiga para a nova, com um simples arquivocp -a /var/.updated /var/* /mnt/
. Em seguida, outra edição para/etc/fstab
fazer o sistema ser montado/dev/nvme0n1p2
em vez de/dev/nvme0n1p3
como/var
(provavelmente usando UUIDs do sistema de arquivos, como é a prática recomendada atual) e uma reinicialização.Se o sistema agora inicializar com sucesso com o novo e expandido
/var
, seria uma questão simples de usargparted
para remover o pequeno antigo, agora não utilizado,/var
e usar seu espaço para expandir (mesmo on-line!) o novo/var
ainda mais.Isto é o que eu faria nesta situação; você deve usar seu próprio julgamento para decidir se este é um bom plano para você ou não.
Se precisar de instruções mais específicas do que este esboço, você deve considerar fazer isso junto com alguém que tenha mais experiência em Linux.