我正在使用 CentOS 6.3 并且以 root 身份登录。
当我通过执行以下操作创建硬链接时:
ln /root.hdd /somedir/root.hdd
一切正常,两个文件之间的 inode 显示相同,一切正常。但是当我尝试删除链接时,它不允许我这样做。
rm /somedir/root.hdd
unlink /somedir/root.hdd
umount /somedir/root.hdd
这些都不起作用。尽管我是 root,但我还是收到“操作不允许”的提示,甚至使用 sudo 也无济于事。
root.hdd 是一个 openvz 文件,其中包含单个文件中的 vm 文件系统。稍后使用 ploop(回溯设备)进行安装。
答案1
您的 strace 包含以下内容;
...
unlinkat(AT_FDCWD, "root.hdd", 0) = -1 EPERM (Operation not permitted)
...
write(2, "cannot remove `root.hdd'", 24cannot remove `root.hdd') = 24
...
由于解除链接失败,可以安全地假设某些程序仍打开了该文件(使用“root.hdd”名称)。由于该文件包含 OpenVZ 文件系统,请确保与 OpenVZ 相关的任何进程或服务都已关闭,然后重试。