# How to increase SWAP space/partition



## alie (Aug 17, 2011)

Like the title, is there any way to increase swap partition ? 

Thanks in advance


----------



## Beastie (Aug 17, 2011)

I don't think you can resize the existing partition. At least not easily. But you may create a swap file (see section 11.14.3 Swapfiles).


----------



## alie (Aug 17, 2011)

How about delete the existing swap partition then resize the root to use the swap space, is it possible ?


----------



## jem (Aug 17, 2011)

You can certainly remove your swap partition, then grow your root filesystem into the available space.

You'd use bsdlabel(8) to delete the b: partition, then increase the size of the a: partition to fill the freed space.

After that's done, you use growfs(8) to expand the UFS filesystem inside the a: partition.


----------



## SirDice (Aug 17, 2011)

You can add multiple swap partitions.


```
dice@molly:~>swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/gpt/swap4    2097152   113344  1983808     5%
/dev/gpt/swap5    2097152   113824  1983328     5%
/dev/gpt/swap6    2097152   112936  1984216     5%
/dev/gpt/swap7    2097152   112660  1984492     5%
Total             8388608   452764  7935844     5%
dice@molly:~>grep swap /etc/fstab
/dev/gpt/swap4          none                    swap            sw              0       0
/dev/gpt/swap5          none                    swap            sw              0       0
/dev/gpt/swap6          none                    swap            sw              0       0
/dev/gpt/swap7          none                    swap            sw              0       0
```


----------



## NewGuy (Aug 21, 2011)

You can install a tool like swapexd, which will grow a swap file for you on an as-needed basis. It's a tad slow, but gives you flexibility of just having the amount of swap you need.


----------



## alie (Jan 13, 2012)

Can someone help me with the commands to delete /dev/ad10s1b partition and then grow /dev/ad10s1a partition? I am not familiar how the partition works.


```
[/usr/home/alie]# disklabel -e /dev/ad10s1b
# /dev/ad10s1b:
8 partitions:
#          size     offset    fstype   [fsize bsize bps/cpg]
  a: 1953521009       4096    4.2BSD        0     0     0
  b:       4096          0      swap
  c: 1953525105          0    unused        0     0     # "raw" part, don't edit
```

then quit with q!


```
~
~
~
~
~
:q
partition a: partition extends past end of unit
partition c: partition extends past end of unit
disklabel: partition c doesn't cover the whole unit!
disklabel: An incorrect partition c may cause problems for standard system utilities
re-edit the label? [y]:
```

I didn't make any changes yet but seems there is something wrong with my partition.

Thanks


----------



## kpa (Jan 13, 2012)

You're looking at the wrong device, /dev/ad10s1b is the partition itself. You should use the slice with the bsd disklabel:

`# bsdlabel -e /dev/ad10s1`

gpart(8) can resize partitions in a bsdlabel'ed slice as well, deleting ad10s1b and then resizing ad10s1a
should go like this:

`# gpart delete -i 2 ad10s1`
`# gpart resize -i 1 -s newsize ad10s1`

The "-i 1" option means the 1st partition inside geom ad10s1, ad10s1a


----------

