我在 500 GB 硬盘上有一个 500 GB 的 LVM2 容器,其中包含 96 GB 的根分区 (ext4) 和 4 GB 的交换分区。我使用备用 cd 进行了此设置,并将要使用的磁盘空间量设置为 100GB,假设剩余部分将作为常规、未加密的磁盘空间可用。
事实证明,400 GB 的可用磁盘空间实际上被封装在 LVM2 容器中,正如磁盘实用程序向我显示的那样。我该如何缩小 LVM2 容器,以便能够利用这 400 GB?
答案1
答案很简单——你不能。(但你可能想做点别的事来得到你想要的东西——见下文)
LVM2 有 3 个“级别”,即物理卷(我假设您将其称为 LVM2 容器)、卷组和逻辑卷。
通常,您需要定义一个或多个分区作为 LVM2 的物理卷。完成此操作后,该分区将无法用于其他任何用途(同样,一个分区只能用于一个文件系统)。
例如:
# pvcreate /dev/sdb3
然后创建一个新的卷组或将物理卷添加到现有组
# vgcreate MyVolGroup /dev/sdb3
或者
# vgextend MyVolGroup /dev/sdb3
然后创建逻辑卷,它实际上用于文件系统。
# lvcreate -L100G --name MyVolume MyVolGroup
逻辑卷可以调整大小而不会丢失数据,尽管这并非易事。但物理卷的大小与分区大小一样固定。
如果您确实想使用已分配给物理卷(LVM2 容器)的 400Gb 空间,那么答案是创建另一个逻辑卷并使用它。
要查找卷组的名称(如果您还不知道),请使用该vgs
命令。
# lvcreate -L400G --name MySpace VolGroup
# mkfs -text4 /dev/VolGroup/MySpace
# mount /dev/VolGroup/MySpace /mnt
更高级的替代方法是,如果您有足够的备用空间来创建新分区,则强制移动现有的逻辑卷(使用pvmove
),以便您可以释放 500Gb 物理卷(vgreduce
和pvremove
命令),然后创建一个更小的容器并再次将数据移回,但与简单地对所有内容使用逻辑卷相比,这可能没有什么优势。
答案2
你没有指定为什么您想缩小 LVM 分区,因此您可能只想在 LVM 容器内创建新的逻辑卷。如果您确定确实想要减小 LVM 容器的大小,那么您可以使用 来减小物理卷的大小,然后使用 或pvresize
等分区工具来fdisk
减小parted
包含物理卷的磁盘分区的大小。您需要确保在分区时使用扇区单位(在 parted 中,命令unit s
将执行此操作)。您需要删除分区,然后使用相同的起始扇区但较小的大小重新创建它。如果您将大小指定为pvresize
GB,则需要通过乘以 1024 * 1024 * 2 将其转换为扇区,并且应该四舍五入以确保安全,即增加额外的 GB。您需要重新启动以使分区表的更改生效,然后您可能希望pvresize
再次使用不带大小参数的命令将其扩展回新分区可容纳的最大大小。然后,您将拥有未分区的空间,可以按您的意愿处理。