我首先要说的是,虽然我已经使用 Ubuntu 多年了,但我很少花时间去探索 Linux。我已经满足于依赖 GUI 工具来满足我的大部分需求,只有在找不到合适的 GUI 工具时才求助于终端。
几周前,我对 Zentyal (ebox) 发行版进行了默认安装,并为学校设置了电子邮件服务器。不幸的是,默认文件系统配置只分配了三个分区:
在运行仅几周后,根分区已填满并使服务器瘫痪。所以我需要找到一种方法来调整或释放根分区中的空间。
我已经能够计算出该空间猪是/var,文件系统是利用安装LVM和这两个/和/home位于同一个卷组中使用。我曾尝试从 live cd 启动,这样我就可以缩小/home和放大/. 我更习惯使用 GUI 工具,所以我使用了 system-config-lvm。奇怪的是,从实时 cd 中,它显示/home分区(或卷或任何名称)根本没有文件系统。当我正常登录时,我可以看到它实际上使用的是 ext4。
该服务器作为 vmware 来宾运行,因此我制作了快照并继续尝试调整大小。一切似乎都没有错误地调整大小,但是在重新启动后,我被告知/home无法再安装。唯一需要该/home文件夹的帐户是服务器管理员(我),但显然 Zentyal 必须使用它来做某事,因为我无法访问 Zentyal 的 Web 界面并且服务器没有收到任何电子邮件。
所以我回到我拍摄的快照,然后我坐在这里。没有比我以前更接近解决这个问题了。
任何帮助,将不胜感激。
由于您返回到之前的快照,您可以从支持 LVM 分区的 LIVE CD(如 SYSTEM RESCUE CD)启动,也许阅读一些内容只是为了开始使用LVM 分区。无论如何,从 live cd 启动后的正常步骤(这将是几个命令行而不是 gui 基础):
e2fsck -f PARTITIONresize2fs PARTITION SIZE或。请记住,在调整大小后,您必须有足够的空间用于最终大小。对新的主分区大小执行resize2fs -p以确保它具有正确的块大小。
4.2在ROOT分区上使用lvextend然后do or就可以了。并再次对其执行resize2fs -p以确保它具有正确的块大小。resize2fs -f PARTITION SIZEresize2fs PARTITION SIZEresize2fs -f PARTITION SIZE注意 - 在对每个分区执行 lvreduce 或 lvextend 后,您需要e2fsck -fn强制检查分区的一致性(它将只读分区并检查分区是否干净)
lvm 工具的示例:
lvreduce -L -35G "Home Partition"- 家庭分区将少 35GB。
lvextend -L +35G "Root Partition"- 根分区将有 35GB 以上。
希望这有助于弄清楚如何做到这一点,我猜你会用快照。
更新 - 在做了一个好奇的搜索后发现了来自 Red Hat 的另一个用户,类似的问题:https : //serverfault.com/questions/13666/how-can-i-resize-a-lvm-partition-in-red-hat-without -丢失数据
UPDATE2 - 在评论中添加了 psusi 所说的,因为这是正确的方法,我需要在阅读/写作之前喝咖啡。
UPDATE3 - 感谢下面的psusi进行了几处更正。
注意 - 这是用于使用 ext2/3/4 制作的分区,我猜测的块不是 1K/2K,因为我在某处读到它对它们不起作用(因为我有 512 字节,所以没有测试)