J'ai deux volumes logiques, l'un est monté en tant que /, l'autre est monté en tant que / home.
Je veux les combiner, car le /
volume manque constamment d'espace. (Oui, je sais ce qui utilise tout cet espace; non, je ne peux pas le supprimer.)
Je suis prêt à démonter la machine pendant un jour ou deux pour le faire.
Système d'exploitation: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(CentOS)
/
volume, n'est-ce pas le but d'utiliser LVM?Réponses:
J'ai terminé et la re-partition a fonctionné. Cependant, comme il manque des zones dans les deux guides, je vais résumer ce que j'ai fait. Veuillez noter que j'ai remplacé mon nom d'utilisateur par
zzzz
et le nom de mon ordinateur parxxxxxxx
. En outre, toutes les commandes doivent être exécutées en tant que root, sauf indication contraire.Tout d'abord, j'ai sauvegardé:
Cela crée une sauvegarde compressée du répertoire / home et la place sur mon lecteur externe. (Notez que votre lecteur externe aura un chemin différent.)
Maintenant, vous devez redémarrer en mode mono-utilisateur.
Lorsque votre ordinateur se rallume, vous devez rechercher un écran comme celui-ci:
Appuyez sur n'importe quelle touche pour interrompre cela. Vous devriez voir un écran comme celui-ci:
Appuyez sur a, puis sur Espace, puis tapez
single
. Appuyez sur Entrée.Vous devriez voir une invite comme celle-ci:
Entrez les commandes suivantes:
Il devrait vous montrer
Size
,Used
etAvail
. Nous sommes intéressésUsed
.Notez combien d'espace est utilisé par le volume de votre maison. Nous en aurons besoin plus tard.
Rappelez-vous combien d'espace votre volume domestique a utilisé? Doublez cela et donnez-le à cette commande. Par exemple, j'avais 15 gigaoctets utilisés par mon répertoire personnel, donc je l'ai dimensionné à 30 gigaoctets.
Avertissement : cette prochaine étape est celle qui peut perdre des données. Assurez - vous que vous mettez dans une taille plus grande que la commande précédente. Ajoutez 5 gigaoctets pour être sûr.
Dites à la partition racine d'utiliser tout l'espace que nous venons de libérer.
Copiez vos données sur la partition racine
(Soit dit en passant, c'est
-a
important, car sinon tout sera détenu par root, et vous ne le voulez pas.)Vérifiez rapidement que les données ont été copiées correctement:
Maintenant, nous supprimons la partition home et demandons à root de reprendre le nouvel espace.
À ce stade, j'ai fait une grosse erreur, dont vous pouvez apprendre. J'ai redémarré et lorsque le système est revenu, il a refusé de monter ma partition racine en lecture-écriture car il ne pouvait pas monter ma partition / home. Donc, avant de redémarrer, nous tapons
L'une de ces lignes indiquera au système de monter la partition / home. Mettez un
#
avant. Appuyez sur Ctrl-O, Entrée, Ctrl-X. Vous pouvez maintenant redémarrer.(En théorie, si vous oubliez de modifier fstab comme je l'ai fait, la commande pour monter votre partition racine est
mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /
)la source
/home
. Ensuite, tant que vous pouvez démonter/home
, vous pouvez le retirer. Cependant, je ne suis pas vraiment qualifié pour vous parler à travers le processus. C'est quelque chose que vous devriez poser une nouvelle question.AVERTISSEMENT: sauvegardez toutes les données critiques avant de faire quoi que ce soit!
Vous devez déplacer toutes les données de la partition / home vers une autre partition, une partition locale ou un lecteur externe ou partout où vous disposez de suffisamment d'espace.
Supprimez le / home lv puis développez le / (root) lv
Copiez les données dans le répertoire / home
Modifier 1
La réponse ci-dessus suppose que vous n'avez pas assez d'espace dans la partition racine pour placer les données dans la partition d'accueil.
Si ce n'est pas le cas, montez simplement la partition home ailleurs et copiez les données, par exemple:
Ensuite, supprimez simplement la partition home et développez la partition racine
la source
Vous pouvez le faire sans stockage externe, à partir de
/
, mais vous devrez démonter/home
.Ce n'est pas une procédure particulièrement risquée si vous faites attention, mais néanmoins, le conseil standard s'applique: faites d'abord des sauvegardes et testez-les.
Je vais utiliser
foo
pour le nom du groupe de volumes etroot
ethome
comme noms de volumes logiques. Cela rend les chemins de volume logiquefoo/root
etfoo/home
, et les chemins de périphérique/dev/mapper/foo-root
et/dev/mapper/foo-home
. Je suppose qu'ils sont dans le même groupe de volumes, sinon cela devient plus compliqué et dépend de la disposition du volume physique des deux groupes de volumes.Tout d'abord, démontez
/home
et exécuteze2fsck -f /dev/mapper/foo-home
. Réduisez ensuite le système de fichiers en premier et le volume logique en conséquence. Exécutezresize2fs /dev/mapper/foo-home NNNN
où NNNN est le nombre de blocs que vous souhaitez conserver à l'intérieur du volume (vous pouvez utiliser kB ou MB ou GB à la place avec le suffixeK
,M
ouG
). Après avoir diminué le système de fichiers, réduire le volume logique aveclvresize -L MMMM foo/home
lequel MMMM est un certain nombre de méga - octets (notez que l'unité par défaut est différentresize2fs
, mais vous pouvez utiliser les mêmes suffixesK
,M
,G
). Faites très attention à ne pas réduire le volume logique plus loin que le système de fichiers - c'est la seule étape dangereuse de cette procédure.Il y a maintenant de l'espace inutilisé dans le groupe de volumes. Exécutez
lvresize -l +100%FREE foo/root
pour que le volume racine récupère tout l'espace libre du groupe de volumes. Exécutez ensuiteresize2fs /dev/mapper/foo-root
(sans paramètre de taille) pour agrandir le système de fichiers pour couvrir tout le volume logique; l'agrandissement peut être fait pendant que le volume est monté.Vous avez maintenant de la place pour copier certains fichiers. Si vous n'avez pas assez de place pour tout, bougez autant que vous le pouvez, puis répétez la procédure.
Une fois que vous avez copié tous les fichiers
/home
, vous êtes prêt à le détruire. Vérifiez qu'il/home
est vide (si vous avez déplacé les fichiers) ou que tous les fichiers/home
ont été copiés dans/root
(si vous avez copié les fichiers). Pour détruire le volume logique désormais inutile, exécutezlvremove foo/home
. Enfin, agrandissez le volume racine aveclvresize -l 0%FREE foo/root
et son système de fichiers avecresize2fs /dev/mapper/foo-home
.la source
OK, je me suis retrouvé exactement dans la même position. Il semble que CentOS crée un petit volume racine par défaut et remplisse le reste de votre espace avec
/home
. J'ai même testé ma configuration d'abord sur une machine virtuelle, mais avec le plus petit disque, CentOS n'a pas créé le volume d'origine. J'ai ramassé ce problème avant de devenir contraint par l'espace et j'ai également compris comment ne pas avoir à passer en mode mono-utilisateur. Comme suit:Accédez à la machine, ssh est très bien (en supposant un utilisateur non root).
cd /
donc vous n'êtes pas dans le répertoire personnelsudo -s
nous serons à l'origine de tout celalsof /home
vérifiez que personne n'utilise le volume de la maison, ne doit pas êtremv
,tar
Ou similaire le contenu de la maison à un autre endroitlvremove centos/home
/etc/fstab
et commenter ou supprimer la ligne pour/home
/home
- vous êtes maintenant dans une position sûre, un redémarrage ici devrait être OKlvresize -l +100%FREE centos/root
xfs_growfs /dev/centos/root
sur CentOS 7, d'autres pourraient utiliserresize2fs
df -h
avez-vous réussi?J'espère que cela facilitera la tâche de quelqu'un. C'est vraiment incroyable ce que vous pouvez faire en direct sur des systèmes de fichiers de nos jours.
la source