使用 btrfs 文件系统增加 Debian 11 上的磁盘大小

使用 btrfs 文件系统增加 Debian 11 上的磁盘大小

我在 VirtualBox VM 上有一个 Debian 11 系统,我现在正在尝试增加其磁盘大小。

我一开始就为我的主分区创建了带有 btrfs 文件系统的 Debian 11,所以现在,它应该已经在我现有卷的 btrfs 系统上运行了。

我已经做了什么:

使用 fdisk 从我在 vdi 文件使用顺序中添加的卷创建一个新部分fdisk /dev/sda,该新部分称为/dev/sda4

mkfs.btrfs -L extand /dev/sda4 

使其成为 btrfs 文件系统。

所以现在:

fdisk -l 显示:

Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A5328659-9CBF-49AE-BF68-F9F4670D45C8

Device        Start      End  Sectors  Size Type
/dev/sda1      2048  1050623  1048576  512M EFI System
/dev/sda2   1050624  2050047   999424  488M Linux filesystem
/dev/sda3   2050048 16775167 14725120    7G Linux LVM
/dev/sda4  16775168 52428766 35653599   17G Linux filesystem


Disk /dev/mapper/debian--vg-root: 6.03 GiB, 6476005376 bytes, 12648448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/debian--vg-swap_1: 976 MiB, 1023410176 bytes, 1998848 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

btrfs 文件系统显示:

Label: none  uuid: 3ea73e8c-64ac-442c-8c88-2675908cecdd
        Total devices 1 FS bytes used 4.68GiB
        devid    1 size 6.03GiB used 6.03GiB path /dev/mapper/debian--vg-root

Label: 'extand'  uuid: ef622e2c-9c19-415e-a8d7-6e60ef448bc2
        Total devices 1 FS bytes used 192.00KiB
        devid    1 size 17.00GiB used 536.00MiB path /dev/sda4

df:

Filesystem                  1K-blocks    Used Available Use% Mounted on
udev                           990920       0    990920   0% /dev
tmpfs                          201748   20780    180968  11% /run
/dev/mapper/debian--vg-root   6324224 5103168         0 100% /
tmpfs                         1008720       0   1008720   0% /dev/shm
tmpfs                            5120       0      5120   0% /run/lock
/dev/sda2                      481642   87234    369423  20% /boot
/dev/sda1                      523244    3484    519760   1% /boot/efi
tmpfs                          201744       0    201744   0% /run/user/0

接下来我应该做什么?

我尝试了resize2fs,这在 btrfs 文件系统上不起作用,并且我不知道如何以及在哪里挂载 /dev/sda4 来使用btrfs filesystem resize命令。

答案1

很抱歉通知你,但你似乎把事情搞得一团糟。

这个问题早在您进行扩展之前就开始了,甚至在安装时就已经出现了。

ZFS(及其文件系统)和 BTRFS(及其子卷)的全部目的是取代上世纪过时的想法,例如 LVM。

ZFS 和 BTRFS 都是它们的“自己的 LVM”,即您不需要一个,那么为什么我会看到您的根/BTRFS 池从/dev/mapper/debian--vg-rootLVM 设备实例化(我认为它位于其之上/dev/sda3)?

除非你有一些非常具体的理由来做这种愚蠢的分层,否则这是完全错误的。

考虑到您的 visor (vbox) 和单磁盘虚拟机系统,您的流程应该是:

  1. 增加遮阳板中的磁盘大小
  2. 指示来宾重新扫描磁盘大小(或整个存储总线) - 如果磁盘大小尚未增加 - 您可以通过 dmesg(1) 检查内核日志
  3. 编辑分区表并拉伸最后一个分区(托管您的根目录)
  4. 拉伸分区后,您可以发出:# btrfs filesystem resize max /

相反,你做了:

  1. 在 LVM 之上安装 BTRFS

一段时间之后:

  1. 增加了遮阳板中的磁盘大小
  2. 指示访客重新扫描磁盘大小
  3. 添加了新分区(!)到分区表
  4. 将这个新分区格式化为新的 BTRFS 池并将其标记为“extand”(顺便说一下,很酷的名字:))

如何修复它

启动一个新的虚拟机。如果您使用的是 Windows,我建议您摆脱 VirtualBox 并将其替换为 HyperV,如果可以的话(您需要 Windows 10 之类的东西)管理和性能特征以及虚拟硬件支持日夜不停,有利于 HyperV,即。另外,即使您已注销,您的 HyperV VM 也可以运行。

确保以下布局:

Device        Start      End  Sectors  Size Type
/dev/sda1      2048  ???????  ???????  512M EFI System
/dev/sda2   ???????  ???????  ???????  488M Linux filesystem # I assume this is /boot)
/dev/sda3   ???????  ???????  ???????   **G Linux filesystem # <- this will be your btrfs

如果您需要交换,请将其放在不同的磁盘上,或者,如果您事先知道大小,请将其放在 btrfs 分区前面以最大程度地减少麻烦:

Device        Start      End  Sectors  Size Type
/dev/sda1      2048  ???????  ???????  512M EFI System
/dev/sda2   ???????  ???????  ???????  488M Linux filesystem # I assume this is /boot)
/dev/sda3   ???????  ???????  ???????   7G Linux filesystem # <- swap prepends btrfs
/dev/sda4   ???????  ???????  ???????   **G Linux filesystem # <- this will be your btrfs

/dev/sda3一旦您消耗了(分别)上的所有空间/dev/sda4,您只需在遮阳板中扩展磁盘,并使用 、 或您拥有的东西重新编辑分区fdisk大小partedcgdisk然后btrfs filesystem resize/.

相关内容