VirtualBox虚拟机增加CentOS根目录容量 LVM扩容
对于目前的网络开发者来说,比较好的搭档就是Win7+VirtualBox+CentOS的组合,既可以发挥Linux强大的网络服务功能,也可以有效的隔离各项服务拖慢系统,影响系统的运行,对于新手来说可以减少配置错误带来的损失,最主要的是方便移植,不同每次重装系统,都要痛苦的安装配置一大堆东西。
但如果当我们在虚拟机中安装和使用的时候,发现系统存储不够用,怎么办,使用VirtualBox 4 版本以上的可以方便、快速的扩容。
VirtualBox 中虚拟硬盘有几种形式,VMDK、VDI、VHD、HDD等。
- VMDK:是VMware开发并使用的,同时也被SUN的xVM、QEMU、SUSE Studio、.NET DiscUtils支持,所以兼容性会好些。
- VDI:是Virtual Box 自己的处理格式,而且Virtual Box支持Windows和Linux,所以对于使用VirtualBox的用户比较好。
- VHD:是Windows专有的处理格式,HDD是Apple专有的处理格式,所以不会支持跨平台,一般不会考虑。
我们这里以如何给VMDK和VDI扩容为例,至于其它格式自己百度谷歌转换吧。
这里我们用到两个东西:(1)VBoxManage工具命令——在Vitualbox安装目录下,可以指定完整路径;(2)centos.vdi或cenos.vmdk——你系统的磁盘文件文件,一般位于用户的VirtualBox VMs文件夹下。
1 扩容磁盘文件
1.1 VDI
VDI扩容最简单,一条命令:
VBoxManage modifyhd centos.vdi --resize 16000
1.2 VMDK
如果是VMDK就要先转换成VDI,然后再扩容:
VBoxManage clonehd "centos.vmdk" "centos.vdi" --format vdi // vmdk是转换前的文件,vdi是转换之后的文件
VBoxManage modifyhd "centos.vdi" --resize 16000 // 这里的单位是M
一阵0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%过后,通过VBoxManage list hdds就可以看到我们克隆的文件了。
如果想再转回为VMDK,用这个命令就可以了:
VBoxManage clonehd "centos.vdi" "resized.vmdk" --format vmdk
不过,直接使用vdi格式的也可以了。
2 指定新磁盘文件
接下来,打开虚拟机,选择系统 > 右击 > 设置 > 存储 > 控制器SATA > 右边的添加虚拟硬盘 > 选择转换后的文件 就行了。

在虚拟机打开系统,通过df -h查看发现,根目录还是原样,下面我们通过LVM来扩展分区。
3 LVM扩展
LVM(Logic Volume Manager)逻辑卷管理,像RedHat系的默认分区管理方式,是建立在硬盘分区之上,文件系统之下的逻辑层,用来解决在最初分区时未正确的评估和和分配分区容量,而造成系统分区不够用。接下来扩展分区就是几行代码的事了。
sudo fdisk -l
查看当前系统分区情况。可以看到我们已经创建的分区,sda1、sda2的什么,也可以ls /dev/来查看。
如果有第二块硬盘会看到sdb,我这里是只有一块,且已经分了sda1和sda2。
下面创建将扩展的空间,创建新分区。

sudo mkfs.ext4 /dev/sda4 // 将分区格式化为ext4格式
下面开始LVM操作,查看卷组名,我这里是VolGroup,记着下面要用
sudo vgdisplay

sudo pvcreate /dev/sda4 // 创建新物理卷
sudo vgextend VolGroup /dev/sda4 // 扩展到卷组


查看根分区:

其中,/dev/VolGroup/lv_root就是根分区,也是我们要扩展的分区。
扩展到容量逻辑分区,命令:
sudo lvextend /dev/VolGroup/lv_root /dev/sda4
如果出现如下错误:

则
sudo vgreduce --removemissing VolGroup // 即可解决
最后
sudo resize2fs /dev/VolGroup/lv_root // 刷新逻辑分区容量
sudo df -h // 会发现根分区,现在容量翻倍了。。。
sudo reboot // 重启系统,一切OK,我的虚拟机又复活了。。。
补充:LVM的基本知识
LVM中有PV、VG、LV分别表示物理卷、卷组、逻辑卷。
操作流程就是,先是通过pvcreate将整个分区和硬盘创建为物理卷,对家vgcreate创建卷组volgroup,并把pvcreate的物理卷加入。然后通过lvcreate在卷组volgroup中创建我们需要的比如20G大小的逻辑卷。然后利用mkfs格式化为相应该的格式,比如ext4。最后通过mount挂载,形成我们可以访问的文件系统。
如果要扩容,通过这种方式来增加容量。
lvextend -L +xxG /dev/VolGroup/zzz
如果要压缩,则卸载掉逻辑卷,在e2fsck检测剩余的容量,然后,
resizef2fs /dev/VolGroup/zzz xxM // 减少xxM
lvreduce -L xxM // 将逻辑卷减少xxM
如果要删除,则用命令
lvremove vgremove pvremove
也是要先umount ,同时要修改/etc/fstab中的挂载信息,否则启动不起来。
参考资料:
VirtualBox虚拟机增加CentOS根目录容量 LVM扩容的更多相关文章
- VirtualBox如何增加CentOS根目录容量
1.扩充磁盘容量 单位为M,40000为40G VBoxManage modifyhd centos.vdi --resize 40000 2.指定新的磁盘文件 系统 > 右击 > 设置 ...
- VirtualBox虚拟机安装CentOS 7
新建虚拟机 因为比较简单,所以对于VirtualBox就不做过多介绍了,直接下载安装即可,安装好之后打开Oracle VM VirtualBox管理器,点击新建,选择Red Hat(根据windows ...
- Virtualbox虚拟机安装CentOS 6.5图文详细教程
http://blog.csdn.net/risingsun001/article/details/37934975
- [转]调整 VirtualBox 虚拟机的磁盘大小
本文转自:https://cnzhx.net/blog/resizing-lvm-centos-virtualbox-guest/ 发表于 2013-08-20 作者 H Zeng 更新于 2016- ...
- virtualBox linux操作系统centos 挂载光盘
virtualBox虚拟机linux centos 挂载光盘 第一步: 放入光盘 第二步: 挂载光驱 (/dev/cdrom) 1) 创建挂载点 mkdir /mnt/media 2) 挂载 moun ...
- vmware扩容centos根目录
在vmware中编辑,给磁盘扩容 在centos中使用命令fdisk /dev/sda 输入n创建新分区 输入p创建主分区 回车,默认分区号 回车,默认起始扇区 回车,默认last扇区 输入t,改变分 ...
- VirtualBox如何扩展虚拟机Ubuntu的硬盘容量?
一.问题描述 刚刚在VirtualBox中使用Ubuntu虚拟机中,出现了虚拟硬盘不够用的情况. 乖乖,查了一下磁盘空间,如下所示: df -H 原来是上午安装Ubuntu虚拟机的时候,选择了动态分 ...
- centos根目录扩容
一.扫描磁盘 若已在虚拟机增加了磁盘且没看到磁盘 运行下面的命令来查找系统中所有的主机总线编号: # ls /sys/class/scsi_host 得到主机总线编号后,运行以下命令来发现新的磁盘: ...
- 虚拟机LVM扩容
1.先在Vmware上,把虚拟机硬盘做扩展 2.现在打开虚拟机发现系统的磁盘空间已经扩了,但是硬盘分区可用空间没变,还是原来的30G [root@localhost ~]# fdisk -l Disk ...
随机推荐
- THINKPHP 错误:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
最近公司同事将我之前使用Thinkphp开发的一个项目从香港迁移到国内阿里云服务器上去,结果网站所有地址打开全部一片空白 跟同事确认了PHP版本,Mysql版本等都是跟迁移前的配置一样的,最终经过我查 ...
- Javascript 面向对象实践
踩到了坑,才能学到东西. 记录我在慢慢的转向模块化遇到的问题以及解决的思路. 1.采用立即执行函数,闭包的方式创建模块 html: <!DOCTYPE html> <html lan ...
- insta经典滤镜下载
好不容易找到的Insta的经典滤镜源码,贴出来帮大家学习. // // IFImageFilter.m // InstaFilters // // Created by Di Wu on 2/28/1 ...
- Android 多语言支持
本文内容 字符串本地化原理 环境 创建项目 测试其他语言 Android 本地化语言 ISO 编码 参考资料 使用 Android 的人越来越多,每天都在增加.因此,当你想把你的应用成功地全球化时,通 ...
- JavaScript常用设计模式
单例模式:确保类只能被实例化一次. var obj = {} 2.函数返回值 var func = function () {return {}} var obj = func(); 3.构造函数初始 ...
- Hbase master启动报错:Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster Caused by: java.net.UnknownHostException:
Hbase master启动报错: java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop ...
- 关于操作系统:eos、deepin
朋友星神推荐了这两个操作系统:eos.deepin,大致看了一下介绍,貌似看起来很棒,界面清新,而且开源,支持的应用也不少,后续我准备尝试一下.此处Mark一下: 官网分别为: https://ele ...
- Performance Tuning Guidelines for Windows Server 2012
http://msdn.microsoft.com/en-us/library/windows/hardware/jj248719.aspx This guide describes importan ...
- 在Windows中监视IO性能
附:在Windows中监视IO性能 本来准备写一篇windows中监视IO性能的,后来发现好像可写的内容不多,windows在细节这方面做的不是那么的好,不过那些基本信息还是有的. 在Windows中 ...
- 使用devenv/MSBuild在命令行编译sln或csproj
一 使用devenv来build单个project devenv是VisualStudio的可执行程序,一般安装在“C:\Program Files (x86)\Microsoft Visual ...