Question Comment augmenter l'espace d'échange?


J'ai, par défaut, 250 Mo d'espace d'échange dans Ubuntu, et je veux l'étendre à une plus grande taille. J'ai besoin de 800 Mo, ce qui, je pense, sera suffisant pour ouvrir plusieurs applications sans avoir à atteindre la limite actuelle du swap. J'espère que quelqu'un peut m'aider.


105
2017-08-21 20:20


origine


Veuillez ouvrir Gparted et poster une capture d'écran de ce que vous voyez ici. - Aaron Hill
Si votre partition de swap peut être étendue dans un espace non alloué adjacent, utilisez gparted. Si cet espace n’est pas disponible, peut-être parce que votre partition active (démarrée) utilise tout l’espace non-swap, alors gparted ne vous permettra pas de réduire la taille de la partition active afin de créer un espace non alloué. Dans ce cas, vous pouvez réinstaller Ubuntu afin de créer un plus grand espace de swap. - H2ONaCl


Réponses:


Vous pouvez toujours créer un fichier d'échange

pour ajouter plus d'espace d'échange. Ce n'est pas la même chose (dans tous les aspects) que la partition de swap, mais ce sera facile et dynamique.

Changement /media/fasthdd/swapfile.img à tout ce que vous voulez, par exemple, il peut être /swap.img ainsi que. /media/fasthdd/swapfile.img est juste un exemple de nom de fichier, si vous utilisez celui-ci alors bien sûr il doit y avoir un répertoire /media/fasthdd/ avec suffisamment d'espace libre pour votre nouveau fichier d'échange.

Utilisez l'une des applications du terminal pour exécuter des commandes. Toutes les commandes doivent être exécutées avec les privilèges root, pour ce faire, vous pouvez soit ajouter sudo au début de chaque commande ou exécution sudo bash avant d'exécuter des commandes.

1. Créez un fichier vide:
Ce fichier contiendra le contenu de la mémoire virtuelle afin de rendre le fichier suffisamment grand pour vos besoins. Celui-ci créera un fichier de 1 Go, ce qui signifie + 1 Go d'espace de swap pour votre système:

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

Si vous voulez créer un fichier 3Gb, changez la valeur du compte en count=3M. Voir man dd pour plus d'informations.

2. Cuire le fichier d'échange:
La commande suivante va faire "swap fileystem" dans votre nouveau fichier d'échange.

mkswap /media/fasthdd/swapfile.img

3. Amenez au démarrage:
Pour vous assurer que votre nouvel espace d'échange est activé lors du démarrage de l'ordinateur, vous devez l'ajouter au fichier de configuration du système de fichiers /etc/fstab. Ajoutez-le à la fin du fichier, cela est recommandé car d'autres systèmes de fichiers (au moins un fichier contenant un fichier d'échange) doit être monté en lecture-écriture avant de pouvoir accéder aux fichiers.

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. Activer:
Vous pouvez soit redémarrer votre ordinateur ou activer un nouveau fichier d'échange à la main avec la commande suivante:

swapon /media/fasthdd/swapfile.img


Si tout va bien

vous devriez voir que plus d'espace d'échange est disponible pour utilisation. Vous pouvez utiliser les commandes suivantes pour vérifier votre nouvel échange et confirmer qu'il est actif:

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB

140
2017-08-21 20:59



Éditer /etc/fstab Essayez ceci à la ligne de commande: sudo gedit /etc/fstab - Ben
Cela m'a énormément aidé, merci beaucoup monsieur. - Breeze
Comment désactiver le fichier d'échange nouvellement créé? - Breeze
a obtenu son échange! - Breeze
Que faire si je n'ai pas de fichier swapimage.img à cet emplacement? (et nulle part dans mon système)? - PaulD


Méthode d'interface graphique pour augmenter la taille de la partition d'échange

Une autre façon d’augmenter la taille du swap consiste à utiliser le Éditeur de partition GParted. En bref, vous redimensionnez la partition de swap, puis faites un clic droit dessus et choisissez "Swapon".

Il est plus facile de démarrer gparted-live-disk ou un disque live Ubuntu (de sorte que le tout /dev/sda les partitions seront démontées). Si vous exécutez le disque Live Ubuntu, vous devez installer gparted en exécutant les commandes ci-dessous:

sudo apt-get update
sudo apt-get install gparted && sudo gparted

Vous devez pouvoir augmenter la taille de la partition d'échange uniquement s'il existe un espace non alloué avant ou après la partition de swap. S'il n'y avait pas d'espace non alloué (l'espace que nous essayons d'ajouter avec la partition swap) au-dessous ou au-dessus de la partition swap, nous devons redimensionner les partitions et obtenir cet espace non alloué.

Cas 1 - espace non alloué présent avant ou après la partition de swap

GParted partitions

Dans la capture d'écran ci-dessus, j'avais 11,4 Go d'espace non alloué avant le linux-swap et 12,8 Go après la partition de swap.

  • Pour redimensionner, cliquez avec le bouton droit sur la partition de swap (/ dev / sda9 ici) et cliquez sur l'option Redimensionner / Déplacer. Il ressemblera à ceci:

    enter image description here

  • En faisant glisser les flèches vers la gauche ou la droite, cliquez sur le bouton Redimensionner / Déplacer. Votre partition de swap sera redimensionnée.


Cas 2 - L'espace non alloué est entre les partitions

enter image description here

Dans la capture d'écran ci-dessus, l'espace non alloué que nous voulons ajouter à la partition de swap se trouvait entre dev/sda7 et /dev/sda8.Pour déplacer l’espace non alloué de celui-ci au-dessus de la partition swap, nous devons suivre les étapes simples ci-dessous,

  • Cliquez avec le bouton droit sur la partition / dev / sda8 et cliquez sur Redimensionner / Déplacer option.

    enter image description here

  • cliquez et déplacez le curseur vers l'extrême gauche, de sorte que l'espace non alloué situé juste au-dessus du /dev/sda8 partition va venir ci-dessous /dev/sda8Cliquez ensuite sur le bouton Redimensionner / Déplacer.

  • Et maintenant, l'espace non alloué était juste au-dessus de la partition de swap qui était comme Cas 1Suivez maintenant le cas 1.


Cas 3 - Si l'espace non alloué était présent en dehors de la partition étendue

enter image description here

J'avais un espace non alloué de 18 Go juste en dessous du partition étendue.Pour ajouter cet espace à la partition linux-swap (qui était présente dans la partition étendue), nous devons suivre les étapes ci-dessous,

  • Faites un clic droit sur la partition étendue et sélectionnez Redimensionner / Déplacer option, ce sera comme la capture d'écran ci-dessous

    enter image description here

  • Cliquez et faites glisser la flèche à l'extrême droite et cliquez sur Redimensionner / Déplacer,de sorte que la l'espace non alloué de 18 Go viendra au bas de la partition étendue. J'avais un espace non alloué de 14,80 Go déjà présent au bas et maintenant le 18,34 Go se combine avec cela pour créer un espace non alloué de (18,34 + 14,80 Go) en bas de la partition étendue.

  • Maintenant, il y avait un espace non alloué juste en dessous de la partition de swap, ce sera comme Cas 1puis suivez le cas 1.

REMARQUE: N'oubliez pas de faire une sauvegarde de toutes vos données importantes avant de poursuivre les opérations ci-dessus.


30
2017-12-11 06:11



Grand guide sur les outils graphiques, mérite ++ tel quel. Cependant, peut-être devrait-il y avoir un avertissement sur les risques possibles liés à l'édition de partition. Simple guide de sauvegarde MBR ou un lien vers ce guide serait un excellent ajout, des erreurs peuvent être improbables mais les coûts peuvent être élevés + prendre Sauvegardes MBR ne consommera pas trop de temps ou d'espace et pourrait économiser beaucoup de travail, d'espace et de temps quand fait correctement. - Sampo Sarrala
N'oubliez pas de swapon, faites un clic droit sur la partition swap d'un swapon - user3752281


Vous pouvez aussi utiliser fallocate si vous voulez réserver de la place pour votre fichier d'échange, sans avoir à remplir le fichier avec 0 à dd.

du MAN page:

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

Si vous avez déjà un swap défini, vous pouvez soit le supprimer, soit le conserver, et votre * nix le gérera (encore mieux en définissant un swapon priorité). Cela peut être utile, au cas où vous souhaiteriez échanger votre disque entre différents appareils, en fonction de leur vitesse ou d’autres besoins, voir Quel est le but de plusieurs fichiers d'échange sur StackExchange).

Simple fallocate utilisation pour l'ajout d'un deuxième fichier d'échange

Vérifiez la situation du swap:

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

Créer un fichier d'échange 4G

Méthode standard de création et d'activation d'un fichier d'échange.

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

Faites votre échange permanent

Ajouter une ligne dans votre /etc/fstab fichier afin que swap sera initialisé au prochain redémarrage (nous mettons également à jour ici la priorité de l'espace d'échange nouvellement créé et nous mettons à jour la priorité de l'ancien fichier d'échange

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

Vérifiez la situation d'échange après le redémarrage:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

Supprimer l'un des espaces d'échange (par exemple, le 256 Mo d'origine)

modifier /etc/fstab

Supprimer la ligne liée au swap que vous souhaitez supprimer

Supprimer cet échange

Supprimez et supprimez le fichier d'échange.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

Ressources:


19
2017-10-09 13:24



1-up pour fallocate, beaucoup mieux que dd si votre fs le supporte. Ces monolithes se sentent toujours difficiles à lire, pourraient être plus faciles à étudier si celles-ci étaient divisées en commandes réelles? - Sampo Sarrala


Dans mon cas, je possédais déjà un fichier d'échange que je pensais être de 1 Go, mais quand je l'ai regardé de plus près, il ne faisait que 256 Mo et lors de la pré-compilation de mes ressources, le serveur manquait de mémoire.

Errno::ENOMEM: Cannot allocate memory - nodejs

J'ai créé mon fichier d'échange comme décrit ici: https://stackoverflow.com/a/34885004/784318

Maintenant, la ligne qui crée un fichier vide appelé /swapfile est comme suit:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Maintenant, pour redimensionner le fichier d'échange, j'ai dû effectuer ces étapes simples:

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the `/swapfile`
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

Le fichier a été créé (536870912/1024/1024 = 512 Mo):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

En utilisant free -m commande j'ai pu voir que le fichier est maintenant 512 Mo comme prévu:


3
2018-04-27 12:03



Vous ne devez pas utiliser l'option -r avec une commande rm pour supprimer un seul fichier. rm -f devrait être plus que suffisant. - Sampo Sarrala
@SampoSarrala Merci pour le heads-up, j'ai changé le script en conséquence. - Besi


comment ajouter un fichier d'échange

  1. Fichier creat .img

    sudo dd if = / dev / zero de = / swap.img bs = 1M count = 1000

note !: bs = 1M count = 1000 ==> 1GB

(bs * count = taille en mégaoctets)

autre exemple:

sudo dd si = / dev / zero de = / swap.img bs = 10M count = 100

  1. format fichier .img

    sudo mkswap /swap.img

  2. activer le fichier d'échange

    sudo swapon /swap.img

  3. ajouter un fichier d'échange à fstab

ajoutez cette ligne à votre fstab (/ etc / fstab)

/swap.img   none            swap    sw              0       0

2
2017-10-03 11:13



Je mets généralement une étiquette sur le swap, par ex. "mkswap -L SWAP2". - Paul M