Como mover / var para outra partição existente?

14

Eu tenho uma partição / que contém / var e é muito pequena. Eu tenho outra partição existente com espaço suficiente.

Aqui está o meu df:

File system          Size. Occ. Avai. %Ful. Monté sur
/dev/sda1             5,0G  4,5G  289M  95% /
tmpfs                 242M     0  242M   0% /lib/init/rw
udev                   10M  2,7M  7,4M  27% /dev
tmpfs                 242M     0  242M   0% /dev/shm
/dev/sda2              15G  406M   14G   3% /home

Como posso mover a pasta / var de sda1 para sda2?

    
por Jérémie 19.09.2012 / 18:33

3 respostas

17

Entre no modo de usuário único e verifique se o processo de gravação em /var está parado. (Verifique com lsof | grep /var )

  • mkdir -p /home/var
  • rsync -va /var /home/var
  • mv /var /var.old # você pode remover /var.old quando tiver terminado para recuperar o espaço
  • mkdir -p /var
  • mount -o bind /home/var /var
  • atualize seu /etc/fstab para tornar a montagem da ligação permanente.

/etc/fstab

 /home/var /var        none    bind
    
por 19.09.2012 / 18:36
5

Você também pode usar:

 mkdir /home/var
 <move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var>
 mv /var /var.old
 ln -s /home/var /var

Isso parece muito mais fácil do que brincar com o fstab e montar coisas.

    
por 19.09.2012 / 20:23
1

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:

  1. Remova o ponto de montagem temporário:

    sudo rmdir /var.new
    
  2. 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/
    
por 31.07.2017 / 18:07