首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法增加交换大小: swapfile似乎有漏洞

无法增加交换大小: swapfile似乎有漏洞
EN

Ask Ubuntu用户
提问于 2020-01-23 13:02:02
回答 2查看 2.8K关注 0票数 2

编辑:我放弃了与19.10的斗争。由于我的研究,它有严重的错误,特别是5.3内核。太多的人都有同样的问题,而且不仅有一个解决方案对我不起作用。我将尝试18个lts版本。

我使用的Ubuntu19.10和5.3.26内核,有4GB内存,但我的交换大小是2GB RAM。我的系统几乎一直在冻结。因此,我决定增加交换大小,但我有一个类似的错误。

我使用了以下命令:

代码语言:javascript
复制
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile

在最后那部分之前是可以的:

代码语言:javascript
复制
sudo swapon /swapfile

当我使用最后一个命令时,它说:

代码语言:javascript
复制
swapon: /swapfile: skipping - it appears to have holes.

这是lsblk输出

代码语言:javascript
复制
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0    50M  0 part /boot/grub
├─sda3   8:3    0     2G  0 part [SWAP]
├─sda4   8:4    0     2G  0 part 
└─sda5   8:5    0 114,7G  0 part 

这是df输出

代码语言:javascript
复制
Filesystem     Type     1M-blocks  Used Available Use% Mounted on
/dev/sda1      vfat           511     8       504   2% /boot/efi
/dev/sda2      ext4            45     8        33  20% /boot/grub
udev           devtmpfs      1883     0      1883   0% /dev
udev           devtmpfs      1883     0      1883   0% /dev
udev           devtmpfs      1883     0      1883   0% /dev
EN

回答 2

Ask Ubuntu用户

发布于 2020-01-27 17:41:20

对于Ubuntu来说,对交换空间使用文件是相对较新的。以前,当使用交换分区时,块当然是连续的,但是文件对其块没有这样的保证。显然,为弥补差距作出了一些努力,但可能对可以处理的问题有所限制。参见"man mkswap“手册页末尾的说明:

代码语言:javascript
复制
Note that a swap file must not contain any holes.  Using cp(1) to create the file is not acceptable.  Neither is  use  of
       fallocate(1)  on  file systems that support preallocated files, such as XFS or ext4, or on copy-on-write filesystems like
       btrfs.  It is recommended to use dd(1) and /dev/zero in these cases.  Please read notes from swapon(8)  before  adding  a
       swap file to copy-on-write filesystems.  

当前的解决办法是简单地重新分配一些分区,以便将4G专用于交换分区,并在其上使用mkswap。

票数 0
EN

Ask Ubuntu用户

发布于 2021-05-15 20:46:04

在使用ZDF默认安装之后,也出现了同样的问题。2G交换分区-并且不再。我在这个线程中找到的解决方案是:ZFS交换大小,甚至使用了w/o更改路径,只选择了另一个大小32G:

代码语言:javascript
复制
zfs create -V 8G -b $(getconf PAGESIZE) -o logbias=throughput -o sync=always -o primarycache=metadata -o com.sun:auto-snapshot=false rpool/swap
mkswap -f /dev/zvol/rpool/swap
swapon /dev/zvol/rpool/swap

# IN FSTAB (before the line with current swap file or partition)
/dev/zvol/rpool/swap none swap discard 0 0

检查它是否对你有效:free -m

但是我的新SSD几乎是免费的,所以分配大的连续文件没有问题。在许多创建/追加/收缩/删除文件操作之后,在几乎满的驱动器上执行该操作肯定是一个问题!

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1205166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档