我有一台运行 Ubuntu 12.04.5 LTS(Precise Pangolin)的服务器。在该服务器上,我创建了一个新的 Linux 容器:
$ sudo lxc-create -n mycontainer
过了一会儿,我决定摆脱这个容器:
$ sudo lxc-destroy -n mycontainer
但是我收到以下错误:
rm: cannot remove `/var/lib/lxc/mycontainer/rootfs/swapfile': Operation not permitted
我试图手动删除有问题的文件:
$ sudo rm /var/lib/lxc/mycontainer/rootfs/swapfile
但是,果然,这给了我同样的错误信息。
我用 lsattr 检查了扩展文件属性,以确保它不是不可变的:
$ sudo lsattr /var/lib/lxc/mycontainer/rootfs/swapfile
-------------e- /var/lib/lxc/mycontainer/rootfs/swapfile
作为一个实验,我试图覆盖文件:
$ echo '' > /var/lib/lxc/mycontainer/rootfs/swapfile
这给了我一个新的错误信息:
bash: /var/lib/lxc/mycontainer/rootfs/swapfile: Text file busy
所以我尝试使用 lsof 来获取正在使用该文件的进程的 pid:
$ sudo lsof /var/lib/lxc/mycontainer/rootfs/swapfile
这没有产生任何输出。我用定影器尝试了同样的事情:
$ sudo fuser /var/lib/lxc/mycontainer/rootfs/swapfile
再次,没有输出。
我还要提到我检查了文件的大小:
$ sudo du -h /var/lib/lxc/mycontainer/rootfs/swapfile
1.1G /var/lib/lxc/mycontainer/rootfs/swapfile
这是怎么回事,我该如何摆脱这个文件?
该名称
swapfile
对文件的用途和使用它的内容给出了非常强烈的提示。即:系统将其用作交换,因为有人创建了交换文件并将其添加到系统中
swapon
。尝试将其从活动交换中删除
swapoff
: