Redhat调整分区

首先,我是Linux的绝对新手,但我一直负责在RHEL 6.5上自动调整分区大小。 服务器作为虚拟机驻留在VMWare中,我们正在尝试编排一个活动,从而扩展现有的VMDK文件,并自动调整该VMDK上的分区。

作为一个testing用例,VMDK在系统上被视为/ dev / sdb。 这个大小就是5GB。 现在我有2个分区,/ dev / sdb1,/ dev / sdb2,sdb1占用1GB,sdb2占用5GB

如果有人现在将VMDK的大小从5GB增加到10GB,并指定额外的空间应该到/ dev / sdb1,我该怎么做? 到目前为止,我已经设法创build了一个进程,可以调整最后一个分区的大小而不会出现问题(即/ dev / sdb2),但以前的分区不能由于开始和结束块号码。

我的过程如下:

1)增加VMDK的大小2)运行echo“1”> / sys / class / scsi_device / 0:0:0:0 / device / rescan来获取resize的驱动器3)使用fdisk删除分区并重新创build

如果正在修改的分区是最后一个分区,这可以正常工作,但是如果分区是第一个或第二个分区,那么分区只是按照原来的方式重新创build。 有什么工具可以做到这一点智能?

这是我的环境中的fdisk输出:

Disk /dev/sdb: 10.7 GB, 10737418240 bytes 67 heads, 62 sectors/track, 5048 cylinders Units = cylinders of 4154 * 512 = 2126848 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xf3405e93 Device Boot Start End Blocks Id System /dev/sdb1 1 510 1059239 83 Linux /dev/sdb2 511 2524 4183078 83 Linux 

正如您所看到的,sdb1占用1GB,SDB2占用4GB,但磁盘上大约有5GB“空闲”。 现在,我该如何改变这个,让sdb1占用剩余空间? 如果我删除sdb1并重新创build它,它将使相同的分区。 我可以很容易地创build一个新的分区来占用这个空间,甚至可以改变sdb2占用剩余空间(只需要删除sdb2并使用fdisk重新创build它),但问题是如何修改sdb1来占用这个空间?

希望我的问题是清楚的,并提前感谢

您可以将第二个分区sdb2移动到“磁盘”的末尾,然后重新创build第一个分区,届时您将能够重新创build第一个“完整”大小的分区。

然而,根据你的文件系统,你不需要删除它,而是“只”卸载它,然后做resize2fs (至less对于ext2 / 3/4),做完上述步骤后。

这一举动本身可以通过parted来完成。

有关如何执行此操作,请参阅以下链接:

分享的用户手册gnu.org和linuxquestions.org

像这样的东西可能会工作(你需要改变你的号码:

 parted move 2 -125 -0 parted resize 1 0.063 -125 

然而,在版本2.4之后。 parted不包含move ,所以你可能需要另一个工具(或者它被重命名为另一个function,我没有find)

来自gnu.org的Qoute手册

请注意,在版本2.4之后,删除了以下命令:check,cp,mkfs,mkpartfs,move,resize。

我可以感觉到你的痛苦,我在Linux上也是比较新的,所以我明白你的痛苦。 LVM是要走的路,他们可以轻松扩展。 如果你注册到红帽,那么你可以安装GUI(yum -y install system-config-lvm)。 一旦安装完成,在CMD行上运行“system-config-lvm”,这将启动GUI,从那里你可以查看各种磁盘/分区,并进行更改或在命令行上,你将不得不经过三步处理。 所以我只是使用快速而简单的GUI。 希望这可以帮助