当虚拟机运行时,VMware允许在线扩展虚拟磁盘的大小。 Linux系统的下一步预期步骤是:
fdisk删除并创build一个更大的分区 pvresize扩大光伏尺寸 lvresize操作 resize2fs 但是我坚持了第一步: fdisk和sfdisk仍然显示磁盘的旧大小。
我的磁盘是由虚拟LSI逻辑控制器连接的SCSI虚拟磁盘。
如何在不重启的情况下刷新Linux内核中可用的虚拟磁盘大小和分区表信息?
据我所知,所有的步骤都可以运行的Windows,而无需重新启动,甚至没有任何用户操作,由于VMWare工具。 在Linux上,我希望在网上也做所有的步骤,我已经知道步骤2,3和4在线工作。 但第一个 – 在分区表(仍然)中声明的更改分区大小似乎需要重新启动。
更新:我的系统是内核2.6.26的Debian Lenny,我扩展的磁盘是包含“/”的“root”LV的大PV的主磁盘。
你可以做到这一点,而无需重新启动 pvresize不会调整物理卷的大小,直到使用添加的空间更新分区。 您必须对磁盘进行分区并重新创build磁盘,然后重新扫描驱动器,以便首先看到多余的空间。
更多信息: http : //theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/
其他回答提供不解决您的问题,我已经确定了正确的命令重新扫描已连接的磁盘。
我们必须重新扫描已连接的磁盘,首先确定要重新扫描的磁盘。
ls /sys/class/scsi_disk/
在我的例子中,我看到一个名为0:0:0:0的符号链接,所以我们重新扫描这个scsi磁盘。
echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
我也只是扩展了我的VMware磁盘,并且不得不扫描其他答案来find正确的命令。 希望这可以节省未来的search者的徒劳企图。
只要在已resize的磁盘上安装根文件系统,分区表和磁盘大小就不会被Linux 2.6.26的SCSI重新扫描刷新。
我真的希望新的内核版本很快会好起来。
所以我不得不:
fdisk的新磁盘大小 fdisk的旧的主PV部分 /未被安装的情况下才能从parted软件包运行partprobe pvresize来获得新的可用空间, lvextend和resize2fs为文件系统分配更多的空间 我build议只是放弃那个愚蠢的旧分区表,并直接在设备上运行pvcreate ,因为Grub2能够直接从LVM分区上的文件系统加载内核映像。 但是这样的设置对于分发安装程序来说并不明显。
更新:我刚刚检查了Debian GNU / Linux Jessie 8.2运行内核3.16并parted 3.2, partprobe现在成功后,分区表版与cfdisk无需重新启动。 pvresize后立即工作。
如果要扩展存储为逻辑PC分区的PV(例如扩展主分区/dev/sda2 ,请不要使用fdisk而应该使用parted :
parted /dev/sda2 -1 parted /dev/sda5 -1 pvresize /dev/sda5
在创build更大的分区之前,您需要重新扫描磁盘。
在Centos中,你可以通过
ls /sys/class/scsi_host
然后为每个主机
echo "- - -" > /sys/class/scsi_host/host#/scan
(用数字代替#)
上面还有一个步骤是扩大分机或任何您使用的文件系统,一旦你调整分区的大小。
尽pipe在某些时候您仍然需要卸载该分区。 我们倾向于添加第二个vmware磁盘,并使用lvm扩展到新磁盘(如果是replace,则减less旧磁盘),因为这样可以实现整个过程。
您没有提供足够的详细信息来告诉您需要的确切命令,但实际上您需要使用lvextend命令来扩展逻辑卷,然后使用e2fsck命令,然后使用resize2fs命令来实际扩展文件系统。 这些命令中的每一个都需要额外的参数,特别是设备和文件系统信息,我们不能提供,但是你需要知道这些参数,只需使用–help选项来告诉你每个命令如何使用它们。您可能会最终使用pvdisplay , lvdisplay和mount命令来帮助填写这些参数。
作为一个更新的答案,在Ubuntu 16.04.1上,我能够做到以下操作,将容量从1024GB调整到1.4TB:
echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan pvresize /dev/sdb lvextend -l +100%FREE /dev/nvr01-opt/opt resize2fs /dev/nvr01-opt/opt
不需要fdisk ,空间立即可用。
没有人发布一套完整的命令,所以在这里我们去:
# the following steps are for adding a new HDD apt install scsitools rescan-scsi-bus pvcreate /dev/sdX vgextend /dev/vgname /dev/sdx lvextend -l +100%FREE /dev/vgname/root resize2fs /dev/vgname/root #if resizing existing HDD fdisk /dev/sdX create new partition pvcreate /dev/sdXn vgextend /dev/vgname /dev/sdXn lvextend -l +100%FREE /dev/vgname/root resize2fs /dev/vgname/root