我想我在决定使用 Btrfs 时犯了一个错误。我没有使用它的任何功能,但现在遇到空间不足的问题。我做了
sudo btrfs balance start / -v
Run Code Online (Sandbox Code Playgroud)
正如某些来源所建议的那样,但仍然没有多少可用空间:
$ sudo btrfs fi df /
Data, single: total=102.00GiB, used=99.55GiB
System, single: total=32.00MiB, used=16.00KiB
Metadata, single: total=2.00GiB, used=762.44MiB
unknown, single: total=256.00MiB, used=0.00
Run Code Online (Sandbox Code Playgroud)
一位消息人士建议删除快照。我找到了一位候选人:
$ sudo btrfs subvolume list /
ID 257 gen 390597 top level 5 path @
ID 258 gen 390597 top level 5 path @home
ID 317 gen 390480 top level 5 path @apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40
Run Code Online (Sandbox Code Playgroud)
删除@apt-snapshot-release-upgrade-utopic-*
快照是否安全?
注意:我正在使用 eCryptFS(不确定在这种情况下这是否重要)。
我已经看过很多关于如何回滚到这些快照之一的教程,但是,在较新版本的 ubuntu(在 15.04 上测试)上,您不再需要挂载文件系统来回滚到通过apt-btrfs-snapshot
.
同样,从正在运行的系统中运行这些命令,而不是像管理 btrfs 快照时通常那样的挂载分区。
赶紧跑:
sudo apt-btrfs-snapshot list
Run Code Online (Sandbox Code Playgroud)
列出可用的快照,然后运行以下命令以恢复到较旧的快照:
sudo apt-btrfs-snapshot set-default @<name-of-snapshot>
Run Code Online (Sandbox Code Playgroud)
对于这种情况,您可能希望将默认值设置为现有快照。
重新启动以使更改生效。
此外,删除快照现在更加可靠和简单。同样,要列出快照,请运行:
sudo apt-btrfs-snapshot list
Run Code Online (Sandbox Code Playgroud)
然后,要删除快照,请运行:
sudo apt-btrfs-snapshot delete @<name-of-snapshot>
Run Code Online (Sandbox Code Playgroud)
例如,要按超过两天的日期列出,请运行:
sudo apt-btrfs-snapshot list-older-than 2d
Run Code Online (Sandbox Code Playgroud)
例如,要删除超过两天的所有快照,请运行:
sudo apt-btrfs-snapshot delete-older-than 2d
Run Code Online (Sandbox Code Playgroud)
很酷的一点是,您的旧默认设置不会被删除,因此如果您有一组设置,您仍然可以回滚到那个默认设置。
删除快照应立即生效。
如果启动后出现“设备上没有空间”错误,您可以连接一个空白的 USB 笔式驱动器或外部驱动器,然后使用命令行将驱动器挂载到 /tmp。
在 /tmp 安装驱动器后,您应该有足够的可用空间来运行:
sudo apt-btrfs-snapshot delete-older-than
Run Code Online (Sandbox Code Playgroud)
看起来很安全。我见过其他人 尝试这样做,但事实证明事情并不那么简单。
首先,运行以下命令查看哪个分区是您的 btrfs 分区(假设您只有一个 btrfs 分区):
lsblk -o NAME,FSTYPE | grep btrfs| grep -o sda.
Run Code Online (Sandbox Code Playgroud)
下面以使用/dev/sda3
为例。
我是这样做的:
# mkdir /mnt/tmp
# mount /dev/sda3 /mnt/tmp
# ls /mnt/tmp
@
@apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40
@home
Run Code Online (Sandbox Code Playgroud)
这是正确的分区:
# btrfs subvol delete /mnt/tmp/@apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40
Transaction commit: none (default)
Delete subvolume '/mnt/tmp/@apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40'
# btrfs subvol list /
ID 257 gen 397869 top level 5 path @
ID 258 gen 397869 top level 5 path @home
Run Code Online (Sandbox Code Playgroud)
没有释放太多空间:
vic-UX32VD# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 120729076 117384216 1996232 99% /
Run Code Online (Sandbox Code Playgroud)
重新启动有帮助:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 120729076 109894736 9187296 93% /
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3258 次 |
最近记录: |