本文转自:https://cnzhx.net/blog/resizing-lvm-centos-virtualbox-guest/

发表于 2013-08-20 作者 H Zeng 
更新于 2016-12-19

使用 VM VirtualBox 创建了一个 CentOS 虚拟机,划分了 3GB 的磁盘空间,使用了动态分配存储的方式,文件系统为 LVM。折腾了一段时间之后,却发现磁盘容量不够了。读了一些资料之后,终于给 VirtualBox 的虚拟机增加了磁盘容量,并让 CentOS 的 LVM 将其利用上。

下面特地新建了一个磁盘大小为 3GB 的虚拟机,然后将其调整为 5GB,并记录了操作步骤。

先看看虚拟机中虚拟磁盘的的分区表:

# fdisk -l /dev/sdaDisk /dev/sda: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 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: 0x00052338Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64         392     2632704   8e  Linux LVM
Partition 2 does not end on cylinder boundary.

可以看到,磁盘总大小为 3221MB。

目录 Contents

  • 1. VirtualBox 的磁盘管理
  • 2. CentOS 的 LVM 管理
    • A. 将空余磁盘创建为 sda3
    • B. 调整 LVM 大小

1. VirtualBox 的磁盘管理¶

下面使用 VirtualBox 的命令行将该虚拟机的磁盘分配从 3GB 调整为 5GB。

VirtualBox 的说明文档中明确给出了调整虚拟机磁盘大小的方法。

VBoxManage modifyhd         <uuid>|<filename>[--type normal|writethrough|immutable|shareable|readonly|multiattach][--autoreset on|off][--compact][--resize <megabytes>|--resizebyte <bytes>]

modifyhd 指令就是用来调整磁盘大小的。对象可以是虚拟机的 uuid,也可以直接指定要调整大小的虚拟机磁盘文件名(全路径)。需要注意的是,如果安装 VirtualBox 的时候没有将其路径添加到系统路径之中,运行命令行的时候需要指定路径,如,

C:\>D:\Apps\Oracle\VirtualBox\VBoxManage.exe modifyhd "D:\CentOS2.vdi" --resize 5120
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

上述指令将 D 盘根目录下的 CentOS2.vdi 这个虚拟机磁盘调整为(参数 –resize)5120,单位是 MB。

Linux 下的指令为,

$ VBoxManage modifyhd "/path/to/CentOS2.vdi" --resize 5120

如果想查看对应的 uuid,可以使用指令:

C:\>D:\Apps\Oracle\VirtualBox\VBoxManage.exe list hdds
UUID: 7a0b7b7a-298d-4fcf-b9d0-09ae2737441d
Parent UUID: base
Format: VDI
Location: D:\CentOS2.vdi
State: created
Type: normal
Usage: CentOSi (UUID: 34a666fa-24c9-4510-9cca-50e2a04c8e98)

调整虚拟磁盘大小的时候,虚拟机必须关闭!

以上指令在 64bit Windows 7 + VirtualBox 4.2.16 下测试过。另于20161219在 openSUSE Tumbleweed + VirtualBox 5.1.10 下测试过。不过要注意的是,如果该虚拟机有快照(snapshot),则只有在删除快照后才能在虚拟机客户系统里看到更改后的磁盘容量。

2. CentOS 的 LVM 管理¶

重新启动该虚拟机。再来看看磁盘情况:

# fdisk -l /dev/sdaDisk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 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: 0x00052338Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 392 2632704 8e Linux LVM
Partition 2 does not end on cylinder boundary.

现在,磁盘大小为 5368MB。磁盘占用情况为:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root1.7G  1.5G   83M  95% /
tmpfs                 250M     0  250M   0% /dev/shm
/dev/sda1             485M  117M  343M  26% /boot

试试看用 dd 命令创建一个大小为 1GB 的块文件:

# dd if=/dev/zero of=1.0G.img bs=1M count=1000
dd: writing `1.0G.img': No space left on device
1+0 records in
0+0 records out
8192 bytes (8.2 kB) copied, 0.00300509 s, 2.7 MB/s

提示说磁盘空间不足(No space left on device)。虽然我们给了虚拟机足够的空间,但是虚拟机里的系统(这里是 CentOS)并没有将这一部分空间利用上。可以看到,虚拟机里的磁盘空间只有 1.7G,原始分配的 3G 没有用完。这同时也说明,即使创建虚拟机的时候使用动态分配磁盘大小,虚拟机里的系统也并不会自动修改自己的磁盘。如果是正常使用,即使虚拟机的虚拟磁盘足够大,还是可能会在虚拟机中遇到磁盘空间不足的警告。

下面调整虚拟机操作系统的文件系统,使之将所有空间利用上。

A. 将空余磁盘创建为 SDA3¶

重新启动虚拟机,登入 CentOS,使用 fdisk 将虚拟磁盘的空闲空间创建为一个新的分区。注意要使用代表 Linux LVM 的分区号 8e 来作为 ID。

# fdisk /dev/sdan {new partition}p {primary partition}3 {partition number}t {change partition id}3 {partition number}8e {Linux LVM partition}w

上述命令执行后,可以使用

fdisk -l /dev/sda

来查看 sda3 是否成功创建并标记为 LVM,如果没有,则需要重新启动。可惜我忘记保存结果记录了。

reboot

B. 调整 LVM 大小¶

先看看当前 Volume Group:

# vgdisplay--- Volume group ---VG Name               VolGroupSystem IDFormat                lvm2Metadata Areas        1Metadata Sequence No  3VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                2Open LV               2Max PV                0Cur PV                1Act PV                1VG Size               2.51 GiBPE Size               4.00 MiBTotal PE              642Alloc PE / Size       642 / 2.51 GiBFree  PE / Size       0 / 0VG UUID               m42pDq-K830-cfly-cKR2-1AQF-IsyX-3X2ADy

名称为 VolGroup,可调整大小(resizable),当前大小为 2.51GB。活动的 LVM 卷有,

# lvscanACTIVE            '/dev/VolGroup/lv_root' [1.67 GiB] inheritACTIVE            '/dev/VolGroup/lv_swap' [856.00 MiB] inherit

先将分配过来的新磁盘空间创建为一个新的物理卷,

pvcreate /dev/sda3

然后使用新的物理卷来扩展 LVM 的 VolGroup,

# vgextend VolGroup /dev/sda3No physical volume label read from /dev/sda3Writing physical volume data to disk "/dev/sda3"Physical volume "/dev/sda3" successfully createdVolume group "VolGroup" successfully extended

然后扩展 LVM 的逻辑卷 VolGroup-lv_root,

# lvextend /dev/VolGroup/lv_root /dev/sda3Extending logical volume lv_root to 3.66 GiBLogical volume lv_root successfully resized

最后,调整逻辑卷文件系统的大小,

resize2fs /dev/VolGroup/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/VolGroup/lv_root to 959488 (4k) blocks.
The filesystem on /dev/VolGroup/lv_root is now 959488 blocks long.

完成。看看效果:

# lvscanACTIVE '/dev/VolGroup/lv_root' [3.66 GiB] inheritACTIVE '/dev/VolGroup/lv_swap' [856.00 MiB] inherit

另外,几个有用的 LVM 指令(lvm2):

  • lvmdiskscan
  • vgdisplay
  • pvdisplay
  • lvdispay
  • vgcreate
  • pvcreate
  • lvscan
  • pvscan
  • vgscan

我这里用的是 CentOS 系统。如果是 Windows 就更简单了,可通过 Windows 的磁盘管理来重新调整分区大小以占用所有可用磁盘空间。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/resizing-lvm-centos-virtualbox-guest/>。转载请保留此信息及相应链接。

转载于:https://www.cnblogs.com/freeliver54/p/10481679.html

[转]调整 VirtualBox 虚拟机的磁盘大小相关推荐

  1. virtualbox主机网络管理 未能创建_如何在 VirtualBox 中增加现有虚拟机的磁盘大小 | Linux 中国...

    导读:你可以在 VirtualBox 中扩大虚拟硬盘,即使在创建之后也可以. 本文字数:1434,阅读时长大约:2分钟https://linux.cn/article-12869-1.html作者:D ...

  2. 增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)

    1 前言 网上关于增加VirtualBox虚拟机的磁盘空间大小的文章非常非常多,这里我之所以再写一篇,是因为在参照这些文章做的时候,由于VirtualBox的版本更新以及其他一些环境问题,碰到到一些问 ...

  3. 调整VirtualBox虚拟机分辨率的方法

    调整VirtualBox虚拟机分辨率的方法 最近使用VirtualBox安装windows7虚拟机后,发现分辨率最高只能到800X600.经查资料,原来是VirtualBox中限制了Guest的最大分 ...

  4. 怎样调整XenServer下面Linux虚拟机的磁盘大小

    登录到XenServer. 修改虚拟机磁盘大小 修改storage 磁盘大小 启动虚拟机 修改分区大小 fdisk /dev/xvda The number of cylinders for this ...

  5. windows azure mysql data disk_调整Azure中虚拟机数据磁盘大小实践

    首先,在Azure中关于数据存储的付费规则中规定,只要你使用的不是Azure的XIO高级存储提供的I/O密集型的高吞吐低延迟的服务,那么得益于Azure存储设计中采用的稀疏文件方式存储,存储虚拟机VH ...

  6. 如何修改Oracle VM virtualbox虚拟机的屏幕大小

    只需要去设置里的显示,调整缩放率就可以了 virtualbox的下载地址:https://www.virtualbox.org/wiki/Downloads 如果xshell连接不上,可以在这里多设置 ...

  7. VMware虚拟机扩展磁盘空间Ubuntu(超简单)

    一.简介 在平时使用时,会遇到安装的虚拟机磁盘空间不足的情况.此时需要给系统扩展磁盘空间.网上的很多教程都是输入一堆命令,申请.分配.初始化.挂载等等特别麻烦.今天介绍一个最简单.最实用的方法. 二. ...

  8. VirtualBox虚拟机 给Ubuntu扩容

    1. 要先扩容的虚拟机关机. 2. 管理----->虚拟介质管理器 3. 关键在这里,我就是在这里卡了一下午 打开rosnoetic,对自己电脑所用的盘符进行扩容,拉光标到自己想要扩容的大小. ...

  9. 小白笔记:VM VirtualBox 虚拟机下Ubuntu磁盘空间不足”Low Disk Space on “Filesystem root” ”及固定大小储存虚拟磁盘转动态分配储存的简单扩容

    示范版本:虚拟机软件VM VirtualBox 6.1.36 +系统Ubuntu20.04 解决问题:Ubuntu在启动或下载文件时候时,提示磁盘空间不足(Low Disk Space on &quo ...

最新文章

  1. 安装Maya 6.5指南
  2. Tomcat7.0源码分析——Session管理分析(上)
  3. 网络推广——网络推广专员浅析网站建设中少不了对细节的关注
  4. Python 赋值、浅拷贝、深拷贝的区别?
  5. JS将数字转换为带有单位的中文表示
  6. HDU3966(树链剖分)
  7. 使用RNN解决句子对匹配问题的常见网络结构
  8. ubuntu20.10下mysql8数据库的安装(亲测)
  9. AndroidStudio安卓原生开发_启动系统的activity_短信发送activity_摄像头activity_电话拨打activity---Android原生开发工作笔记94
  10. bzoj 2131: 免费的馅饼(树状数组+DP)
  11. GPS定位可以使用物联卡吗?信号稳定吗?
  12. (二)UDPSocket 客户端编写(超详细)
  13. 医学知识图谱构建关键技术及研究进展
  14. 畅购商城项目 订单+用户认证+微信扫码支付+订单处理
  15. rabbitmq新增用户
  16. 3.2 基本数据类型
  17. W25Q128FV译文(一)
  18. 云原生爱好者周刊:mist.io 开源多云管理平台
  19. Mui的APPLOGO数字角标小米问题
  20. 电点国际化翻译系统,助力你开启海外项目之旅

热门文章

  1. Web前端现在薪资多少?企业喜欢什么样的Web前端工程师?
  2. 学校计算机考察内容是什么意思,2019考研计算机复试四项考察内容分析及注意事项...
  3. aix系统输入oracle命令,aix 简单的系统命令
  4. springboot 扫描文件夹_Spring Boot学习07_自定义starter
  5. 使用正则表达是搜索多个字符串,表达式中加入变量
  6. MySQL实验7存储过程_mySQL(7)-存储过程
  7. IAR软件中查看代码大小
  8. Linux学习笔记---移植官方linux步骤(二)
  9. 计算机专业经典书籍强烈推荐
  10. Linux中安装开源JDK(windows的JDK只能安装半开源)