我有一个具有 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-氢
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 中涉及 swap 的第二行?(我的意思是 /dev/sda2 swap swap defaults 0 0)重新启动是否安全?
答案1
好吧,您可以删除旧的交换分区(使用 fdisk 或其他分区程序)并调整主分区的大小以使用该空间,但这需要 shell 访问或从救援环境启动,如果您不知道自己在做什么,您可能会破坏整个 VM。
更简单:只需创建一个 2GB 的交换文件而不是 4GB 文件,然后同时使用该文件和分区。交换空间不必是连续的空间,它可以位于不同的磁盘上,也可以位于分区和文件上。