Com relação à discussão nos comentários, parece que você está executando um servidor que depende de um banco de dados grande (ou pelo menos grande) em /var . Nesse computador, é importante dividir /var (ou um subdiretório dele) em uma partição grande o suficiente para armazenar o banco de dados ou garantir que a raiz ( / ) seja grande o suficiente. De fato, muitos servidores funcionam melhor com uma partição /var separada do que com uma partição /home separada - embora sua saída df mostre que você tem 94 GB em /home , então isso não parece ser o caso para você. No entanto, se você estiver executando um servidor MySQL, 20 GB para raiz ( / ) e nenhuma partição /var separada parece inadequada, então seu problema é compreensível. Você pode querer consultar um especialista do MySQL para obter conselhos sobre quanto espaço em disco seu banco de dados pode consumir.
Em qualquer evento, é possível fazer um redimensionamento "ao vivo" de alguns sistemas de arquivos; mas aumentando o tamanho é muito melhor suportado do que diminuindo o tamanho do sistema de arquivos, e parece que você precisará fazer uma de cada operação. Se você conseguir efetuar login como root , poderá desmontar /home e reduzi-lo a partir de sua inicialização normal. Esteja ciente de que esta é uma configuração não padrão para o Ubuntu, então você precisará habilitar root logins diretos - e você pode querer desativá-los depois. (Veja esta pergunta e suas respostas para saber mais sobre isso.) Dependendo do seu layout das partições, pode haver outras complicações também. Veja esta pergunta e suas respostas para alguns informações sobre o redimensionamento enquanto você estiver logado. Se a partição /home vier após sua partição raiz ( / ), talvez você queira considerar a redução de /home , criando uma partição nova após ela , movendo o conteúdo de /var (ou qualquer subdiretório de /var está reduzindo muito espaço em disco) para a nova partição e, em seguida, montando-a em /var (ou seu subdiretório, conforme apropriado). Como muitos programas funcionam em /var , mover todos os /var dessa maneira provavelmente exigiria trabalhar em um disco de emergência, mas você pode fazer isso a partir da instalação principal de um subdiretório de /var .
Dito isso, concordo com um comentário anterior de que, como um novato relativo, isso pode não ser a melhor coisa a ser tentada. Se você precisar fazer isso, eu recomendo strongmente que você configure um computador (ou máquina virtual) que corresponda à sua configuração atual o mais próximo possível para que você possa praticar. É melhor eliminar uma máquina virtual (ou duas ou três) do que apagar seu servidor real!
Outra abordagem consagrada pelo tempo, mas um tanto feia, é realocar um ou mais diretórios para uma partição existente e confiar em um link simbólico em vez de montar uma nova partição. Você faria algo assim:
- Localize um diretório na partição raiz (
/) que está ocupando muito espaço. Para o MySQL, eu esperaria que fosse/var/lib/mysql. - Crie um diretório de destino na partição
/home- digamos,/home/var/lib/mysql. Combine sua propriedade e permissões ao diretório/var/lib/mysqloriginal. - Encerre qualquer software que esteja usando
/var/lib/mysql. Eu acho que seriasudo service mysql stoppara fazer isso, mas eu não tenho 100% de certeza disso. - Digite
sudo mv /var/lib/mysql/* /home/var/lib/mysql/. Isso moverá os arquivos de/var/lib/mysqlpara a partição/home. - Digite
sudo rmdir /var/lib/mysqlpara excluir esse diretório. (Se isso não for apagado, então é provável que alguns arquivos não tenham sido movidos. Talvez sejam arquivos de ponto. Você deve corrigir esse problema.) - Digite
sudo ln -s /home/var/lib/mysql /var/lib/mysql. Isso cria um link simbólico para que os programas que usam/var/lib/mysqlainda possam acessar os arquivos no novo local. - Reinicie o MySQL.
sudo service mysql startdeve fazer isso.
Ressalva: Eu não estou familiarizado o suficiente com o MySQL para ter 100% de certeza de que este procedimento funcionará corretamente para isso. O uso de links simbólicos pode dar-lhe ajustes. Além disso, eu não testei este procedimento como eu digitei, então eu posso ter cometido um erro em um (ou mais) dos comandos.
Como eu não sou um especialista em MySQL, pode haver uma maneira melhor de fazer isso para o MySQL especificamente (suponha que esse seja realmente o programa que está causando problemas.)