近日在
vmware
中虚拟的
cent os
上安装
xen
时,安装过程进行了一个多小时后,
make
说磁盘空间不够,异常退出了,令人深感郁闷。这个时候,只想到了两个解决方法:一,看看
vmware
能不能改变硬盘大小;二,用
vmware
给虚拟机操作系统添加一块硬盘。这两种方法都能增大硬盘容量,等增大硬盘容量后,再考虑如何改变分区大小。
vmware 的图形界面上不能改变 guest 操作系统的硬盘大小。在命令行中进到 vmware 的安装目录,发现一个程序 vmware-vdiskmanager.exe ,它的 help 说明它可以做么这一点。在网上搜索了一下,真有使用这个工具更改磁盘容量的。于是:
D:/Program Files/VMware/VMware Workstation>vmware-vdiskmanager.exe -x 10GB "e:/C
ent OS/Cent OS.vmdk "
只好用第二种方法,反正网上介绍 LVM 的文档也都是在新增一块硬盘的情况下扩展分区容量的。先用 vmware-vdiskmanager.exe 把增加的硬盘容量 shrink 回去。
D:/Program Files/VMware/VMware Workstation>vmware-vdiskmanager.exe -k "e:/Cent O
S/Cent OS.vmdk "
现在,关闭 guest 操作系统。在 vmware 中, edit 虚拟机的设置,点击 add ,新增一块 SCSI 硬盘。重启。
[root@jcwkyl ~]# cd /dev
[root@jcwkyl dev]# ls sd *
[root@jcwkyl dev]# lvm
lvm > pvcreate /dev/sdb
lvm > vgdisplay
lvm > vgextend VolGroup00 /dev/sdb
lvm > vgdisplay
这个时候已经可以看到 VolGroup00 的容量变成了 10.84G 。
lvm > pvdisplay
一开始是 +5G 的,但是说空间不够,所以改成了 4.5G 。
lvm > quit
[root@jcwkyl dev]#e2fsck -f /dev/VolGroup00/LogVol00
[root@jcwkyl dev]#resize2fs /dev/VolGroup00/LogVol00
现在:
[root@jcwkyl dev]# df -h
为了使用 LVM 先初始化一块 physical volumn :
pvcreate /dev/sdb
然后把它加到卷组 (volumn group) 里去:
vgextend vgextend VolGroup00 /dev/sdb
其中卷组名是通过 vgdisplay 看到的。这些命令非常有用: fdisk , parted, mkfs.ext3, df , mount ,另外还有 /etc/fstab 文件。
上面加入卷组成功后,扩展逻辑卷的容量,这个逻辑卷就是挂载到 / 上的分区,可以通过 mount 来看到:
lvextend -L +4.5G /dev/VolGroup00/LogVol00
最后是两条命令:
e2fsck -f /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
vmware 的图形界面上不能改变 guest 操作系统的硬盘大小。在命令行中进到 vmware 的安装目录,发现一个程序 vmware-vdiskmanager.exe ,它的 help 说明它可以做么这一点。在网上搜索了一下,真有使用这个工具更改磁盘容量的。于是:
D:/Program Files/VMware/VMware Workstation>vmware-vdiskmanager.exe -x 10GB "e:/C
ent OS/Cent OS.vmdk "
Grow: 100% done.
Disk expansion completed successfully.
WARNING: If the virtual disk is partitioned, you must use a third-party
utility in the virtual machine to expand the size of the
partitions . For more information, see:
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647
然后开始在网上找如何更改
linux
下分区的大小。边看网上的文档边实践,在这个过程持续了好几个小时,找到了不少关于
LVM
的文档,但同时也郁闷地发现,增加的硬盘容量在
guest
操作系统中根本看不到,连看都看不到,自然无法动手。
Disk expansion completed successfully.
WARNING: If the virtual disk is partitioned, you must use a third-party
utility in the virtual machine to expand the size of the
partitions . For more information, see:
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647
只好用第二种方法,反正网上介绍 LVM 的文档也都是在新增一块硬盘的情况下扩展分区容量的。先用 vmware-vdiskmanager.exe 把增加的硬盘容量 shrink 回去。
D:/Program Files/VMware/VMware Workstation>vmware-vdiskmanager.exe -k "e:/Cent O
S/Cent OS.vmdk "
现在,关闭 guest 操作系统。在 vmware 中, edit 虚拟机的设置,点击 add ,新增一块 SCSI 硬盘。重启。
[root@jcwkyl ~]# cd /dev
[root@jcwkyl dev]# ls sd *
sda
sda1
sda2 sdb
这个
sdb
就是新增的那块
SCSI
硬盘了。然后:
[root@jcwkyl dev]# lvm
lvm > pvcreate /dev/sdb
lvm > vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
……
查看卷组的信息。然后:
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
……
lvm > vgextend VolGroup00 /dev/sdb
lvm > vgdisplay
这个时候已经可以看到 VolGroup00 的容量变成了 10.84G 。
lvm > pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 5.90 GB / not usable 24.06 MB
Allocatable yes (but full)
PE Size (KByte ) 32768
Total PE 188
Free PE 0
Allocated PE 188
PV UUID pCjs4H-Xygt-K332-rwkQ-sXwN-2LhC-MJkcw3
--- Physical volume ---
PV Name /dev/sdb
VG Name VolGroup00
PV Size 5.00 GB / not usable 32.00 MB
Allocatable yes
PE Size (KByte ) 32768
Total PE 159
Free PE 15
Allocated PE 144
PV UUID 5L1QpE-KO2j-2MYz-qN09-zXxR-1Pwj-SC5dlR
lvm
> lvdisplay
PV Name /dev/sda2
VG Name VolGroup00
PV Size 5.90 GB / not usable 24.06 MB
Allocatable yes (but full)
PE Size (KByte ) 32768
Total PE 188
Free PE 0
Allocated PE 188
PV UUID pCjs4H-Xygt-K332-rwkQ-sXwN-2LhC-MJkcw3
--- Physical volume ---
PV Name /dev/sdb
VG Name VolGroup00
PV Size 5.00 GB / not usable 32.00 MB
Allocatable yes
PE Size (KByte ) 32768
Total PE 159
Free PE 15
Allocated PE 144
PV UUID 5L1QpE-KO2j-2MYz-qN09-zXxR-1Pwj-SC5dlR
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 2rLJVW-zMFE-dAQ9-eRiE-oRZE-gvhW-AkzpsJ
LV Write Access read/write
LV Status available
# open 1
LV Size 4.88 GB
Current LE 300
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID Nx0PK2-Vb7Y-7YXe-Skd6-FCRD-xPI7-YJLjfZ
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
lvm
> lvextend -L +4.5G /dev/VolGroup00/LogVol00
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 2rLJVW-zMFE-dAQ9-eRiE-oRZE-gvhW-AkzpsJ
LV Write Access read/write
LV Status available
# open 1
LV Size 4.88 GB
Current LE 300
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID Nx0PK2-Vb7Y-7YXe-Skd6-FCRD-xPI7-YJLjfZ
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
一开始是 +5G 的,但是说空间不够,所以改成了 4.5G 。
lvm > quit
[root@jcwkyl dev]#e2fsck -f /dev/VolGroup00/LogVol00
[root@jcwkyl dev]#resize2fs /dev/VolGroup00/LogVol00
现在:
[root@jcwkyl dev]# df -h
Filesystem
Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
9.1G 2.8G 5.9G 33% /
/dev/sda1 99M 12M 82M 13 % /boot
tmpfs 189M 0 189M 0% /dev/shm
上面输出冗长,因为第一次使用
LVM
比较新鲜,都贴上了。总的来说,用到的命令就是:
/dev/mapper/VolGroup00-LogVol00
9.1G 2.8G 5.9G 33% /
/dev/sda1 99M 12M 82M 13 % /boot
tmpfs 189M 0 189M 0% /dev/shm
为了使用 LVM 先初始化一块 physical volumn :
pvcreate /dev/sdb
然后把它加到卷组 (volumn group) 里去:
vgextend vgextend VolGroup00 /dev/sdb
其中卷组名是通过 vgdisplay 看到的。这些命令非常有用: fdisk , parted, mkfs.ext3, df , mount ,另外还有 /etc/fstab 文件。
上面加入卷组成功后,扩展逻辑卷的容量,这个逻辑卷就是挂载到 / 上的分区,可以通过 mount 来看到:
lvextend -L +4.5G /dev/VolGroup00/LogVol00
最后是两条命令:
e2fsck -f /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00