Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have, by default, 250MB of swap space in Ubuntu, and I want to expand it to a larger size. I need 800MB, which I think will be enough to open several applications without having to hit the current limit of swap. I hope someone can help me.

share|improve this question
1  
Please open up Gparted, and post a screenshot of what you see here. –  Aaron Aug 21 '12 at 20:25

3 Answers 3

up vote 39 down vote accepted

You can always create swap file

to add more swap space. This is not same (in every aspect) as swap partition but it will be easy and dynamic.

Change /media/fasthdd/swapfile.img to anything you like, for example it can be /swap.img as well. /media/fasthdd/swapfile.img is just example filename, if you are using this one then of course there must be directory /media/fasthdd/ with enough free space for your new swap file.

Use any of terminal applications to run commands. All command should be run with root privileges, to do this you can either add sudo to beginning of every command or run sudo bash before running commands.

1. Create empty file:
This file will contain virtual memory contents so make file big enough for your needs. This one will create 1Gb file which means +1Gb swap space for your system:

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

If you want to make 3Gb file then change count value to count=3M. See man dd for more information.

2. Bake swap file:
Following command is going to make "swap filesystem" inside your fresh swap file.

mkswap /media/fasthdd/swapfile.img

3. Bring up on boot:
To make sure that your new swap space is activated while booting up computer you should add it to filesystem configuration file /etc/fstab. Add it to end of file, this is recommended because other filesystems (at least one that contains swap file) must be mounted in read-write mode before we can access any files.

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

4. Activate:
You can either reboot your computer or activate new swap file by hand with following command:

swapon /media/fasthdd/swapfile.img


If everything goes well

you should see that more swap space is available for use. You can use following commands to check your new swap and confirm that it is active:

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
share|improve this answer
    
@BRvitorio And yes, this method should work at least with XUbuntu 8.1, Gentoo 2009.11, Redhat 7.4 and Ubuntu 12.04 with Kernel 2.6, 2.8.74 and Kernel 3.5.2 –  Sampo Sarrala Aug 21 '12 at 21:29
2  
To edit /etc/fstab try this at the command line: sudo gedit /etc/fstab –  Ben May 17 '13 at 18:01

GUI method of increasing the size of swap partition

Another method of increasing the swap size was done through Gparted partition Editor.

It was better to boot gparted-live-disk or ubuntu live disk(So that the all /dev/sda partitions will be unmounted).If you run ubuntu live disk,then you have to install gparted by running the below commands on the terminal,

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

You must be able to increase the size of swap partition only if there is an unallocated space present below or above the swap partition.If there was no unallocated space(The space which we are trying to add with swap partition) below or above the swap partition,then we have to resize the partitions and get that unallocated space.

Case 1(If the unallocated space present below or above the swap partition)

enter image description here

In the above screenshot,i had a unallocated space of 11.4 GB above the linux-swap and 12.8 GB below the linux swap.

  • To resize,rightclick on the /dev/sda9(swap partition) and click on Resize/Move option.It will be like the below screenshot.

    enter image description here

  • After dragging the slider arrow left or right which you wants then click on the Resize/Move button.You swap partition will be resized.


Case 2(If the unallocated space was between the partitions)

enter image description here

In the above screenshot,the unallocated space which we wants to add to the swap partition was between dev/sda7 and /dev/sda8.To move the unallocated space from that to just above swap partition,we have to follow the simple steps given below,

  • Right-click on the /dev/sda8 partition and click on Resize/Move option.

    enter image description here

  • click and move the slider to the extreme left,so that the unallocated space which was just above the /dev/sda8 partition will comes below /dev/sda8.After that click Resize/Move button.

  • And now the unallocated space was just above to the swap partition which was like Case 1.Now follow Case 1.


Case 3(If the unallocated space was present outside the Extended partition)

enter image description here

I had an unallocated space of 18 GB just below to the extended partition.To add this space to the linux-swap partition(which was present inside the extended partition),we have to follow the below steps,

  • Right-click on the extended partition and select Resize/Move option,it will be like the below screenshot

    enter image description here

  • Click and drag the arrow to the extreme right and click on Resize/Move,so that the unallocated space of 18 GB will comes at the bottom of extended partition.I had a 14.80 GB of unallocated space already present at the bottom and now the 18.34 GB combines with that to create unallocated space of (18.34+14.80 GB) at the bottom of the extended partition.

  • Now there was an unallocated space just below to the swap partition,it will be like Case 1,then follow case 1.

NOTE: Don't forget to take backup of all your important datas before proceeding the above operations.

share|improve this answer
1  
Great guide to GUI tools, deserves ++ as is. However maybe there should be some warning about possible risks involved with partition editing. Simple MBR backup guide or link to such guide would be great addition, errors might be unlikely but costs could get high + taking MBR backups will not consume too much time or space and could save a lot of work, space and time when done correctly. –  Sampo Sarrala Dec 12 '13 at 0:18

You can also use fallocate if you want to reserve space for your swapfile, without the need to fill the file with 0 through dd.

from the 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.

If you already have a swap defined, you can either remove it or keep it, and your *nix will manage it (even better with by defining a swapon priority). This could be usefull, in case you want to spread your swap between different devices, drive (based on their speed or other custom needs, see What is the purpose of multiple swap files on StackExchange).

Simple fallocate usage for adding a second swap file

Check swap situation:

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

Create a 4G swap file

Standard way of creating and activating a swap file.

$ size="4G" && sudo fallocate -l $size /$size-swap && sudo mkswap /$size-swap && sudo swapon -p 20 /$size-swap

Make your swap permanent

Add a line in your /etc/fstab file so that swap will be initialized on the next reboot (we also update here the priority of the newly created swap space and we update the priority of the old swap file

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/4G-swap     none    swap    sw,pri=20      0       0

Check swap situation after reboot:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/4G-swap       file     4194300     0       20

Remove one of the swap space (for example the original 256Mb)

Edit /etc/fstab

Remove the line related to the swap you want to remove

Delete that swap

Delete and remove the swap file.

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

Resources:

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.