web-dev-qa-db-fra.com

Comment redimensionner des partitions à l'aide de la ligne de commande sans utiliser d'interface graphique sur un serveur?

Je n'ai accès au serveur que via un terminal et je ne peux pas utiliser d'outils graphiques tels que GParted!
Je souhaite créer une nouvelle partition à partir d’une partie de la racine (environ 768 Mo) pour le 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
40
Hamid FzM

Vous ne pouvez pas réduire/éditer 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 éditez 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 modifier sa taille à la volée et est plus facilement supprimé. Le fichier d'échange peut être branché à chaud . Cela peut être ajouté et supprimé sans démonter/éteindre 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  
    

    OR

    dd if=/dev/zero of=/swapfile bs=1M count=512
    
  2. Définissez les autorisations adéquates (car un fichier d'échange lisible par tout le monde constitue 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. Éditez /etc/fstab et ajoutez une entrée pour le fichier d'échange:

    /swapfile none swap defaults 0 0
    

Plus de détails sur Arch Linux Wiki .

34
totti

Tout d’abord, il est important de savoir que vous ne pouvez pas redimensionner pour réduire votre partition racine si vous l’utilisez (ceci est appelé réduction en ligne). Vous ne pouvez le cultiver qu'en ligne. Ceci est pris en charge par la commande resize2fs. Je vais assumer 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 utiliser un LiveCD. Cela peut s’appliquer à un environnement virtuel ou distant. Dans le cas d'un disque virtuel, vous pouvez toujours réussir à démarrer à partir d'un LiveCD si vous configurez le VM pour qu'il démarre à partir d'un LiveCD. Ceci suppose que VM prend en charge la sortie de l'interface graphique de Desktop à partir de laquelle vous exécuteriez l'application Gparted pour la 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 (réduction/croissance) depuis la création de la galaxie et les partitions standard que la plupart d'entre nous utilisons. Actuellement, le système de fichiers btrfs (qui est encore en développement) est le seul à prendre en charge presque à 100% le redimensionnement en ligne complet (Shrink/Grow). Je vais expliquer comment faire les partitions normales que la plupart d'entre nous utilisons 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, il suffit de:

Sudo resize2fs /dev/sda1

A condition que vous ayez déjà l'espace vide prêt à être fusionné. Ensuite, je recommande de redémarrer pour que les modifications prennent effet 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 auriez besoin de descendre d'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

La réduction de la partition est un processus en deux étapes qui implique:

  • Réduire la taille du système de fichiers du montant nécessaire.
  • 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 de blocage (qui peut être une partition ou un volume logique). Etant donné que cette option n'est disponible pour aucun des systèmes de fichiers ext *, vous ne pourrez pas la réduire de 20 Go à 19,5 Go pour créer le swap de 500 Mo.

Même Ext4 ne supporte pas la réduction en ligne. Si vous essayez de le faire, vous obtiendrez ce qui suit:

enter image description here

Pour autant que je sache, votre seul pari est de:

  • 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 Ubuntu Server Live Image pour redimensionner la partition. Dans ce cas, vous devrez accéder à cet écran:

    enter image description here

    Et choisissez l'option Redimensionner comme indiqué dans l'image ci-dessus. À partir de là, vous sélectionnerez la nouvelle taille car à partir de là, vous pourrez démonter l’appareil et le réduire si vous le souhaitez.

Comme aide supplémentaire, voici gparted fileystem suppor http://gparted.org/features.php qui donne une liste très détaillée des fichiers pris en charge et indique s’ils ont un redimensionnement en ligne complet. Btrfs est parmi eux.

26
Luis Alvarado

La réponse dépend si vous pouvez démonter la partition pour la réduire ou non. Dans votre cas, vous ne pouvez probablement pas démonter la partition. Sous Linux (UNIX/MAC OS), le montage fait référence à l’utilisation du système de fichiers et à son mappage sur le point de montage (dans votre cas, /). Le démontage signifie que vous arrêtez d'utiliser le système de fichiers et supprimez le mappage vers 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 umount /dev/sda4

démonter la partition.

Sudo resize2fs /dev/sda4 196G

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 crois actuellement que vous devez utiliser cfdiskpour supprimer la partition existante et recréer une partition plus petite à la place. Vous pouvez également créer une nouvelle partition pour le swap.

Sudo cfdisk /dev/sda 

vous donnera une interface graphique pour inspecter votre table de partition. Je vous recommanderais de printla table de partition dans un fichier ou un écran à ce moment-là et de prendre note de la configuration actuelle en tant que sauvegarde. Vous pouvez ensuite sélectionner /dev/sda4 et deletela partition. À sa place, free space sera affiché. Utilisez newpour créer une nouvelle partition de 196 Go à la place, puis définissez le type sur ext4. Ensuite, déplacez-vous vers l'espace libre de fin et créez la partition de swap de 4 Go avec le type swapname__. 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 de resize2fs). Comme vous utilisez votre système d'exploitation à partir de /, 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 (le plus souvent sur KVM), de sorte que vous ne pourrez peut-être pas démarrer à partir d’une image USB/réelle du système d’exploitation. Il existe peut-être d'autres moyens de modifier le partitionnement de votre fournisseur vServer via une interface graphique d'administration. Je crois que c'est votre meilleur pari actuellement.

6
noleti