在安装 Fedora 33 时,我选择了 btrfs,其中 32gb 用于 /,其余用于 /home
我看到这些被用作“子卷”:
# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Oct 19 13:43:25 2020
#
UUID=f1483466-114c-4ef4-b268-85095d4c4aa8 / btrfs subvol=root,x-systemd.device-timeout=0 0 0
UUID=ef7bc629-cb70-458a-9463-2666c2c233a7 /boot ext4 defaults 1 2
UUID=F206-0546 /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=f1483466-114c-4ef4-b268-85095d4c4aa8 /home btrfs subvol=home,x-systemd.device-timeout=0 0 0
我想查看每个分区已使用和可用的空间量,但df
只显示总量:
Filesystem Size Used Avail Use% Mounted on
/dev/dm-0 924G 27G 895G 3% /
tmpfs 3.9G 12K 3.9G 1% /tmp
/dev/dm-0 924G 27G 895G 3% /home
尝试过这些:
# btrfs device usage /
/dev/mapper/luks-662fb4fb-75b3-4888-a617-0c039f575d3a, ID: 1
Device size: 923.00GiB
Device slack: 0.00B
Data,single: 27.01GiB
Metadata,DUP: 2.00GiB
System,DUP: 16.00MiB
Unallocated: 893.98GiB
# btrfs subvolume list /
ID 256 gen 7177 top level 5 path home
ID 258 gen 7176 top level 5 path root
ID 265 gen 30 top level 258 path var/lib/machines
# btrfs filesystem df /root
Data, single: total=27.01GiB, used=26.17GiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=386.67MiB
GlobalReserve, single: total=45.22MiB, used=0.00B
# btrfs filesystem df /home
Data, single: total=27.01GiB, used=26.17GiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=386.67MiB
GlobalReserve, single: total=45.22MiB, used=0.00B
我如何才能查看 / 的总大小为 32gb 以及使用了多少,/home 也是如此?
答案1
看起来好像有一个分区,分成多个子卷。子卷共享底层文件系统,因此两者的文件系统大小和使用情况确实相同。
我不使用 Fedora,但如果安装程序遵守 32GB 的限制/
,则很可能通过 qgroup 限制给定子卷的最大使用量。
尝试btrfs qgroup show /
一下btrfs qgroup show /home
。
答案2
每个版本都有一个子卷:
LVM 方式本来是为每个版本创建一个新的 LV(我将它们命名为 f26、f28、f30、f32 等)——如果不进行一些重新调整,现在这样做已经太晚了。有关 LVM 方式的文章:https://fedoramagazine.org/use-lvm-upgrade-fedora/
Btrfs 方式是创建一个新的可写快照子卷,创建新的 grub 条目以将其挂载到 /,重新启动以进行测试,然后 dnf system-upgrade。现在您可以启动到旧的或新的子系统。希望我能在 f34 之前准备好另一篇文章。
我没有等待 f34 真正尝试这一点,而是将 f31 根转换为 btrfs,并将在 btrfs 快照中进行系统升级以进行测试。(使用 LVM 副本以确保万无一失!)
我确实计划继续使用 LVM 和 btrfs 下的标准的 LV(没有精简池)。标准 LVS 与分区一样强大,而且更加灵活。(Grub2 甚至可以使用标准 LV 中的 /boot 进行启动。)可以完全跳过分区表,但最好保留它 - 即使只有一个大分区 - 以便其他软件知道磁盘正在使用中。此外,您需要一个 GPT 来进行 EFI 启动。