btrfs サブボリュームを削除できません。

btrfs サブボリュームを削除できません。

btrfsファイルシステムパーティション「/dev/sda1」にArch Linuxをインストールしました。

[root@larch ~]# mount | grep sda
/dev/sda1 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=266,subvol=/subvol_root)

ご覧のとおり、ルートボリュームをマウントするのではなく、「subvol_root」というサブボリュームをマウントしました。パーティション全体を次の場所にマウントすると、/root/BTRFSROOT現在のサブボリュームを表示できます。

[root@larch ~]# pwd
/root
[root@larch ~]# mount -o subvol=/ /dev/sda1 BTRFSROOT/
[root@larch ~]# btrfs sub list -apt BTRFSROOT/
ID  gen parent  top level   path    
--  --- ------  ---------   ----    
257 3239    5   5       subvol_root_borked
264 3350    5   5       snapshots
266 3358    5   5       subvol_root
267 3223    264 264     <FS_TREE>/snapshots/20190103-fresh-arch
268 302     264 264     <FS_TREE>/snapshots/20190104-pre-graphics
272 2275    264 264     <FS_TREE>/snapshots/20190106-pre-intel-driver
276 3250    264 264     <FS_TREE>/snapshots/20190107-pre-vbox
[root@larch ~]# 

削除したいのですが、subvol_root_borked次のエラーが発生します。

[root@larch ~]# btrfs sub delete BTRFSROOT/subvol_root_borked/
Delete subvolume (no-commit): '/root/BTRFSROOT/subvol_root_borked'
ERROR: Could not destroy subvolume/snapshot: Operation not permitted
[root@larch ~]# 

subvol_root_borked私が作成したスナップショットで作成しましたsubvol_rootが、作成後に名前を変更しました。元のスナップショットの名前がわかりません。もともとサブボリュームから作成された可能性がありますが、snapshotsわかりません。

サブボリューム内のすべてのコンテンツを削除できますが、次のようになります。

[root@larch ~]# ls -lah BTRFSROOT/subvol_root_borked/
total 16K
drwxr-xr-x 1 root root  0 Jan  7 20:13 .
drwxr-xr-x 1 root root 94 Jan  4 00:24 ..

このサブボリュームにはどのような問題がありますか?どのように詳細を分析できますか?

答え1

問題のサブボリュームが次のread-only場合直接削除できません(と同様にrootwritable最初に実行する必要がある作業は次のとおりです。

sudo su
btrfs property set -ts /BTRFSROOT/subvol_root_borked/ ro false
btrfs sub delete BTRFSROOT/subvol_root_borked/

関連情報