A resposta do Yuugian é definitivamente o caminho certo e seguro. Mas para algumas pessoas, pode ser bom saber que você pode realmente fazer isso sem desligar seu sistema em execução. Você pode tratar essa resposta como um treinamento ou último recurso em situações em que a inicialização de um liveCD não é uma opção.
Disclaimer: Este procedimento não é recomendado para usuários iniciantes. Se você não prestar atenção suficiente à etapa 1, seu sistema poderá travar enquanto você executa as próximas etapas e pode experimentar um comportamento inesperado de vários aplicativos após a reinicialização. Antes de tentar isso, verifique se você está familiarizado com /var
description no tldp e seus desvios específicos da distribuição.
-
Feche os programas que tenham arquivos abertos em /var
. Comece alternando para o console (um dos ttys "reais") e desligando o servidor X, assim como o Desktop Manager (kdm / gdm / lightdm / ...), se você usar um. Se você não sabe como fazer isso ou o que isso significa, NÃO continue - as chances de você quebrar seu sistema são muito altas, e há muitas possibilidades para abordar em um procedimento passo-a-passo. aqui - desculpe!
Use lsof
ou fuser
para localizar os programas restantes que possuem arquivos abertos em /var
. Observe que, se um programa foi iniciado como / por um serviço do sistema, é sempre melhor parar o serviço, em vez de eliminar a tarefa. Se houver alguns programas / serviços muito teimosos para lidar com isso, você também pode tentar mudar para o modo de usuário único (init nível 1) - se isso for aceitável para você. Na maioria dos casos, seria correto ter alguns arquivos (!) Ainda abertos em /var
- por exemplo, os arquivos pid em /var/run
, caso seu sistema use esse local.
-
Monte sua partição raiz (pela segunda vez). Simplesmente escolha qualquer diretório vazio como um ponto de montagem temporário para isso - usarei /mnt/tmp
como exemplo. Normalmente, o comando mount
(sem parâmetros) não exibirá o nome do dispositivo real por trás da partição raiz, você precisará verificar qual deles é (a menos que você tenha certeza). Geralmente, você pode obter as informações de lsblk
(se tiver em seu sistema), ou configuração de carregador de inicialização, ou por cat /proc/cmdline
, ou identificando a partição por tamanho relatada por fdisk
.
-
Copie /var
contents. Depois de encontrar a partição e montá-la, copie o conteúdo de /var
para o seu rootfs (montado no novo local), usando cp -ad
, como: cp -ad /var /mnt/tmp/
. Nota: se sua distro ainda gerencia os diretórios /var/run
e /var/lock
em vez de /run/
introduzido recentemente, você deve ignorar o conteúdo desses dois diretórios. Se o extglob estiver ativado no seu shell, você pode fazer isso usando cp -ad /var/!(run|lock) /mnt/tmp/var/
- ou use cpio
. Apenas para criar os dois diretórios em /mnt/tmp/var/
e definir suas permissões corretamente após a cópia.
-
Remova a antiga /var
entrada em fstab
. A maneira mais segura é comentá-la, é claro.
-
Reinicializar