快照的快照刪除:cannot delete dir - Directory not empty

事件概要:第一次測試建立快照的快照後,想要把其刪除快照。但失敗,失敗提示以下:linux

[root@mylinux ~]# btrfs subvolume delete /mydata/logs_snapshot
Delete subvolume (no-commit): '/mydata/logs_snapshot'
ERROR: cannot delete '/mydata/logs_snapshot' - Directory not empty


一步步跟着老師的腳步操做,怎麼個人就失敗了呢,各類糾結,下面是問題處理過程命令:bash

[root@mylinux ~]# btrfs subvolume delete /mydata/logs_snapshot/
Delete subvolume (no-commit): '/mydata/logs_snapshot'
ERROR: cannot delete '/mydata/logs_snapshot' - Directory not empty
You have new mail in /var/spool/mail/root

#查看文件夾快照logs_snapshot裏面內容
[root@mylinux ~]# ls /mydata/logs_snapshot
grub2.cfg  logs

#嘗試刪除快照文件夾裏的文件,但目錄不可這樣刪除,須要加-rf參數
[root@mylinux ~]# rm /mydata/logs_snapshot/*
rm: remove regular file ‘/mydata/logs_snapshot/grub2.cfg’? y
rm: cannot remove ‘/mydata/logs_snapshot/logs’: Is a directory
[root@mylinux ~]# ll -a /mydata/logs_snapshot
total 16
drwxr-xr-x. 1 root root  8 Oct  5 17:05 .
drwxr-xr-x. 1 root root 90 Oct  5 17:03 ..
drwxr-xr-x. 1 root root 18 Oct  5 16:51 logs

[root@mylinux mydata]# rm -rf logs_snapshot    #加上-rf參數嘗試刪除文件夾logs但失敗了
rm: cannot remove ‘logs_snapshot/logs’: Operation not permitted
[root@mylinux mydata]# chmod  777 logs_snapshot    #對該文件受權
[root@mylinux mydata]# ll
total 24
-rw-r--r--. 1 root root     0 Oct  5 12:47 a.txt
drwxr-xr-x. 1 root root     0 Oct  5 16:18 cache
-rw-r--r--. 1 root root 13948 Oct  5 13:03 functions
-rw-r--r--. 1 root root  5137 Oct  5 12:47 grub2.cfg
drwxr-xr-x. 1 root root    18 Oct  5 16:59 logs
drwxrwxrwx. 1 root root     8 Oct  5 17:05 logs_snapshot
[root@mylinux mydata]# rm -rf logs_snapshot    #仍然沒法刪除
rm: cannot remove ‘logs_snapshot/logs’: Operation not permitted

#就這樣折騰了好長一段時間,網上資料也找過嘗試過但無果,這時候腦海裏出現,爲什麼不先查看快照列表
[root@mylinux logs_snapshot]# btrfs subvolume list /mydata
ID 266 gen 104 top level 5 path cache
ID 267 gen 122 top level 5 path logs
ID 270 gen 128 top level 5 path logs_snapshot
ID 271 gen 126 top level 270 path logs_snapshot/logs    #這就是病根

#快照的快照須要先刪除最裏層的,方可刪除外面的快照。
[root@mylinux logs_snapshot]# btrfs subvolume delete /mydata/logs_snapshot/logs
Delete subvolume (no-commit): '/mydata/logs_snapshot/logs'
[root@mylinux logs_snapshot]# ls 
[root@mylinux logs_snapshot]# cd ..
[root@mylinux mydata]# btrfs subvolume delete /mydata/logs_snapshot
Delete subvolume (no-commit): '/mydata/logs_snapshot'
[root@mylinux mydata]# btrfs subvolume list /mydata
ID 266 gen 104 top level 5 path cache
ID 267 gen 122 top level 5 path logs
相關文章
相關標籤/搜索