Fusionner le contenu de deux partitions en une seule partition

J'ai une machine qui a un FS de /dev/md1 sur /dev/md1 monté sur / , et un ~ 200GB FS sur /dev/md2 monté sur /home . Une grande quantité de données sera bientôt stockée dans /var . Comment puis-je merge ces deux partitions en une seule partition plus grande sans essuyer le système? Si cela n'est pas possible, quel est le moyen le plus simple de monter la partition plus grande sur /var et la plus petite d'être montée sur / , sans corrompre tout comme datatables user et tout ce qui est déjà dans /var ?

Les machines exécutent Debian 7.10. Bien que cela fasse peu de différence, je rencontre ce problème sur deux machines plus ou less identiques. Je n'ai pas d'access physique à l'un d'entre eux. Ils peuvent être redémarrés aussi souvent que nécessaire car ils ne sont pas encore "en direct" ou en production.

Comme votre md2 n'est pas vide, le plus simple est de rsync datatables de /var vers la nouvelle partition, puis de faire un lien logiciel:

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

Ce serait mieux fait quand démarré à partir d'une md1 direct (avec monté md1 et md2 et les paths adaptés), si ce n'est pas possible, vous pourriez vouloir rsync une autre fois afin d'attraper les changements au cours de la rsync (démarrage à partir d'un système en direct est meilleur). Si vous faites cela à partir d'une dissortingbution en direct, vous pouvez réduire le time d'arrêt (comme l'indique @cas) en faisant un rsync initial sur le système de travail, de sorte que seuls les files modifiés doivent être synchronisés après le redémarrage du système en direct.

Au lieu de créer le lien logiciel, vous pouvez envisager d'utiliser bind mounting /home/VAR / on /var . Je ne suis pas sûr que cela ait des avantages ou non.

Une fois que tout vous avez vérifié que tout est là et que vous travaillez, vous pouvez supprimer /var/org

La solution simple, comme le suggère derobert dans un commentaire , est de laisser (la plupart des) les files existants où ils se trouvent, de ne déplacer que le directory qui va recevoir les gros files et de créer un lien symbolique les files seront effectivement stockés. Par exemple, si vous convertissez ce server pour contenir beaucoup de courrier, vous pourriez le faire

 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 

Si les files entrent dans un nouveau directory, vous n'avez rien à déplacer, il suffit de créer le directory dans la grande partition et de créer un lien symbolique dans /var .

Si les files doivent être sous /var , vous pouvez déplacer move /home vers la petite partition et déplacer /var vers la grande partition. Mais pour le faire en toute security, vous devez vous assurer que rien n'utilise les files que vous déplacez, ce qui est problématique si vous n'avez pas d'access physique.

En fin de count, la solution que j'ai trouvée était similaire à celle postée par @Anthon.

J'ai fini par faire un directory ( VAR ) dans /home . J'ai copié le contenu de /var dans ce /etc/fstab , puis j'ai changé /etc/fstab sorte que /dev/md2 était en cours de assembly sur /var . Ensuite, j'ai redémarré le système. Quand il est revenu, j'ai créé un nouveau directory /home (qui se termine par /dev/md1 ), déplacé chacun des counts users (assis dans /var ) dans /home , puis déplacé le contenu de (ce qui est maintenant) /var/VAR dans /var . Ensuite, j'ai redémarré la machine pour résoudre les problèmes impliquant /var/lock et /var/run étant foiré.

Bien que ce soit très désordonné, c'est le moyen le plus propre que j'ai trouvé pour résoudre le problème, car il évitait d'avoir à faire face à des liens symboliques et à d'autres problèmes dans /home .