ubuntu 安装的交换区域

ubuntu 安装的交换区域

我的笔记本电脑有 4 GB 的 RAM,安装时我分配了 3 GB 的交换区域。那么这么多的交换区域对我的笔记本电脑有害吗?如果是,那么我该如何更改交换区域的大小。我应该分配多少交换区域?当我运行命令时

swapon --show

表明

NAME      TYPE SIZE USED PRIO
/swapfile file   2G  59M   -2

但这里只显示 2 GB,那么这是否意味着交换文件和交换空间不同?我不知道该怎么办。我是 Ubuntu 新手。请帮忙。

答案1

由于只有 4G RAM,我建议交换为 4G。

这样做可以扩大您当前的 2G 交换...

笔记:命令使用不当dd可能导致数据丢失。建议复制/粘贴。

sudo swapoff -a           # turn off swap
sudo rm -i /swapfile      # remove old /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

sudo chmod 600 /swapfile  # set proper file protections
sudo mkswap /swapfile     # init /swapfile
sudo swapon /swapfile     # turn on swap
free -h                   # confirm 4G RAM and 4G swap
reboot                    # reboot and verify operation

另外,执行sysctl vm.swappiness,如果它返回“60”以外的任何内容,请告诉我,我会给您进一步的说明。

答案2

扩大交换空间:

sudo swapoff -a
  • 删除位于根目录的现有交换文件

  • 创建新的交换文件:

    sudo fallocate -l XG /swapfile

其中 X 是交换文件大小(单位为 GB)(本例中为 4GB)

sudo mkswap /swapfile

sudo chmod 0600 /swapfile

sudo swapon /swapfile
  • 重启:

    sudo reboot

启用休眠模式(可选):

  • 编辑 /etc/default/grub 以将恢复位置和偏移量添加到 grub.cfg:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"

  • 从 root 使用 UUID。

  • 使用偏移量sudo filefrag -v /swapfile

cscameron@cscameron-T:~$ filefrag -v /swapfile Filesystem type is: ef53 File size of /swapfile is 4819255296 (1176576 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 0: 303104.. 303104: 1: 1: 1.. 2047: 303105.. 305151: 2047: unwritten 2: 2048.. 4095: 311296.. 313343: 2048: 305152: unwritten

  • 恢复偏移量=303104

  • 更新 GRUB

    sudo update-grub

  • 测试休眠

    sudo systemctl hibernate

  • 使用 fallocate 创建交换文件时,可能会出现漏洞。可以搜索 /var/log/syslogswapon: swapfile has holes以确保不会丢失数据。

可以使用 gnome 扩展添加休眠按钮。

休眠与交换文件协同工作的概念证明

在此处输入图片描述 显示交换文件、恢复和 UUID 在此处输入图片描述 显示休眠弹出窗口 在此处输入图片描述 显示从 UUID 恢复是来自根分区,而不是从交换分区恢复

相关内容