我的 40GB 根分区出现问题,想要从第二个 400GB 分区转移空间。我在 LVM 之上安装了 BTRFS。由于某种原因,OpenSUSE 为我决定了这个安装时间,我认为这是有道理的:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 464.5G 0 disk
`-sda1 8:1 0 464.5G 0 part
|-system-swap 254:0 0 2G 0 lvm [SWAP]
|-system-root 254:1 0 40G 0 lvm /
`-system-opt 254:2 0 422.5G 0 lvm /optLVM
sr0 11:0 1 1024M 0 rom
# btrfs filesystem show
Label: none uuid: 681e689d-1ac2-48ac-9fba-f6a6e234e9f5
Total devices 1 FS bytes used 28.40GiB
devid 1 size 40.00GiB used 35.53GiB path /dev/mapper/system-root
Label: none uuid: 90b22bed-5924-425d-ac30-03279f970fa0
Total devices 1 FS bytes used 159.43GiB
devid 1 size 300.00GiB used 299.04GiB path /dev/mapper/system-opt
如您所见,/dev/mapper/system-opt 只有 300GB,因此我在那里有 100GB 可用空间,因为我调整了 btrfs 大小以释放 100GB。
我的问题是我不知道如何将这 100GB 添加到 / 目录 (/dev/mapper/system-root) 中。我努力了:
# btrfs device add /dev/mapper/system-opt /
/dev/mapper/system-opt appears to contain an existing filesystem (btrfs).
Use the -f option to force overwrite.
看来 OpenSUSE 在 dm-1 和 dm-2 之上格式化了 btrfs,这可能映射到 LVM 卷。
# btrfs device usage /
/dev/dm-1, ID: 1
Device size: 40.00GiB
Data,single: 33.00GiB
Metadata,single: 2.50GiB
System,single: 32.00MiB
Unallocated: 4.47GiB
# btrfs device usage /optLVM
/dev/dm-2, ID: 1
Device size: 422.50GiB
Data,single: 297.01GiB
Metadata,single: 8.00MiB
Metadata,DUP: 2.00GiB
System,single: 4.00MiB
System,DUP: 16.00MiB
Unallocated: 988.00MiB
我可不可以做?
btrfs device add /dev/dm-2 /
要使 /(根 btrfs“分区”)获取 dm-2 分区中未分配的 100GB?
答案1
dm-# 是设备多路径,因此基本上 btrfs 分区被视为 LUN。
调整大小选项可用于扩展分区以及缩小分区。
btrfs filesystem resize +100G /
您可能需要首先在设备级别执行类似的操作,将可用空间移动到保存根分区的逻辑驱动器。
Btrfs 参考位于内核.org似乎表明我列出的命令可能会起作用。
答案2
看起来您的 BTRFS 文件系统存储在左心室容量逻辑卷。在 LVM 中,逻辑卷由来自物理卷(磁盘分区)的卡盘(盘区)组成,这些物理卷被组合在一起作为一个单元(称为卷组)。例如,在您的情况下,OpenSUSE 安装程序似乎执行了以下操作:
- 在 /dev/sda1 上创建 LVM 物理卷(例如
pvcreate /dev/sda1
) - 创建了一个LVM卷组,名为系统(前任。
vgcreate system /dev/sda1
) - 创建LVM逻辑卷交换,根, 和选择。
您可以使用命令 、 和 来确认pvdisplay
这vgdisplay
一点lvdisplay
。
你的系统卷组有 464.5G 的存储空间,可以分为逻辑卷。因此重新分配 100G选择到根是一个问题:
- 缩小 /optLVM 文件系统(您已经完成)。
- 缩小选择逻辑卷与
lvreduce
.小心这个。如果你缩小太多,你会毁掉 /optLVM - 调整大小根逻辑卷
lvresize
给它额外的 100G。 - 调整 / 文件系统的大小以占用额外的空间。