swapon失败:设备或资源在安装的磁盘上繁忙

我想在挂接的外部EBS /工作区上进行交换

我有设备或资源忙

swapon:/workspace/swap.1:swapon失败:设备或资源忙碌

sudo /bin/dd if=/dev/zero of=/workspace/swap.1 bs=1M count=10240 sudo /sbin/mkswap /workspace/swap.1 sudo /sbin/swapon /workspace/swap.1 Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 5.1G 2.3G 70% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 12K 2.0G 1% /dev tmpfs 396M 336K 395M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user /dev/xvdb 6.0T 1.7T 4.1T 29% /workspace 

运行sync命令后仍然无法工作

 ➜ ~ sync ➜ ~ sudo /sbin/swapon /workspace/swap.1 swapon: /workspace/swap.1: swapon failed: Device or resource busy 

这里是交换信息

 ➜ ~ cat /proc/swaps Filename Type Size Used Priority /workspace/swap.1 file 10485756 0 -1 

我有一个类似的问题试图在sda2上做一个交换分区。 我的解决scheme是键入

 #: swapoff /dev/sda2 #: mkswap /dev/sda2 #: swapon /dev/sda2 

这似乎重置了我所遇到的任何问题。 为了确保工作,使用“ lsblk ”来检查挂载点。

您需要在mkswap命令之后sync出块caching。

其解释如下。

如果你写数据,但是它们不是写在磁盘上,它们将是脏页面。 这意味着,他们的内容是在这里,在你的系统上创build的,而不是从硬盘读入的。 因此你不能交换脏页面。

问题是没有添加交换; 问题是你的假设,所有交换空间出现在df的输出。

只有分区types的数据才会显示出来,而且当你使用系统内交换(又名交换文件)时,它不会显示出来。 交换空间由你做的第一个swapon激活的; 你只是在错误的地方来确认。 第二个swapon失败了,很正确,因为你不能再次添加同一个文件。 当您查看/proc/swaps (这是所有交换空间的权威性系统摘要)时,您看到您的新空间已启动并正在运行。