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)
但這也沒用。也許網際網路的善良人有想法。
第一種可能性
您似乎指的是
@badroot
使用錯誤的路徑。如果我正確地閱讀了您的 shell 提示符,那麼您的目前目錄是
~
,您的主目錄——可能是/home/mlissner
或類似的。您將子卷的路徑指定為相對路徑(不以 開頭/
),因此您實際上是在要求刪除諸如/home/mlissner/@badroot
… 之類的不存在的內容。嘗試使用絕對路徑:
sudo btrfs subvolume delete /@badroot
第二種可能性
也許您在 上安裝了一個非預設子卷
/
,例如編號 422@
,. 在這種情況下,只有該子卷出現在下面/
,您無法看到該路徑上方的任何內容,包括其他兩個子卷以及位於 Btrfs 根目錄中的任何正常文件。在這種情況下,將真正的 Btrfs 根目錄掛載到其他地方,以便您可以訪問其內容。Btrfs 的真正根稱為子卷 ID 0(並且未列在 中
btrfs subvolume list
)。查找或創建一個空閒的掛載點並掛載如下:mount -o subvolid=0 /dev/some-device /mnt
現在您應該能夠看到
/mnt/@
,/mnt/@badroot
,/mnt/@home
, 以及 . 下的一些其他文件/mnt
。/mnt/@badroot
您可以照常刪除子卷。