默认情况下,Ubuntu 中的交换空间为 250MB,我想将其扩展到更大的大小。我需要 800MB,我认为这足以打开几个应用程序,而不会达到当前的交换限制。我希望有人能帮助我。
答案1
您可以随时创建交换文件添加更多交换空间。这在各个方面与交换分区并不相同,但它会变得简单且动态。
在以下步骤中,请/media/fasthdd/swapfile.img
随意更改。例如,也可以是/swap.img
。/media/fasthdd/swapfile.img
这只是一个示例文件名。如果您使用此文件名,那么当然必须有一个目录/media/fasthdd/
具有足够的可用空间来存放您的新交换文件。
使用任何终端应用程序运行以下步骤的命令。所有命令都应运行具有 root 权限。为此,您可以将其添加sudo
到每个命令的开头,或者sudo bash
在运行命令之前运行。
创建一个空文件:
此文件将包含虚拟内存内容,因此请将文件大小设置为满足您的需求。此文件将创建一个 1GiB 文件,这意味着您的系统将有 +1GiB 交换空间:
dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M
如果要创建 3GiB 文件,则将计数值更改为
count=3M
。man dd
有关更多信息,请参阅。烘焙交换文件:
以下命令将在您的新交换文件中创建一个“交换文件系统”。
mkswap /media/fasthdd/swapfile.img
启动时启动:
为了确保在启动计算机时激活新的交换空间,您应该将其添加到文件系统配置文件中
/etc/fstab
。将其添加到文件末尾。建议这样做,因为其他文件系统(至少一个包含交换文件) 必须以读写模式安装,我们才能访问任何文件。# Add this line to /etc/fstab /media/fasthdd/swapfile.img swap swap sw 0 0
启用:
您可以重新启动计算机,也可以使用以下命令手动激活新的交换文件:
swapon /media/fasthdd/swapfile.img
如果一切顺利,您应该会看到有更多交换空间可供使用。您可以使用以下命令检查新的交换并确认它处于活动状态:
$ 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
答案2
将交换大小调整为 8GB
# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo swapoff -a
# Create an empty swapfile
# Note that "1G" is basically just the unit and count is an integer.
# Together, they define the size. In this case 8GB.
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
# Set the correct permissions
sudo chmod 0600 /swapfile
sudo mkswap /swapfile # Set up a Linux swap area
sudo swapon /swapfile # Turn the swap on
检查是否有效
grep Swap /proc/meminfo
使其永久生效(重启后依然有效)
将这一行添加到您的末尾/etc/fstab
:
/swapfile swap swap sw 0 0
答案3
增加交换分区大小的 GUI 方法
增加交换大小的另一种方法是使用GParted 分区编辑器简而言之,你调整交换分区的大小,然后右键单击它并选择“Swapon”。
启动 gparted-live-disk 或 Ubuntu live disk 更容易(这样所有/dev/sda
分区都将被卸载)。如果你在 18.04 之前的某些版本中运行 Ubuntu live disk,则可能需要安装分区通过运行以下命令:
sudo apt-get update
sudo apt-get install gparted && sudo gparted
仅当交换分区之前或之后有未分配空间时,您才可以增加交换分区的大小。如果交换分区下方或上方没有未分配空间(我们试图用交换分区添加的空间),那么我们必须调整分区大小并获取未分配空间。
情况 1 - 交换分区之前或之后存在未分配的空间
在上面的截图中,我在 linux-swap 之前有 11.4 GB 的未分配空间,在交换分区之后有 12.8 GB 的未分配空间。
要调整大小,请右键单击交换分区(此处为 /dev/sda9),然后单击“调整大小/移动”选项。它看起来如下:
向左或向右拖动滑块箭头,然后单击“调整大小/移动”按钮。您的交换分区将被调整大小。
情况 2 - 未分配的空间位于分区之间
在上面的屏幕截图中,我们要添加到交换分区的未分配空间位于dev/sda7
和之间/dev/sda8
。要将未分配的空间从该空间移动到交换分区上方,我们必须遵循下面给出的简单步骤,
右键单击 /dev/sda8 分区,然后单击调整大小/移动选项。
单击并将滑块移动到最左边,这样分区上方未分配的空间
/dev/sda8
就会移动到下方/dev/sda8
。然后单击调整大小/移动按钮。现在未分配的空间就在交换分区的正上方,就像情况1现在按照案例 1 进行。
情况 3 - 如果未分配空间存在于扩展分区之外)
我在扩展分区要将此空间添加到 linux-swap 分区(位于扩展分区内),我们必须遵循以下步骤,
右键单击扩展分区并选择调整大小/移动选项,它将像下面的截图一样
点击并将箭头拖到最右侧,然后单击调整大小/移动,这样 18 GB 的未分配空间将位于扩展分区的底部。我在底部已经有 14.80 GB 的未分配空间,现在 18.34 GB 与其相结合,在扩展分区的底部创建了(18.34+14.80 GB)的未分配空间。
现在交换分区下方有一个未分配的空间,它将像情况1,然后按照情况 1 进行。
注意:在继续上述操作之前,请不要忘记备份所有重要数据。
答案4
我发现以下视频非常有趣,并且是增加交换文件大小的直接方法。查看这个简短的视频教程:如何增加 Ubuntu Linux 上的交换空间 | Linux 手册
(来自该视频)以下是增加交换空间的方法(如果您的系统正在使用交换文件):
首先检查你的 Linux 系统的交换大小:
swapon --show
示例输出:
NAME TYPE SIZE USED PRIO
/swapfile file 797.2M 0B -2
此输出显示正在使用的交换大小和交换类型。此处的交换类型为“文件”类型(也可以是分区类型)。Ubuntuswapfile
默认使用交换,增加或减少交换大小相当容易。
因为我们要修改,swapfile
所以首先将其关闭。您可能会注意到该进程被多次终止。发生这种情况的原因是,在关闭交换之前,系统会将其内容移动到主内存,这可能会溢出主内存。因此,如果以下命令被终止,请多次运行它,直到成功完成。您还可能会遇到突然注销和/或其他进程可能会自动终止的情况。:
sudo swapoff /swapfile
现在,如果您运行swapon --show
它,它将不会显示任何内容,因为它已被关闭。
现在更改交换大小(我将其设为 4GB,对于 n GB,将其设为 nG):
sudo fallocate -l 4G /swapfile
现在,如果你检查文件,你会发现文件大小增加了。查看方法如下:
ls -lh /swapfile
现在告诉 Linux 系统将此文件用作交换系统:
sudo mkswap /swapfile
这将擦除旧的交换签名并使用新的交换签名。
现在打开交换(因为我们最初关闭了交换空间):
sudo swapon /swapfile
完毕!
现在使用swapon --show
或free -h
查看变化。