有个很方便的办法就是使用图形工具gparted

使用gparted一种可能的警告:

移动分区可能会导致你的操作系统无法启动
你已将移动分区 /dev/sda2 起始扇区的操作加入队列。如果你移动包含 /boot 的 GNU/Linux 分区,或者移动 Windows 系统的 C 盘分区,极有可能出现无法启动的情况。你可以在 GParted 常见问题解答(FAQ)中学习如何修复启动配置。
https://gparted.org/faq.php
移动分区可能需要很长时间才能执行完毕。

1.防止数据丢失

有重要数据要先备份
最好现在虚拟机练习一下,

2.注意点

要扩展分区及其文件系统,
(1)先扩展分区
(2)再扩展文件系统

要收缩分区及其文件系统,
(1)先收缩文件系统
(2)再收缩分区

确保文件系统新的大小满足下面的条件:
新的大小必须大于已有数据的大小,否则会导致数据损失。
新的大小必须等于或小于当前设备的可用空间。

这样做是因为分区始终大于文件系统,就像箱子里装满文件夹,要先把箱子变大,才能增加文件夹。要先减少文件夹,才能把箱子变小。

扩展收缩都可以在线进行 参照:https://documentation.suse.com/zh-cn/sles/12-SP5/html/SLES-all/cha-resize-fs.html

3.操作参照:https://wiki.archlinuxcn.org/wiki/Btrfs#调整大小

btrfs filesystem resize 命令应该需要root权限

(1)扩展分区:

cfdisk /dev/sdx
# 删除分区并重新创建所需大小的分区
btrfs filesystem resize max /

在不指定任何大小的情况下, btrfs filesystem resize将文件系统扩展到分区的大小。

(2)收缩分区:

# 例如,如果你想要一个 10G 分区
# 调整文件系统的大小,使其大小小于所需大小
btrfs filesystem resize 9G /
cfdisk /dev/sdx
# 删除分区并重新创建所需大小的分区(10G)
# (比文件系统大一点!!
# 然后再次启动 btrfs filesystem resize
btrfs filesystem resize max /

这样做,我们可以在不损失任何空间的情况下获得良好的分区大小。

开机如果出现
Dependency failed for /home.
Dependency failed for Local File System
应该是文件系统表不正确了,导致访问文件系统失败。
使用救援盘挂载分区
删除原来的文件系统表重新生成文件系统表fstab

rm /mnt/etc/fstab
genfstab -U /mnt >> /mnt/etc/fstab

或者能进到root用户再重新生成文件系统表也可以