我在 VM Player 中运行 Linux 客户机,我想知道如何扩展磁盘?在 VM Player 中,我提供了更多磁盘空间,但我不知道如何将新磁盘空间安装/扩展/连接到系统。
我的旧磁盘空间为 14GB
[root@localhost ~]# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
14G 4.5G 8.2G 36% /
然后我扩展了它,现在我看到了 sda2,它是新的空间吗?
[root@localhost ~]# fdisk -l
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cd44d
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 2611 20458496 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 14.5 GB, 14537457664 bytes
255 heads, 63 sectors/track, 1767 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 6408 MB, 6408896512 bytes
255 heads, 63 sectors/track, 779 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
我需要先安装新的空间吗?
resize2fs -p /dev/mapper/VolGroup-lv_root 108849018880
resize2fs 1.41.12 (17-May-2010)
The containing partition (or device) is only 3549184 (4k) blocks.
You requested a new size of 1474836480 blocks.
resize2fs -p /dev/mapper/VolGroup-lv_root 128849018880
resize2fs 1.41.12 (17-May-2010)
resize2fs: Invalid new size: 128849018880
[root@localhost ~]# lvextend -L+90GB /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 103.54 GiB
Insufficient free space: 23040 extents needed, but only 0 available
[root@localhost ~]# lvextend -L90GB /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 90.00 GiB
Insufficient free space: 19574 extents needed, but only 0 available
编辑:尝试 pvcreate/vgextend 后,到目前为止没有任何效果。我猜想从 VM Player 添加的新磁盘空间没有显示出来?
pvscan
PV /dev/sda2 VG VolGroup lvm2 [19.51 GiB / 0 free]
Total: 1 [19.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 0 [0 ]
答案1
如前所述,您必须先调整包含逻辑卷的分区大小,然后才能继续调整 LVM 大小。请按照以下步骤操作:
- 和
fdisk -l -u /dev/sda
记下当前分区设置(尤其是起始扇区) - 删除分区 sda2 并重新创建。使用相同的起始扇区,否则您将丢失数据!显然,最终扇区应该比之前更高(fdisk 默认会建议使用最后一个可用扇区,因此您只需在此处按 ENTER 即可)
- 现在运行
partprobe /dev/sda
或重新启动系统。这将通知内核分区大小已更改 - 跑步
pvresize /dev/sda2
.这将调整物理卷结构的大小 - 执行
pvs
和vgs
检查 LVM 是否正确识别了新大小 - 现在您可以使用以下命令调整 LVM 卷的大小
lvresize -l +100%FREE /dev/mapper/VolGroup-lv_root
- 最后,使用以下命令调整文件系统本身的大小
resize2fs /dev/mapper/VolGroup-lv_root
这些指令适用于增加磁盘空间(扩展卷)
缩小卷在概念上类似,但您必须按照相反的步骤操作,从文件系统缩小开始。附带说明一下,如果您使用 XFS 或其他无法缩小的文件系统,则无法在没有备份/恢复过程的情况下调整 LVM 卷的大小。
答案2
由于底层设备已经扩展,您应该能够在 的输出中看到可用空间vgdisplay
。查找显示 的行Free PE / Size
。如果是这种情况,您可以简单地通过 扩展逻辑卷lvextend
,然后通过 扩大文件系统resize2fs
。
答案3
不久前我做过一个指南介绍如何做到这一点,希望对您有所帮助。
答案4
这里的问题是您将 LVM(物理卷)放入分区。
如果它直接在设备上,你可以简单地做
* pvextend
* lvextend
* resize2fs
在你的情况下,你将必须使用 Live CD 启动或删除分区/dev/sda2
并重新创建更大的分区,然后按上述步骤进行
这更安全的方法然而
为你的虚拟机创建一个新卷,然后/dev/sdb
使用 pvcreate 将其初始化为 PV,将新 PV 添加到现有卷组
vgextend my_volume_group /dev/sdb
现在你可以扩展逻辑卷
lvextend -v -l +100%FREE /dev/mapper/VolGroup-lv_root
最后是文件系统
resize2fs /dev/mapper/VolGroup-lv_root
一旦您了解所有层(物理磁盘、分区、物理卷、卷组、逻辑卷),这将是小菜一碟。