Cách xóa các biểu tượng con btrfs với <FS_TREE> trong tên của chúng


9

Tôi có một loạt các ảnh chụp nhanh btrfs như vậy:

20:17:37 [root@galaxy /]$ btrfs subvolume list -a / |grep apt
ID 271 gen 348 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:44:30
ID 272 gen 352 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:46:25
ID 273 gen 361 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:51:13
... # lots more

Tôi muốn thoát khỏi chúng. Vì vậy, tôi đã cố gắng

20:21:31 [root@galaxy ~]$ btrfs subvolume delete '/<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '/<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
20:21:36 [root@galaxy ~]$ btrfs subvolume delete '<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
20:21:43 [root@galaxy ~]$ btrfs subvolume delete '/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '/@apt-snapshot-2013-04-17_21:44:30'
20:21:47 [root@galaxy ~]$ btrfs subvolume delete '@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '@apt-snapshot-2013-04-17_21:44:30'

Cú pháp đúng để xóa những ảnh chụp nhanh này là gì?

Câu trả lời:


10

Tôi đã có thể xóa các ảnh chụp nhanh này bằng cách trước tiên gắn toàn bộ âm lượng btrfs (không phải @subvolume) và sau đó làm việc từ đó:

# mount /dev/mapper/whatever /mnt -o subvol=/
# ls /mnt
@
@apt-snapshot-2013-04-17_21:44:30
...

Vì vậy, tại thời điểm này, tất cả các subvolume (bao gồm cả những apt-snapshotcái vui nhộn ) đều hiển thị /mnt, vì vậy chúng tôi có thể xóa chúng:

# btrfs subvol delete /mnt/@apt-snapshot-2013-04-17_21:44:30
# umount /mnt

2
Bạn đã phải sử dụng một đĩa CD trực tiếp cho việc này?
mlissner

2
Không, tôi đã có thể làm điều này trong khi chạy hệ thống từ @cùng một hệ thống tập tin.
Xương rồng

1

Cách dễ nhất để làm điều này là sử dụng các apt-btrfs-snapshotlệnh tích hợp:

Không giống như xóa ảnh chụp nhanh thông thường, bạn không cần phải gắn hệ thống tệp để xóa ảnh chụp nhanh.

Đầu tiên, liệt kê các apt-btrfs-snapshotảnh chụp nhanh có sẵn bằng lệnh sau:

sudo apt-btrfs-snapshot list

Dưới đây là một ví dụ về đầu ra từ lệnh đó:

@apt-snapshot-old-root-2015-10-19_20:20:10
@apt-snapshot-2015-10-28_19:00:46
@apt-snapshot-2015-10-28_19:09:14
@apt-snapshot-2015-10-29_04:40:07
@apt-snapshot-2015-10-29_06:35:57
@apt-snapshot-2015-10-29_07:03:39
@apt-snapshot-2015-10-30_03:49:05
@apt-snapshot-2015-10-30_17:53:59

Để xóa ảnh chụp nhanh @apt-snapshot-2015-10-30_17:53:59, hãy chạy:

sudo apt-btrfs-snapshot delete @apt-snapshot-2015-10-30_17:53:59

Bạn cũng có thể xóa một số ảnh chụp nhanh theo ngày. Dưới đây là một ví dụ về lệnh sẽ xóa tất cả các ảnh chụp nhanh hơn 0 ngày.

sudo apt-btrfs-snapshot delete-older-than 0d   

Dưới đây là một ví dụ về đầu ra từ lệnh đó:

Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-odfe0o4g/@apt-snapshot-old-root-2015-10-19_20:20:10'
ERROR: cannot delete '/tmp/apt-btrfs-snapshot-mp-odfe0o4g/@apt-snapshot-old-root-2015-10-19_20:20:10' - Directory not empty
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-b2zv18qr/@apt-snapshot-2015-10-28_19:00:46'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-zjglvefe/@apt-snapshot-2015-10-28_19:09:14'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-lj3v74qa/@apt-snapshot-2015-10-29_04:40:07'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-vztc82zr/@apt-snapshot-2015-10-29_06:35:57'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-q0ou8e24/@apt-snapshot-2015-10-29_07:03:39'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-dw8eq0vv/@apt-snapshot-2015-10-30_03:49:05'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-vgo2yuf2/@apt-snapshot-2015-10-30_17:53:59'

Như bạn có thể thấy, các ảnh chụp nhanh có sẵn đã bị xóa. Tuy nhiên, ảnh chụp cũ nhất "root-root" không bị xóa và vẫn có thể được sử dụng để quay lại mặc dù nó cũ hơn 0 ngày.

Chạy lệnh sau để có danh sách đầy đủ các tính năng:

apt-btrfs-snapshot --help

Tôi vừa thử điều này và sudo apt-btrfs-snapshot delete-older-than 30dtiến hành xóa TẤT CẢ các ảnh chụp nhanh ...
Cactus

@Cactus nếu tất cả ảnh chụp nhanh của bạn cũ hơn 30 ngày thì đó là điều nên xảy ra. Để xác minh điều này trước khi bạn bắt đầu, bạn có thể chạy: sudo apt-btrfs-snapshot list-older-than 30dđể xem những gì cũ hơn 30 ngày.
mchid

@Cactus mặc dù, oldroot không nên xóa và vẫn có thể được sử dụng làm điểm khôi phục.
mchid

Lưu ý rằng apt-btrfs-snapshotkhông được "tích hợp" trong mọi bản phân phối. Đặc biệt, nó dường như không có sẵn trong kho Debian.
dùng44400
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.