Mesclar o conteúdo de duas partições em uma única partição

3

Eu tenho uma máquina que tem um FS de 20 GB em /dev/md1 montado em / e um FS de ~ 200 GB em /dev/md2 montado em /home . Uma grande quantidade de dados será armazenada em breve em /var . Como posso mesclar essas duas partições em uma partição maior sem limpar o sistema? Se isso não for facilmente possível, qual é a maneira mais fácil de fazer a partição maior ser montada em /var e a menor ser montada em / , sem corromper tudo, como dados do usuário e qualquer coisa que já esteja em /var up? / p>

As máquinas estão executando o Debian 7.10. Embora isso faça pouca diferença, estou realmente tendo esse problema em duas máquinas mais ou menos idênticas. Eu não tenho acesso físico a nenhum deles. Eles podem ser reiniciados quantas vezes forem necessárias, pois ainda não estão "ativos" ou em produção.

    
por Treyzania 20.04.2016 / 06:50

3 respostas

0

Por fim, a correção que encontrei foi semelhante à que o @Anthon postou.

Acabei fazendo um diretório ( VAR ) em /home . Eu copiei o conteúdo de /var para isso, depois mudei /etc/fstab para que /dev/md2 estivesse sendo montado em /var . Então eu reiniciei o sistema. Quando ele voltou, criei um novo diretório /home (agora terminando em /dev/md1 ), movi cada uma das contas de usuário (sentado em /var ) para /home e movi o conteúdo de (o que é agora ) /var/VAR em /var . Então reiniciei a máquina para corrigir problemas envolvendo /var/lock e /var/run sendo confundidos.

Enquanto isso é muito confuso, é a maneira mais limpa que encontrei para resolver o problema, já que evitou ter que lidar com links simbólicos e outras bagunças em /home .

    
por 21.04.2016 / 01:26
3

Como seu md2 não está vazio, a maneira mais fácil é rsync dos dados de /var para a nova partição e, em seguida, criar um link flexível:

 rsync -xav /var /home/VAR
 mv /var /var.org
 ln -s /home/VAR /var

Isso seria melhor feito quando inicializado a partir de uma distro ao vivo (com md1 e md2 montados e caminhos adaptados), se isso não for possível, você pode querer rsync outra hora para capturar as alterações durante o rsync (inicializar de um sistema ao vivo é melhor). Se você fizer isso de uma distro ao vivo, você pode reduzir o tempo de inatividade (como @cas indica) fazendo um rsync inicial no sistema de trabalho, para que apenas os arquivos alterados precisem de sincronização após a reinicialização no sistema live. >

Como alternativa ao link flexível, você pode considerar o uso de bind mounting /home/VAR / on /var . Não tenho certeza se isso tem vantagens ou não.

Quando tudo que você verificar, tudo estiver lá e funcionando, você poderá remover /var/org

    
por 20.04.2016 / 07:15
0

A solução simples, como derobert sugerido em um comentário , é deixar (a maioria) dos arquivos existentes onde estão, apenas mover o diretório que receberá arquivos grandes e criar um link simbólico para fazer com que o caminho esperado aponte para onde os arquivos serão realmente ser armazenado. Por exemplo, se você estiver convertendo esse servidor para armazenar muitos e-mails, talvez faça

service postfix stop         # or whatever you need to do to stop writing to /var/mail
mv /var/mail /home
ln -s ../home/mail /var/mail
service postfix start

Se os arquivos estão indo para um novo diretório, você não tem nada para mover, basta criar o diretório na partição grande e criar um link simbólico para ele em /var .

Se os arquivos realmente tiverem que estar abaixo de /var , você pode mover a movimentação /home para a partição pequena e mover /var para a partição grande. Mas para fazer isso com segurança, você precisa ter certeza de que nada está usando os arquivos que você está movendo, o que é problemático se você não tiver acesso físico.

    
por 21.04.2016 / 00:58