如何在 CentOS 上缩小 LVM 分区?

如何在 CentOS 上缩小 LVM 分区?

我正在尝试减少 CentOS 5.8 VM 上分区的大小,因为我的前任为它分配了太多空间。但是,我尝试了各种不同的方法,但都遇到了问题。当前分区的详细信息如下:

型号:VMware 虚拟磁盘 (scsi)
磁盘/dev/sda:215GB
扇区大小(逻辑/物理):512B/512B
分区表:msdos

编号 起始 结束 大小 类型 文件系统 标志
1 32.3kB 107MB 107MB 主 ext3 启动
2 107MB 215GB 215GB 主 lvm

当我尝试使用 Parted 调整分区大小(运行 Knoppix Live-CD 并且系统分区未安装)时出现此错误:

(parted)调整大小 2 107 30827

警告:您正在尝试使用 parted 操作(调整)文件系统。parted 的文件系统操作代码不如 e2fsprogs 等专用文件系统特定软件包中的代码那么强大。我们建议您尽可能只使用 parted 来操作分区表。在即将发布的版本中,将不再支持在大多数类型的文件系统上执行大多数操作。
错误:无法检测文件系统。

我尝试找到一个关于如何使用 e2fsprogs 执行此操作的良好指南,但我遇到的所有内容都没有解释如何按照我需要的方式调整 lvm 分区的大小。

我是 Linux 世界的新手,所以也许这是基础的而且我分析得太多,但如果能提供任何帮助我将不胜感激。

提前致谢!

答案1

扩大文件系统很容易。缩小文件系统比较棘手,而且并非所有文件系统都支持。不过,ext3 和 ext4 确实支持缩小文件系统,但是一定要小心。确保您有良好的备份。然后,再次验证您是否有良好的备份。

您应该首先使用 缩小文件系统本身resize2fs /dev/yourdevice newsizegoeshere

接下来,您需要缩小逻辑卷:lvresize -L X /path/to/your/logical_volume,其中X以某种方式表示新大小。我故意省略了语法,请参阅man lvresize可用选项以了解您首选的确定新大小的方式。您可以从旧大小中减去,也可以只指定新大小。

接下来,如果您认为有必要,您需要使用 来缩小卷组本身vgresize。或者,您也可以在卷组内创建新的逻辑卷,因为上一步使用 lvresize 为您提供了一些喘息空间。

如果您选择了这条vgresize路线,那么您最终需要通过fdisk删除分区并使用与之前完全相同的起始块重新创建它并使尺寸比之前更小来调整分区大小。

编辑:看来,使用 LVM2 卷组缩小并不是一件容易的事情。您可能需要删除卷组并重新创建它……哦天哪。那么,我的脚注怎么样,它会起作用吗?

如果您和/或软件在上述任何步骤中失败,您的数据就会丢失。因此再说一遍:确保你有好的备份


哦,正如您的复制粘贴中提到的 VMware:您是否可以在 VMware 中创建一个新的虚拟磁盘,将您的内容从超大磁盘复制到新磁盘,从轨道上删除超大磁盘,然后结束一天的工作?

相关内容