Comment redimensionner des partitions en utilisant la ligne de commande sans utiliser d'interface graphique sur un serveur?

32

J'accède au serveur uniquement via le terminal et je ne peux pas utiliser les outils graphiques tels que gparted!
J'en ai besoin parce que je veux créer une nouvelle partition à partir d'une partie de root environ 768mb pour créer une partition de swap.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         20G  1.3G   18G   7% /
udev             10M     0   10M   0% /dev
tmpfs           199M  4.9M  194M   3% /run
tmpfs           100M   12K  100M   1% /run/user
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    
posée Hamid FzM 14.12.2013 - 18:06
la source

3 réponses

30

Vous ne pouvez pas réduire / modifier une partition si l'une des partitions du périphérique de stockage est montée. Donc, pour démonter et éditer le système de fichiers racine, le système d'exploitation doit être arrêté. Ensuite, démarrez dans un système en direct et modifiez la partition comme décrit dans d'autres réponses.

Solution alternative: fichier d'échange

Au lieu de créer une partition entière, un fichier d'échange offre la possibilité de faire varier sa taille à la volée et est plus facile à supprimer. Le fichier d'échange peut être connectable à chaud . Il est possible d'ajouter et de supprimer des fichiers sans démonter / désactiver le système d'exploitation.

  1. Créez un fichier de 512 Mo appelé /swapfile . Ce sera notre fichier d'échange.

    fallocate -l 512M /swapfile  
    

    OU

    dd if=/dev/zero of=/swapfile bs=1M count=512
    
  2. Définissez les autorisations appropriées (car un fichier d'échange lisible par le monde entier est une énorme vulnérabilité locale):

    chmod 600 /swapfile
    
  3. Après avoir créé le fichier de taille correcte, formatez-le pour permuter:

    mkswap /swapfile
    
  4. Activer le fichier d'échange:

    swapon /swapfile
    
  5. Modifiez /etc/fstab et ajoutez une entrée pour le fichier d'échange:

    /swapfile none swap defaults 0 0
    

Plus de détails sur wiki linux arch .

    
réponse donnée totti 28.07.2014 - 15:08
la source
23

Tout d'abord, il est important de savoir que vous ne pouvez pas redimensionner pour réduire votre partition racine si vous l'utilisez (cela s'appelle la réduction en ligne). Vous ne pouvez le développer qu'en ligne. Ceci est supporté par la commande resize2fs . Je supposerai ce qui suit:

  • Vous ne voulez pas perdre vos informations sur la partition racine.
  • Vous n’avez pas d’accès physique au disque dur pour pouvoir utiliser un LiveCD. Cela peut s'appliquer à un environnement virtuel ou distant. Dans le cas d'un ordinateur virtuel, vous pouvez toujours démarrer à partir d'un LiveCD si vous configurez la machine virtuelle pour démarrer à partir d'un LiveCD. Cela suppose que la machine virtuelle prend en charge la sortie de l'interface graphique du bureau à partir de laquelle vous souhaitez exécuter l'application Gparted pour redimensionner facilement. Mais comme cela est moins probable, je suppose que vous ne pouvez pas.

Il existe 2 types de partitions que vous pouvez redimensionner, les partitions LVM ou les partitions Logical Volume Manager qui prennent en charge le redimensionnement en ligne (Shrinking / Growing) depuis la création de la galaxie et les partitions standard que la plupart d’entre nous utilisent. Actuellement, le système de fichiers btrfs (qui est encore en développement) est le seul à avoir un support de redimensionnement complet en ligne à 100% (Shrink / Grow). Je vais vous expliquer comment faire les partitions normales que la plupart d’entre nous utilisent dans le système de fichiers ext4.

Redimensionnement (croissance) de la partition

Pour agrandir votre partition, vous pouvez le faire avec la racine montée. Pour ce faire, faites simplement:

sudo resize2fs /dev/sda1

Pourvu que l’espace vide soit déjà prêt à être fusionné. Ensuite, je vous recommande de redémarrer pour que les modifications soient prises en compte correctement. La commande ci-dessus serait redimensionnée au maximum autorisé. Si vous souhaitez redimensionner à une taille particulière, ajoutez simplement la taille à la fin:

sudo resize2fs /dev/sda1 25G

Notez que si vous souhaitez spécifier 25,4 Go, vous ne pouvez pas utiliser le ".". vous devez descendre une unité de mesure. Dans ce cas, de Go à MB, cela ressemblerait à ceci:

sudo resize2fs /dev/sda1 25400M

De cette façon, vous aurez une partition de 25.4G

Redimensionnement (réduction) de la partition

Réduire la partition est un processus en deux étapes qui implique:

  • Réduire la taille du système de fichiers de la quantité requise.
  • Réduire la taille du périphérique de bloc sous-jacent pour qu’elle corresponde à celle du système de fichiers.

Avant de réduire la capacité d’un système de fichiers, vous devez réduire la taille du périphérique en mode bloc (qui peut être une partition ou un volume logique). Comme ce n'est pas disponible pour les systèmes de fichiers ext *, vous ne pourrez pas le réduire de 20 Go à 19,5 Go pour créer le fichier d'échange de 500 Mo.

Même Ext4 ne prend pas en charge la réduction en ligne. Si vous essayez de le faire, vous obtiendrez les éléments suivants:

À ma connaissance, votre seul pari est soit:

  • Installez une autre version d'Ubuntu sur le même serveur (sur une autre partition) qui peut ensuite être utilisée pour réduire la partition racine du serveur Ubuntu d'origine.

  • Installez le serveur Ubuntu à partir de zéro avec la taille souhaitée

  • Utilisez l’image Ubuntu Server Live pour redimensionner la partition. Pour ce cas, vous devrez accéder à cet écran:

    Choisissez l’option Redimensionner comme illustré ci-dessus. De là, vous choisirez quelle sera la nouvelle taille puisque de là, vous pourrez démonter l’unité et la réduire si vous le souhaitez.

Comme aide supplémentaire, voici le lien du système de fichiers gparted qui fournit une liste très détaillée des fichiers pris en charge et indique s’ils contiennent redimensionnement complet en ligne. Btrfs est parmi eux.

    
réponse donnée Luis Alvarado 26.07.2014 - 04:25
la source
6

La réponse dépend de la possibilité de démonter ou non la partition. Dans votre cas, vous ne pouvez probablement pas démonter la partition. Sous Linux (UNIX / MAC OS), monter une partition signifie utiliser le système de fichiers et le mapper au point de montage (dans votre cas / ). Démontage signifie que vous arrêtez d’utiliser le système de fichiers et que vous supprimez le mappage sur le point de montage. Vous ne pouvez pas démonter le système de fichiers contenant votre système d'exploitation en cours d'exécution.

Si la partition peut être démontée

Supposons que vous souhaitiez réduire une partition ext4 de 200 Go sur /dev/sda4 monté sur /data . Il contient actuellement de la musique et des films ou similaires, vous pouvez donc le démonter temporairement. Vous voulez créer un échange de 4 Go.

sudo unmount /dev/sda4

pour démonter la partition.

sudo resize2fs /dev/sda4 196G

pour redimensionner le système de fichiers ext4 à 196 Go, en supposant qu'il y ait suffisamment d'espace. Maintenant, vous devez réduire la partition. Je pense que vous devez utiliser cfdisk pour supprimer la partition existante et recréer une partition plus petite à sa place. Vous pouvez ensuite créer une nouvelle partition pour le swap.

sudo cfdisk /dev/sda 

vous donnera une interface graphique textuelle pour inspecter votre table de partition. Je vous recommande de print la table de partition à un fichier ou un écran à ce stade, et de prendre note de la configuration actuelle en tant que sauvegarde. Vous pouvez ensuite sélectionner /dev/sda4 et delete la partition. À sa place, free space sera affiché. Utilisez new pour créer une nouvelle partition avec 196 Go à sa place et définissez le type sur ext4. Ensuite, accédez à l'espace libre final et créez la partition d'échange de 4 Go avec le type swap . Remarque: Je n'ai pas testé ces commandes, car je ne peux pas jouer avec mon / pour le moment.

Si la partition ne peut pas être démontée

Vous ne pouvez pas réduire une partition ext3 / 4 montée (voir la page de manuel resize2fs ). Comme vous exécutez votre système d'exploitation depuis / , vous ne pouvez pas démonter / . Cela signifie que vous devez démarrer un autre système d'exploitation (par exemple à partir d'une clé USB) pour effectuer les modifications.

Dans votre cas, il s’agit d’un serveur distant (sur le système KVM le plus probable), de sorte que vous ne pourrez peut-être pas démarrer à partir d’une image USB / OS en direct. Il peut exister d’autres moyens de modifier le partitionnement à partir de votre fournisseur vServer via une interface graphique d’administration. Je crois que c'est votre meilleur pari actuellement.

    
réponse donnée noleti 26.07.2014 - 03:39
la source

Lire d'autres questions sur les étiquettes