btrfsサブボリュームを削除する方法は?

btrfsサブボリュームを削除する方法は?

削除したいスナップショットがあります。

04:03:21::mlissner@pounamu::~ 
↪ sudo btrfs subvolume list /
ID 257 gen 267078 top level 5 path @badroot
ID 258 gen 267151 top level 5 path @home
ID 422 gen 267151 top level 5 path @

@badrootという人はひどい行くべきです。しかし:

04:03:23::mlissner@pounamu::~ 
↪ sudo btrfs subvolume delete \@badroot
ERROR: error accessing '@badroot'
04:03:31::mlissner@pounamu::~ 

だからどこから始めるべきかわかりません。ヘルプファイルを読み取ろうとしています。

↪ sudo btrfs subvolume delete --help
usage: btrfs subvolume delete <subvolume> [<subvolume>...]

    Delete subvolume(s)

しかし、それも役に立ちません。たぶん、インターネット上の何人かの良い人がアイデアを持っているかもしれません。

答え1

最初の可能性

@badroot間違ったパスを使用しているようです。

シェルプロンプトを正しく読み込んだ場合、現在のディレクトリは~ホームディレクトリであり、おそらく/home/mlissner似ているか似ています。サブボリュームへのパスを相対パス(で始まらない)として指定するので、実際には...などの存在しないエントリを/削除するように要求します。/home/mlissner/@badroot

絶対パスを試してください。

sudo btrfs subvolume delete /@badroot

第二の可能性

にデフォルト以外のサブボリューム(/422など)がマウントされている可能性があります@。この場合、下にはサブボリュームのみが表示され、/他の2つのサブボリュームとBtrfsのルートディレクトリにある一般的なファイルを含むパスの上には何も表示されません。

この場合、その内容にアクセスできるように、実際のBtrfsルートを別の場所にマウントしてください。 Btrfsの実際のルートはサブボリュームID 0と呼ばれ、リストされていませんbtrfs subvolume list。無料のマウントポイントを検索または作成し、次のようにマウントします。

mount -o subvolid=0 /dev/some-device /mnt

/mnt/@これで、下、、、/mnt/@badrootその他/mnt/@homeのファイルを見ることができます/mnt/mnt/@badroot通常どおりサブボリュームを削除できます。

関連情報