Total Pageviews

Saturday, 16 March 2013

为VMware下的Linux增加硬盘空间


  现在使用VMWare的朋友应该很多了,特别是用VMWare安装Linux操作系统的人。匆匆忙忙安装之后,某天突然发现虚拟机硬盘不够用了,怎么办?
  不必慌张,因为你的慌张,正说明了你可能不太熟悉Linux都自带的LVM(Logical Volume Manager,逻辑卷管理),而且更大的可能是,你的Linux已经在使用LVM了。输入命令:
df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       28G  6.2G   20G  25% /
/dev/sda1              99M   26M   68M  28% /boot
tmpfs                 506M     0  506M   0% /dev/shm
  如果看到了Vol字样,说明你最好要继续阅读本文,按下面的操作,你可以让根分区的总空间从28G变成58G,从头到尾都不必使用mount命令,更不用修改/etc/fstab,你的硬盘看起来是自己在长大一样。
一、扩展VMWare硬盘空间
  关闭Vmware 的 Linux系统,这样,才能在VMWare菜单中设置:
  VM -> Settings... -> Hardware -> Hard Disk -> Utilities -> Expand
  输入你想要扩展到多少G。本文假设你新增加了 30G
二、对新增加的硬盘进行分区、格式化
  这里进行一个极简化的介绍,非常简化,但很全面,上面已经知道增加了空间的硬盘是 /dev/sda。
  分区:
fdisk /dev/sda    操作 /dev/sda 的分区表
p       查看已分区数量(我看到有两个 /dev/sda1 /dev/sda2)
n       新增加一个分区
p       分区类型我们选择为主分区
3       分区号选3(因为1,2已经用过了,见上)
回车      默认(起始扇区)
回车      默认(结束扇区)
t       修改分区类型
3       选分区3
8e      修改为LVM(8e就是LVM)
w      写分区表
q      完成,退出fdisk命令
  可能,系统提示你重启,但你可以不重启,输入命令:
partprobe
  格式化:
mkfs.ext3 /dev/sda3
三、添加新LVM到已有的LVM组,实现扩容
lvm                  进入lvm管理
lvm>pvcreate /dev/sda3         这是初始化刚才的分区,必须的
lvm>vgextend VolGroup00 /dev/sda3   将初始化过的分区加入到虚拟卷组VolGroup00
lvm>lvextend -L +29.3G  /dev/VolGroup00/LogVol00  扩展已有卷的容量(29.3G这个数字在后面解释)
lvm>pvdisplay              查看卷容量,这时你会看到一个很大的卷了
lvm>quit                 可以收工了
上 面那个 29.3G 怎么来的呢?因为你在VMWare新增加了30G,但这些空间不能全被LVM用了,你可以在上面的lvextend操作中一个一个的试探,比如 29.9G, 29.8G ... 直到不报错为止,这样你就可以充分使用新增加的硬盘空间了,当然这是因为我不懂才用的笨办法,高手笑笑就过了吧。
以上只是卷扩容了,下面是文件系统的真正扩容,输入以下命令:
resize2fs /dev/VolGroup00/LogVol00
这样,扩容就完成了,再总结一下过程:
VMWare扩展硬盘空间->Linux下分区、格式化->LVM卷管理->使文件系统生效。