近日在 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 "
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 作業系統中根本看不到,連看都看不到,自然無法動手。
只好用第二種方法,反正網上介紹 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
……
查看卷組的資訊。然後:
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
--- 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
一開始是 +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 比較新鮮,都貼上了。總的來說,用到的命令就是:
為了使用 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
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/jcwkyl/archive/2009/07/25/4380290.aspx