我有一台运行Ubuntu 12.04.5 LTS(精确穿山甲)的服务器。 在该服务器上,我创build了一个新的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提供了一个非常强烈的暗示文件的目的和使用它。
也就是说:系统正在使用它作为交换,因为有人创build交换文件并用swapon将其添加到系统中。
尝试使用swapoff从活动交换中删除它:
swapoff /var/lib/lxc/mycontainer/rootfs/swapfile