Ubuntu

在 ubuntu 上增加交換空間並刪除以前的交換空間?

  • January 9, 2019

我有一個具有 2Gb 交換空間的虛擬機(線上託管)。

免費-m

            total       used       free     shared    buffers     cached
Mem:          1995        438       1557         37         22        190
-/+ buffers/cache:        225       1770
Swap:         1998          0       1998

由於交換空間很小,我嘗試將其增加到 4GB。

執行swapon -s,返回此結果(不知道這意味著什麼,因為我沒有第二個硬碟 sda2)

Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       2046972 0       -1

df -H

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        25G   19G  4.3G  82% /
udev            1.1G  4.1k  1.1G   1% /dev
tmpfs           210M  492k  209M   1% /run
none            4.1k     0  4.1k   0% /sys/fs/cgroup
none            5.3M     0  5.3M   0% /run/lock
none            1.1G     0  1.1G   0% /run/shm
none            105M     0  105M   0% /run/user

所以我做了

swapoff -a                #deactivating previous swap space
fallocate -l 4G /swapfile #creating a swapfile
chmod 600 /swapfile       #giving permissions
mkswap /swapfile          #making swap the file
swapon /swapfile          #activating swap on the file
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab #stabilizying swap for it to be there after next reboot

現在我有了我需要的交換空間

免費-m

            total       used       free     shared    buffers     cached Mem:          1995       1153        842         64        116 
455
-/+ buffers/cache:        581       1414 Swap:         4095          0       4095

但是,如果我執行 df 操作,之前 2GB 的交換空間仍然被認為已被佔用(也許它們在下次重新啟動時會空閒?)並且我的 fstab 有兩個交換空間條目。

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/sda1       /       ext4    errors=remount-ro,relatime      0       1
/dev/sda2       swap    swap    defaults        0       0
proc            /proc   proc    defaults                0       0
sysfs           /sys    sysfs   defaults                0       0
devtmpfs        /dev    devtmpfs        rw      0       0
/swapfile none swap sw 0 0

在這種情況下,我如何著手完成程序?我必須刪除 fstab 中涉及交換的第二行嗎?(我的意思是 /dev/sda2 swap swap defaults 0 0) 重啟安全嗎?

好吧,您可以刪除舊的交換分區(使用 fdisk 或不同的分區程序)並調整主分區的大小以使用該空間,但這需要 shell 訪問或從救援環境引導,如果您不知道自己在做什麼你可能會破壞你的整個虛擬機。

容易得多:只需創建一個 2GB 交換文件而不是 4GB 文件並同時使用文件和分區。交換空間不必是連續的空間,它可以在不同的磁碟上,也可以在一個分區和一個文件上。

引用自:https://serverfault.com/questions/948264