[转载]实战Linux下VMware虚拟机根目录空间扩充
|
标签: 转载 |
今天上午接到通知说服务器挂了,经过检查发现原因是Linux的虚拟机根分区已经使用100%,以至于服务不能正常进行。
经过小小的研究,顺利解决问题,把服务器的空间由4G扩成12G。现将执行全过程总结如下,以供分享。
首先,介绍下大体的解决思路,要想扩充,硬件上要有准备,说白了也就是要有一块新的空间来供我们使用。对于实体机我们需要准备一块新的硬盘,而对于VMWare虚拟机,我们只需要使用vmware自带的软件扩充下磁盘大小。
扩充磁盘,只意味着硬件条件得到满足。接下来就需要对新的磁盘空格进行合理的操作,来扩充我们需要的分区。
值得注意的是,这里我们基于LVM来操作的。如果您的环境不是LVM的,可以考虑改成LVM的,否则后文无需再读。具体执行过程将细细道来。
第一步、使用VMware工具扩容分配的硬盘空间
1、vmware 提供一个命令行工具,在Windows下为vmware-vdiskmanager.exe 位于 vmware 的安装目录下,比如 C:Program FilesVMwareVMware Workstationvmware-vdiskmanager.exe.
在Linux下有直接的vmware-vdiskmanager指令。
进行的操作:在 windows 下运行 CMD , 转到 vmware 的安装目录,可执行vmware-vdiskmanager.exe;在Linux下,直接敲入vmware-vdiskmanager ,可执行该指令扩充使用的指令: vmware-vdiskmanager -x 16Gb myNewlinux.vmdk
说明:要扩容的系统这时不能在运行 ,参数 "-x" 表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小 ,而非增加量 (本例为扩展到 16GB ,这是一个磁盘总量,包含了原先的磁盘容量 ) 。最后是指定要操作的虚拟机磁盘的具体文件,要是路径名中有空格,必须以双引号括起来。按回车键开始执行,执行完毕,退出命令提示符窗口,重启 VMware ,会发现虚拟机硬盘空间已变成 16GB 了。
2、我们重启虚拟机后,发现虚拟机的硬盘是变成 16GB 了,但进入 linux 系统后,用 "df -h"查看发现硬盘空间还是原先那么大。虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统,所以 linux 操作系统无法识别。其实就相当于你的硬盘虽然大了,但是你并没有对其进行分区是一个道理。
第二步、使用Linux下的fdisk工具进行分区
首先,需要以root身份登录系统。
fdisk 命令: fdisk -l : 打印当前的磁盘分区表,这时我们可以看到磁盘的总量的确增加到16GB 了,但是分区只有以前的那几个原有的分区。
键入命令: fdisk /dev/sda “sda 就是经过扩容的硬盘,为 SCSI 硬盘, IDE 类型硬盘对应为 hda ,是对该硬盘进行操作 ”
键入: m “ 列出 fdisk 的帮助 ”
我们在这里是要添加一个新分区,即将扩容出来的那部分做成一个新分区,这样才能被操作系统挂载识别。
键入: n ” 命令 n 用于添加新分区 "
此时, fdisk 会让你选择添加为逻辑分区呢(编号从 5 开始)还是主分区(编号 1 到 4 )。
选择主分区吧,则键入 p ;选择逻辑分区键入 l 。
我们选择主分区于是:
键入: p " 选择创建主分区 "
此时, fdisk 会让你选择主分区的编号,如果已经有了主分区 sda1 , sda2 ,那么编号就选3 ,即要创建的该分区为 sda3.
键入: 3
此时, fdisk 又会让你选择该分区的开始值这个就是分区的 Start 值( start cylinder );这里最好直接按回车,如果您输入了一个非默认的数字,可能会造成空间浪费;
对于分区的 End 值(end cylinder),同样直接按回车。这时候会显示出你新建分区的柱面范围和空间大小。
此时键入: w 表示" 保存所有并退出,分区划分完毕 "
我们的新建分区/dev/sda3,却不是LVM的。所以,接下来使用fdisk将其改成LVM的。
[root@CNGI-SIP6-BUPT ~]# fdisk /dev/sda
Command (m for help): m
Command (m for help): n //创建分区
Command action
e extended
p primary partition (1-4)
p //创建主分区
Partition number (1-4): 3 //创建id号为3的分区
First cylinder (2611-5221, default 2611): 2611 //指定开始位置
Last cylinder or +size or +sizeM or +sizeK (2611-5221, default 5221): 5221 //结束位置
Command (m for help): t //改变分区系统id
Partition number (1-4): 3 //指定分区号
Hex code (type L to list codes): 8e //指定要改成的id号,8e代表LVM。
Command (m for help): w
我们现在还不能用这个分区 , 因为我们没格式化。这时要重启系统就能够在 dev 下面看到 sda3 ,如果不重启不能进行下面操作。
重启后,在此查看fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
/dev/sda3 1045 2088 8385930 8e Linux LVM
可以看到/dev/sda3已支持LVM。
第三步、格式化该新添加的分区
键入:
mkfs -t ext3 /dev/sda3
或者
mkfs.ext3 /dev/sda3
运行mkfs.ext3 /dev/sdb3报错“Could not stat /dev/sdb3”,但是这个分区肯定是存在的,刚刚 fdisk 加上去的,查了一下资料:
运行
partprobe
再执行mkfs.ext3 /dev/sdb4 ,就可以了
来格式化指定的分区,依次类推,现在的系统大部分都是 ext3 格式,如果你需要其它的,可以查看mkfs 的帮助。
到此为止,我们就新建了一个分区/dev/sda3,此时我们已经可以通过挂载,来使用这个新的空间。但是对于我,这并不能满足我的需求,因为服务器的服务程序是在根目录上的,目前根目录空间已经使用完毕,所以能把新建的分区使用在更目录上,分担根目录的空间,才能解决问题。
下面用到的理论是基于LVM的,如果不知道的话,建议稍微查些资料有助于理解。当然,一步步的跟我做,应该也没有问题。
第四步、扩充根分区
接着,使用vgextend 命令加到lvm组里面去,做如下操作:
[root@CNGI-SIP6-BUPT ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 3.97G
LogVol01 VolGroup00 -wi-ao 3.91G
[root@CNGI-SIP6-BUPT ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
[root@CNGI-SIP6-BUPT ~]# vgextend VolGroup00 /dev/sda3 (其中是当前需要扩充的lvm组名,可以通过df -h查看,例如我的是: /dev/mapper/VolGroup00-LogVol00)
Volume group "VolGroup00" successfully extended
You have new mail in /var/spool/mail/root
[root@CNGI-SIP6-BUPT ~]# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
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 Size 15.84 GB
PE Size 32.00 MB
Total PE 507
Alloc PE / Size 252 / 7.88 GB
Free PE / Size 255 / 7.97 GB
VG UUID 3vSeag-Q74D-Gn1b-OHEq-zyH1-YgSO-ThhBCp
[root@CNGI-SIP6-BUPT ~]#
主要查看Free PE / Size 255 / 7.97 GB,说明我们最多可以有7.97G的扩充空间。
最后,给根分区增加空间
[root@CNGI-SIP6-BUPT ~]# lvextend -L +7.96G /dev/VolGroup00/LogVol00 /dev/sda3
Rounding up size to full physical extent 7.97 GB
Extending logical volume LogVol00 to 11.94 GB
Logical volume LogVol00 successfully resized
[root@CNGI-SIP6-BUPT ~]#
[root@CNGI-SIP6-BUPT ~]# vim /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
~
逻辑卷现在使用的就是ext3的文件系统最后扩展一下文件系统,此处不需要卸载,就ok了
要先做fsck,检查文件系统:e2fsck -f /dev/VolGroup00/LogVol00
告诉系统,分割区大小有调整了,以下以实际情况为主
[root@CNGI-SIP6-BUPT ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 3129344 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 3129344 blocks long.
到此所有操作完毕,使用df -h来查看扩充后的空间大小。是不是如愿以偿的增加了,成就感呼呼的~~
[转载]实战Linux下VMware虚拟机根目录空间扩充的更多相关文章
- Linux下VMware虚拟机网卡不能运行在混杂模式解决办法
转自: http://blog.csdn.net/henulwj/article/details/50347489 问题描述 在Linux如果以普通用户运行VMware Workstations,创建 ...
- Linux下VMWare虚拟机的使用技巧
使用技巧: 1.虚拟机安装文件:vm-workstation-full-8.0.3-703057.x86_64.bundle,./vm-workstation-full-8.0.3-703057.x8 ...
- linux下VMware安装出现的问题解决
linux下VMware安装出现的问题解决 linux下VMware安装出现的问题解决 报错信息 问题1liboverlay-scrollbar.so和libunity-gtk-module.so加载 ...
- 【转载】Linux下安装LoadRunner LoadGenerator
原文地址:[转载]Linux下安装LoadRunner LoadGenerator作者:邱建忠tester LR的负载机安装在linux的理由: 1.windows xp,双核+4G内存,基本上每个v ...
- 【Linux】VMware虚拟机中如何配置静态IP
此处详解如何在VMware虚拟机中配置静态IP. 上图是一个草图,大致说明下VMware网络情况.网段指某个IP范围,例如一栋小区楼和另一栋小区楼就不是一个网段 如果你在A小区,你女朋友在B小区,你想 ...
- 如何减小VMware虚拟机硬盘空间
VMware是微软出品的目前最好的虚拟机件,利用虚拟机可轻松实现多系统同时运行.特别需要多个系统来完成不同功能的者更是需要,VMware是最好的选择,在这里介绍一些VMware虚拟机使用的小技巧,本文 ...
- (转载)linux下各个文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
- Windows环境下VMware虚拟机的自启动与自动关机--命令行操作
.设置开机免密登录系统 1. 按下Windows + R 组合键,输入“netplwiz”,点击回车. 2. 去除需要密码登录的勾. 3. 如果需要密码,输入密码,点击确认. 二.编辑vmware ...
- 2016-11-10:win7下VMware虚拟机中CentOS6.5网络配置
在win7环境下,使用桥接和NAT模式配置VMware虚拟机网络,实现宿主机与虚拟机以及虚拟机通过宿主机网卡访问互联网. 1 配置VMware虚拟网络编辑器 VMnet0 桥接模式 VMnet1仅主机 ...
随机推荐
- C++调用GDAL库读取并输出tif文件,并计算斑块面积输出景观指数:CSD
部分源码选自GDAL库的官方网址:www.gdal.org,其余的代码为笔者自己编写. // readfile.cpp : 定义控制台应用程序的入口点. // /* part of the codes ...
- Debian--changelog
以前就研究过debian安装包的问题,当时也没有做相关方面的记录,当时也没有完全研究明白,现在重新研究下,现在写下我的一些笔记,等我研究明白了,我会整理出来,出个系列博客,有兴趣的同学,也可以去看E文 ...
- MongoDB的分组统计 group
mongodb中的分组聚合用$group,而且处理的最大数据量为100M如果超出需要写入到磁盘,使用格式如下: { $group: { _id: <expression>, <fie ...
- 使用tortoise git管理gitolite版本库
gitolite-admin是用于管理git版本库的版本库,将其从服务器上clone下来. 使用tortoise git clone的时候需要指定私钥,私钥的格式是ppk的,需要使用putty的PUT ...
- php win主机下实现ISAPI_Rewrite伪静态
有的win主机iss不支持 .htaccess 文件, 我在这里指的不是本地 在本地的话用apmserv服务器可以用.htaccess 文件,用apmserv服务器环境配置伪静态可以看 php 伪静态 ...
- hdu 5755 2016 Multi-University Training Contest 3 Gambler Bo 高斯消元模3同余方程
http://acm.hdu.edu.cn/showproblem.php?pid=5755 题意:一个N*M的矩阵,改变一个格子,本身+2,四周+1.同时mod 3;问操作多少次,矩阵变为全0.输出 ...
- JDBC 基本操作: CRUD
Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的executeUpdate方法,用于向 ...
- MyEclipse管理部署Maven项目 供调试
今天对Maven的一个项目弄到头大,用MyEclipse10.x做了半天都没有部署成功. 后来发现用maven自己的maven4myelipse插件配置一下Goals:tomcat:run就好了,其他 ...
- 如何保持iOS上键盘出现时输入框不被覆盖
在 iOS5 上请求显示键盘时,系统从屏幕底部将键盘滑入上来,位于应用的内容之上. (墙内:http://mikixiyou.iteye.com/blog/1488302) 如果屏幕中的内容项目比较多 ...
- Large-Scale Deployment of SharePoint Team Services
http://technet.microsoft.com/en-us/library/cc723713.aspx
转载▼