• 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 > 右边的添加虚拟硬盘 > 选择转换后的文件 就行了。

    vm-centos

    在虚拟机打开系统,通过df -h查看发现,根目录还是原样,下面我们通过LVM来扩展分区。

    3 LVM扩展

    LVM(Logic Volume Manager)逻辑卷管理,像RedHat系的默认分区管理方式,是建立在硬盘分区之上,文件系统之下的逻辑层,用来解决在最初分区时未正确的评估和和分配分区容量,而造成系统分区不够用。接下来扩展分区就是几行代码的事了。

    sudo fdisk -l

    查看当前系统分区情况。可以看到我们已经创建的分区,sda1、sda2的什么,也可以ls /dev/来查看。

    如果有第二块硬盘会看到sdb,我这里是只有一块,且已经分了sda1和sda2。

    下面创建将扩展的空间,创建新分区。

    extend-disk1

    sudo mkfs.ext4 /dev/sda4  // 将分区格式化为ext4格式

    下面开始LVM操作,查看卷组名,我这里是VolGroup,记着下面要用

    sudo vgdisplay

    extend-disk2

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

    extend-disk3

    extend-disk4

    查看根分区:

    extend-disk5

    其中,/dev/VolGroup/lv_root就是根分区,也是我们要扩展的分区。

    扩展到容量逻辑分区,命令:

    sudo lvextend /dev/VolGroup/lv_root /dev/sda4

    如果出现如下错误:

    extend-disk6

    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中的挂载信息,否则启动不起来。

    参考资料:

    1. virtualBox虚拟机linux(CentOS)扩容(增加原先设置的大小 扩容至根目录)
  • 相关阅读:
    观察者模式
    Java中关于HashMap源码的研究
    抽象工厂模式
    适配器模式
    oracle创建表空间并赋予权限
    外观模式
    oracle中循环读出一个表的信息插入到另外一个表中
    javaScript对金额处理的方式
    装饰器模式
    建造者模式
  • 原文地址:https://www.cnblogs.com/wajika/p/6513102.html
Copyright © 2020-2023  润新知