• VirtualBox下扩容vdi文件


    VirtualBox下扩容vdi文件
    版本:VirtualBox 5.0.14

    之前VirtualBox创建的虚拟机的vdi文件过小,无法满足新的实验需求,扩容vdi文件的方法如下:

    比如我这里将RHEL6_Primary12cRAC2.vdi文件扩容到60000M大小,方法如下:
    VBoxManage modifyhd E:VboxPrimary12cRAC2RHEL6_Primary12cRAC2.vdi --resize 60000

    实际执行过程:

    c:Program FilesOracleVirtualBox>VBoxManage modifyhd E:VboxPrimary12cRAC2RH
    EL6_Primary12cRAC2.vdi --resize 60000
    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
    

    至此虚拟机层面的操作就算完成了。

    但是这个时候启动虚拟机会发现大小没有变化:

    [root@jydb2 ~]# df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    /dev/mapper/vg_linuxbase-lv_root   28G  2.0G   24G   8% /
    tmpfs                             3.9G     0  3.9G   0% /dev/shm
    /dev/sda1                         485M   39M  421M   9% /boot
    

    实际上这是因为我这里的环境使用的lvm,而对应的根分区使用的是磁盘的一个分区,而扩容的vdi对应的是/dev/sda磁盘,下面继续来看详细情况:

    [root@jydb2 ~]# fdisk -l /dev/sda
    
    Disk /dev/sda: 62.9 GB, 62914560000 bytes
    255 heads, 63 sectors/track, 7648 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00047a24
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64        3917    30944256   8e  Linux LVM
    

    可以看到/dev/sda已经成功扩容,现在只需要把扩容的空间新建成一个分区:

    [root@jydb2 ~]# fdisk /dev/sda
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): p
    
    Disk /dev/sda: 62.9 GB, 62914560000 bytes
    255 heads, 63 sectors/track, 7648 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00047a24
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64        3917    30944256   8e  Linux LVM
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 3
    First cylinder (3917-7648, default 3917): 
    Using default value 3917
    Last cylinder, +cylinders or +size{K,M,G} (3917-7648, default 7648): 
    Using default value 7648
    
    Command (m for help): p
    
    Disk /dev/sda: 62.9 GB, 62914560000 bytes
    255 heads, 63 sectors/track, 7648 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00047a24
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64        3917    30944256   8e  Linux LVM
    /dev/sda3            3917        7648    29975280   83  Linux
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.
    [root@jydb2 ~]# partprobe 
    Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
    

    新加的分区需要重启才能生效。

    重启虚拟机之后就可以将新加的分区创建成pv加入到vg,最终扩容lv即可,可以分为4个步骤,具体如下:

    1.创建pv

    [root@jydb2 ~]# pvcreate /dev/sda3
      Physical volume "/dev/sda3" successfully created
    [root@jydb2 ~]# pvs
      PV         VG           Fmt  Attr PSize  PFree 
      /dev/sda2  vg_linuxbase lvm2 a--  29.51g     0 
      /dev/sda3               lvm2 a--  28.59g 28.59g
    

    2.扩容vg

    [root@jydb2 ~]# vgs
      VG           #PV #LV #SN Attr   VSize  VFree
      vg_linuxbase   1   2   0 wz--n- 29.51g    0 
    [root@jydb2 ~]# vgextend -h
      vgextend: Add physical volumes to a volume group
    
    vgextend
            [-A|--autobackup y|n]
            [--restoremissing]
            [-d|--debug]
            [-f|--force]
            [-h|--help]
            [-t|--test]
            [-v|--verbose]
            [--version]
            [-y|--yes]
            [ PHYSICAL DEVICE OPTIONS ] 
            VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
    
    [root@jydb2 ~]# vgextend vg_linuxbase /dev/sda3
      Volume group "vg_linuxbase" successfully extended
    [root@jydb2 ~]# vgs
      VG           #PV #LV #SN Attr   VSize  VFree 
      vg_linuxbase   2   2   0 wz--n- 58.09g 28.58g
    

    3.扩容lv

    [root@jydb2 ~]# lvs
      LV      VG           Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
      lv_root vg_linuxbase -wi-ao---- 27.54g                                             
      lv_swap vg_linuxbase -wi-ao----  1.97g       
    
    [root@jydb2 ~]# vgdisplay
      --- Volume group ---
      VG Name               vg_linuxbase
      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
      VG Size               58.09 GiB
      PE Size               4.00 MiB
      Total PE              14871
      Alloc PE / Size       7821 / 30.55 GiB
      Free  PE / Size       7050 / 27.54 GiB
      VG UUID               41Wk3c-fuD0-SKcX-RqNQ-7uIP-e2xD-1mWaUd
       
    [root@jydb2 ~]# lvresize -l +7050 /dev/mapper/vg_linuxbase-lv_root
      Extending logical volume lv_root to 56.12 GiB
      Logical volume lv_root successfully resized
    [root@jydb2 ~]# vgdisplay
      --- Volume group ---
      VG Name               vg_linuxbase
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  6
      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               58.09 GiB
      PE Size               4.00 MiB
      Total PE              14871
      Alloc PE / Size       14871 / 58.09 GiB
      Free  PE / Size       0 / 0   
      VG UUID               41Wk3c-fuD0-SKcX-RqNQ-7uIP-e2xD-1mWaUd
       
    [root@jydb2 ~]# df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    /dev/mapper/vg_linuxbase-lv_root   29G  2.0G   25G   8% /
    tmpfs                             3.9G     0  3.9G   0% /dev/shm
    /dev/sda1                         485M   39M  421M   9% /boot
    

    4.resize2fs lv

    [root@jydb2 ~]# resize2fs  /dev/mapper/vg_linuxbase-lv_root
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/mapper/vg_linuxbase-lv_root is mounted on /; on-line resizing required
    old desc_blocks = 2, new_desc_blocks = 4
    Performing an on-line resize of /dev/mapper/vg_linuxbase-lv_root to 14711808 (4k) blocks.
    The filesystem on /dev/mapper/vg_linuxbase-lv_root is now 14711808 blocks long.
    
    [root@jydb2 ~]# df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    /dev/mapper/vg_linuxbase-lv_root   56G  2.0G   51G   4% /
    tmpfs                             3.9G     0  3.9G   0% /dev/shm
    /dev/sda1                         485M   39M  421M   9% /boot
    

    至此,已成功扩容了该虚拟机的系统根目录。

  • 相关阅读:
    delphi shr和shl的作用
    delphi socket 编程 使用多线程
    mysql 移除服务,并在cmd下切换目录
    delphi 结构体和TList的用法
    delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行。
    Unicode 和 UTF-8 的区别
    Python 模块 re (Regular Expression)
    Python的函数式编程
    反向解析与PTR(Pointer Record)
    simhash算法
  • 原文地址:https://www.cnblogs.com/jyzhao/p/7494456.html
Copyright © 2020-2023  润新知