如何调整和缩小 BTRFS 分区的大小?

如何调整和缩小 BTRFS 分区的大小?

我有/home一个BTRFS分区,我需要缩小它。

不幸的是,Gparted这个 FS 没有调整大小的选项。

我可以用其他方式调整其大小而不丢失数据吗?

答案1

根据这一页在里面btrfs 维基

要将文件系统缩小 4 GiB:btrfs filesystem resize -4g /mntbtrfsctl -r -4g /mnt设置 FS 大小。要将文件系统设置为特定大小,请省略大小前面的 + 或 -。

Ubuntu 中的和命令由名为的软件包提供,您可以在软件中心安装它。您btrfs可以在终端 (Ctrl+Alt+T) 中运行这些命令。将 替换为您真正想要缩小分区的量,并将替换为您分区的挂载点。例如,要将挂载在 /media/Alpha 的 btrfs 分区缩小 500 MiB,您可以运行:btrfsctlbtrfs-utils4g/mnt

btrfs filesystem resize -500m /media/Alpha

或者:

btrfsctl -r -500m /media/Alpha

假设调整 btrfs 文件系统大小的准则与其他文件系统相同,则应避免调整与正在运行的系统位于同一物理磁盘上的分区大小。因此,如有必要,请从实时系统启动以调整安装了 Ubuntu 系统的驱动器上的分区大小。(这也适用于在 GParted 中完成的大小调整。)

如果某些实用程序或应用程序在执行调整大小操作时没有看到其结果,则重新启动是一个好主意。

查看btrfsbtrfsctl 手册页了解有关这些命令的更多详细信息。希望btrfs 维基很快就会恢复。

我个人对 btrfs 文件系统不是很熟悉,但我觉得这些调整大小命令采用文件系统的挂载点而不是设备名称很奇怪。如果有人可以解释这一点,请发表评论或随意编辑此答案以改进它。

答案2

根据GParted 功能页面,支持 btrfs shrink。如果该选项不可用,安装 btrfs-tools 包可能会修复它。如果这不起作用,可能是因为 Ubuntu 包含旧版本的 GParted,在这种情况下,您可以使用 GParted Live CD:

http://gparted.sourceforge.net/livecd.php

(这也是如何Ubuntu 建议无论如何都会使用它)

答案3

这不是问题的直接答案,而是针对通过谷歌搜索到达这里的人,想知道你是否可以做在线心理咨询/- 是的,你可以

我需要更多交换空间,而 btrfs 不允许从文件运行交换空间,因此我不得不缩小 / 并重新创建分区(小心谨慎)。以下是我所做的,请记住我想要额外的 64G 交换空间:

sudo btrfs filesystem resize -96g /
sudo fdisk /dev/nvme0n1

我有 2 个分区,1 个用于 /,另一个用于交换。删除了这两个分区,然后重新创建(在重新启动之前!)。分区 1 的旧大小为 867.5G,新大小为 803.5,为交换分区提供了额外的 64G。当它询问您是否要覆盖 btrfs 签名时,请说“不”!如果您像我一样进行交换,则需要在创建时或之后使用“t”命令将交换分区的“类型”更改为“82”

重启后,我跑了

sudo btrfs filesystem resize max /

df -h然后报告:

/dev/nvme0n1p1  804G  498G  305G  63% /

因此,我最初将文件系统缩小 96G 的原因是,不同的工具计算 G 和 M 略有不同,所以要确保文件系统不会因为新分区比其上的文件系统略小而受到破坏!

重启后,如果你改变了交换分区,你还需要在其上运行 mkswap,例如sudo mkswap /dev/nvme0n1p2“swapon”或再次重启

这可能应该放在答案的顶部,但不用说,您自行承担上述命令的风险,并且您应该确保备份所有重要文件,以防出现问题并丢失整个文件系统!我希望这对某人有帮助!

答案4

使用此命令安装btrfs支持GParted

sudo apt install btrfs-progs

之后,您可以轻松地缩小和调整分区大小GParted。这样,您就可以在 GUI 中完成所有工作。无需命令行

相关内容