作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591

用了一段Linux虚拟机。发现安装虚拟机时分配的空间不够用,又不舍得删掉虚拟机重装。毕竟辛辛苦苦在上面装了好多软件,我可不想再为这些配置折腾一番。

怎么办呢,当然是虚拟机扩容

1.虚拟机所在磁盘空间不够,能够把虚拟机复制到还有一块磁盘里。

2.进入VMware的安装文件夹,在命令提示符后输入"vmware-vdiskmanager",什么參数也不加直接按回车键。可显示这一命令的说明。

3.这一步要关闭虚拟机才行:

扩容命令:C:\Program Files\VMware\VMware Workstation>vmware-vdiskmanager -x 40Gb "D:\Program Files\Virtual Machines\Ubuntu\Ubuntu.vmdk"

參数 "-x" 表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小 ( 扩展到 40GB ,包括了原先的磁盘容量 ) 。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29sZGVuMTMxNDUyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

重新启动 VMware 。会发现虚拟机硬盘空间已变成 40GB 了

4.运行命令 df -ah查看磁盘情况,发现磁盘空间和扩容前一样。仍是20G:

5.查看分区,运行命令:

  1. fdisk -l

以下是当前的磁盘分区表截图。这时我们能够看到磁盘的总量的确添加到 40GB 了,可是分区仅仅有曾经的那几个原有的分区。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29sZGVuMTMxNDUyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

添加分区过程截图:

重新启动后格式化该分区:

发现一个问题,我命名扩增了20G。为什么新增的分区容量这么小,以至于格式化时提示“Filesystem too small for a journal”

再看虚拟机配置。截图:

图上显示的是:眼下此虚拟硬盘的大小(current size)是19.8G,最大是(maximum size)40G。可是怎么获得这个最大磁盘容量呢?

然后我用了还有一种方法扩容:

与之前的思路不同,本方法不是扩大原来的虚拟磁盘的容量,而是另加一个虚拟磁盘来扩充容量。

第一步、退出Linux虚拟机系统。通过在VMware上对虚拟机进行设置来添加一块虚拟硬盘。

附截图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29sZGVuMTMxNDUyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29sZGVuMTMxNDUyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29sZGVuMTMxNDUyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

第二步、重新启动Linux虚拟机,对这块虚拟硬盘进行分区、格式化和挂载。

看下磁盘分区情况:

  1. root@ubuntu:/home/now/android4.0.1# fdisk -l
  2.  
  3. Disk /dev/sda: 21.5 GB, 21474836480 bytes
  4. 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
  5. Units = sectors of 1 * 512 = 512 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x000e4e09
  9.  
  10. Device Boot Start End Blocks Id System
  11. /dev/sda1 * 2048 39845887 19921920 83 Linux
  12. /dev/sda2 39847934 41940991 1046529 5 Extended
  13. /dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris
  14.  
  15. Disk /dev/sdb: 21.5 GB, 21474836480 bytes
  16. 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
  17. Units = sectors of 1 * 512 = 512 bytes
  18. Sector size (logical/physical): 512 bytes / 512 bytes
  19. I/O size (minimum/optimal): 512 bytes / 512 bytes
  20. Disk identifier: 0x00000000
  21.  
  22. Disk /dev/sdb doesn't contain a valid partition table

这里能够看到/dev/sdb 就是我们新加入的硬盘。我们须要给新的硬盘分区。

步骤例如以下(看提示):

  1. root@ubuntu:/home/now/android4.0.1# fdisk /dev/sdb
  2. Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
  3. Building a new DOS disklabel with disk identifier 0x9d6a9772.
  4. Changes will remain in memory only, until you decide to write them.
  5. After that, of course, the previous content won't be recoverable.
  6.  
  7. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
  8.  
  9. Command (m for help): m
  10. Command action
  11. a toggle a bootable flag
  12. b edit bsd disklabel
  13. c toggle the dos compatibility flag
  14. d delete a partition
  15. l list known partition types
  16. m print this menu
  17. n add a new partition
  18. o create a new empty DOS partition table
  19. p print the partition table
  20. q quit without saving changes
  21. s create a new empty Sun disklabel
  22. t change a partition's system id
  23. u change display/entry units
  24. v verify the partition table
  25. w write table to disk and exit
  26. x extra functionality (experts only)
  27.  
  28. Command (m for help): n
  29. Partition type:
  30. p primary (0 primary, 0 extended, 4 free)
  31. e extended
  32. Select (default p): p
  33. Partition number (1-4, default 1): 1
  34. First sector (2048-41943039, default 2048):
  35. Using default value 2048
  36. Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
  37. Using default value 41943039
  38.  
  39. Command (m for help): p
  40.  
  41. Disk /dev/sdb: 21.5 GB, 21474836480 bytes
  42. 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
  43. Units = sectors of 1 * 512 = 512 bytes
  44. Sector size (logical/physical): 512 bytes / 512 bytes
  45. I/O size (minimum/optimal): 512 bytes / 512 bytes
  46. Disk identifier: 0x9d6a9772
  47.  
  48. Device Boot Start End Blocks Id System
  49. /dev/sdb1 2048 41943039 20970496 83 Linux
  50.  
  51. Command (m for help): w
  52. The partition table has been altered!
  53.  
  54. Calling ioctl() to re-read partition table.
  55. Syncing disks.

再看磁盘分区,已达到我们想要的结果:

  1. root@ubuntu:/home/now/android4.0.1# fdisk -l
  2.  
  3. Disk /dev/sda: 21.5 GB, 21474836480 bytes
  4. 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
  5. Units = sectors of 1 * 512 = 512 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x000e4e09
  9.  
  10. Device Boot Start End Blocks Id System
  11. /dev/sda1 * 2048 39845887 19921920 83 Linux
  12. /dev/sda2 39847934 41940991 1046529 5 Extended
  13. /dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris
  14.  
  15. Disk /dev/sdb: 21.5 GB, 21474836480 bytes
  16. 213 heads, 34 sectors/track, 5791 cylinders, total 41943040 sectors
  17. Units = sectors of 1 * 512 = 512 bytes
  18. Sector size (logical/physical): 512 bytes / 512 bytes
  19. I/O size (minimum/optimal): 512 bytes / 512 bytes
  20. Disk identifier: 0x9d6a9772
  21.  
  22. Device Boot Start End Blocks Id System
  23. /dev/sdb1 2048 41943039 20970496 83 Linux

我们把新加的磁盘/dev/sdb1 挂载到根分区

  1. root@ubuntu:/home/now# mount /dev/sdb1 /
  2. mount: you must specify the filesystem type

系统提示须要明白的文件类型,即我们须要对其进行格式化。

以下是格式化操作:

  1. root@ubuntu:/home/now# mkfs -t ext3 /dev/sdb1
  2. mke2fs 1.42 (29-Nov-2011)
  3. Filesystem label=
  4. OS type: Linux
  5. Block size=4096 (log=2)
  6. Fragment size=4096 (log=2)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 1310720 inodes, 5242624 blocks
  9. 262131 blocks (5.00%) reserved for the super user
  10. First data block=0
  11. Maximum filesystem blocks=0
  12. 160 block groups
  13. 32768 blocks per group, 32768 fragments per group
  14. 8192 inodes per group
  15. Superblock backups stored on blocks:
  16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  17. 4096000
  18.  
  19. Allocating group tables: done
  20. Writing inode tables: done
  21. Creating journal (32768 blocks): done
  22. Writing superblocks and filesystem accounting information: done

然后挂载,成功:

  1. root@ubuntu:/home/now# mount /dev/sdb1 /
  2. root@ubuntu:/home/now#

查看挂载情况,能够看到/dev/sdb1挂载到了根分区:

  1. root@ubuntu:/home/now# df
  2. Filesystem 1K-blocks Used Available Use% Mounted on
  3. /dev/sda1 19478204 16257028 2208696 89% /
  4. udev 503544 4 503540 1% /dev
  5. tmpfs 102472 1108 101364 2% /run
  6. none 5120 0 5120 0% /run/lock
  7. none 512352 152 512200 1% /run/shm
  8. /dev/sdb1 19478204 16257028 2208696 89% /

能够看到这不是我们想要的结果,这是由于“挂载点”必须是一个已经存在的文件夹,这个文件夹能够不为空,但挂载后这个文件夹下曾经的内容将不可用,只是umount以后会恢复正常。

使用卸载命令,发现不能卸载:

  1. root@ubuntu:/# umount /dev/sdb1
  2. umount: /: device is busy.
  3. (In some cases useful info about processes that use
  4. the device is found by lsof(8) or fuser(1))

好在使用mount挂载系统的一个特点是一旦系统重新启动之后就失效,须要又一次挂载。

所以我们重新启动就能卸载掉磁盘/dev/sdb1了。

系统重新启动后。在根文件夹下新建一个子文件夹(由于全部的文件夹都是挂载到根文件夹下的),然后把磁盘/dev/sdb1挂载在此文件夹下:

  1. root@ubuntu:/home/now# cd /
  2. root@ubuntu:/# mkdir /storehouse
  3. root@ubuntu:/# mount /dev/sdb1 /storehouse

查看存储空间利用情况:

  1. root@ubuntu:/# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda1 19G 16G 2.2G 88% /
  4. udev 492M 4.0K 492M 1% /dev
  5. tmpfs 101M 956K 100M 1% /run
  6. none 5.0M 0 5.0M 0% /run/lock
  7. none 501M 152K 501M 1% /run/shm
  8. /dev/sdb1 20G 173M 19G 1% /storehouse

看到了吧,最后一行就是我们挂载的文件夹。

使用下面试试。往里面拷贝一个压缩文件:

  1. root@ubuntu:/# cp /home/now/android4.0.1.tar.gz /storehouse
  2. root@ubuntu:/# ls /storehouse/
  3. android4.0.1.tar.gz lost+found

然后查看存储空间利用情况:

  1. root@ubuntu:/# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda1 19G 16G 2.2G 88% /
  4. udev 492M 4.0K 492M 1% /dev
  5. tmpfs 101M 968K 100M 1% /run
  6. none 5.0M 0 5.0M 0% /run/lock
  7. none 501M 152K 501M 1% /run/shm
  8. /dev/sdb1 20G 1.9G 17G 11% /storehouse

可以看到可以正常使用。

改动/etc/fstab文件,开机自己主动挂载:

如图。红色方框是我们加入的

VMware虚拟机扩容的更多相关文章

  1. 虚拟化之vmware虚拟机扩容与克隆

    前提条件: 1.在新建虚拟机的时候创建磁盘如下图,之后这个磁盘就可以在虚拟机关机状态下动态扩展大小,否则只能通过添加另外一块硬盘的方式来扩容.

  2. [linux]vmware中linux虚拟机扩容 标签: vmware虚拟机linux 2016-09-05 08:03 315人阅读 评

    扩容原因 现阶段,虚拟机的标配都是1G内存和20G硬盘,大部分时候是够用的,但是也会出现虚拟机里面东西放多了硬盘不够用的情况,这种情况下,除了清理垃圾,另外就只能给虚拟机扩容了.因为window扩容相 ...

  3. [转载]实战Linux下VMware虚拟机根目录空间扩充

    [转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载   原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...

  4. Vmware虚拟机安装Ubuntu并设置root登陆

    主机操作系统是win7.在Ubuntu官网下好系统镜像.iso文件,安装好Vmware workstation软件 1 安装Ubuntu系统到Vmware虚拟机: 注意下面这步是无法直接设置账号为ro ...

  5. Vmware虚拟机Devstack安装openstack(All in one)

    Vmware虚拟机Devstack安装openstack(All in one) 博客园第一篇博客,先练习一下. 官方文档 环境 Vmware虚拟机 OS : Ubuntu 14.04 Nat网络,D ...

  6. [原创]Windows Server 2003 物理机转换为VMware虚拟机出现VSS错误的处理

    一台Windows Server 2003 物理机需要转换为VMware虚拟机,工具为Vmware vCenter Converter Standalone 6.0,转换开始就出现错误“FAILED: ...

  7. VMWare虚拟机实例拷贝到另一台服务器后出现Error in the RPC receive loop: RpcIn: Unable to send.错误的解决

    把一个VMWare虚拟机实例拷贝到另一台服务器后,在事件查看器中的应用程序日志中不断出现Error in the RPC receive loop: RpcIn: Unable to send.错误, ...

  8. 使用Vmware虚拟机部署开发环境之Mac OS X系统安装

    一.使用VMware虚拟机部署Swift开发环境所需工具: Vmware Workstation 10.0虚拟机软件 VM安装Mac解锁工具Unlock 苹果操作系统(Mac OS X Maveric ...

  9. 修改VMware虚拟机里面的显卡名称

    修改VMware虚拟机里面的显卡名称 现在有些蛋疼坑爹的游戏,会检测显卡的名称,如果其中有“Vmware”这类的字眼,就会提示程序在虚拟机中运行而拒绝执行(太不科学了嘛,我要是把我的实机驱动名称也改成 ...

随机推荐

  1. Servlet,JDBC,JSONObject三者配和处理客户端请求并返回正确的json数据

    JSON简介 首先我们来理解json(JavaScript Object Notation),如果你熟悉python的字典结构和列表结构,其实json格式是非常容易理解的,当然不熟也不难理解,网上的资 ...

  2. 转载RabbitMQ入门(3)--发布和订阅

    发布和订阅 (使用java 客户端) 在先前的指南中,我们创建了一个工作队列.这工作队列后面的假想是每一个任务都被准确的传递给工作者.在这部分我们将会做一些完全不同的事情–我们将一个消息传递给多个消费 ...

  3. Delphi 为什么它提示PCHAR是不安全的类型呢 Unsafe type 'PChar'

    DELPHI7已经考虑到了移植到点NET的问题,在点NET里,指针是不安全的.至于为什么有的人遇到,有的人没有遇到,那是因为各人的编译选项不同.在Project菜单下选Options“Compiler ...

  4. 也说Autofac在MVC的简单实践:破解在Controller构造函数中的实例化 - winhu

    相信大家对Autofac并不陌生,很多人都在使用.本文只是介绍一下本人在使用时的一点想法总结. 在使用一个框架时,肯定要去它的官网查阅一下.autofac的官网给出了一些经典的使用案例.如注册容器: ...

  5. webdriver(python)学习笔记二

    自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...

  6. 软件测试技术(五)——Software Review

    本周的测试课上进行了一次同行评审的演练,大家讨论的很热烈,不过我也发现了一些不太理解的过程,如如何进行计划活动,走读.技术评审.正规检视是基于什么目的,并应该在何时进行.我做了一下详细的研究. 首先, ...

  7. 总结:ADO.NET在开发中的部分使用方法和技巧

    如何使用 SqlDataAdapter 来检索多个行 以下代码阐明了如何使用 SqlDataAdapter 对象发出可生成 DataSet 或 DataTable 的命令.它从 SQL Server ...

  8. 【Windows核心编程】重载类成员函数new / new[] / delete / delete[]

    // Heap.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include &l ...

  9. LeetCode题解——3Sum Closest

    题目: 给定一个数组,和一个指定的值,找出数组中3个数,它的和最接近这个指定值,并返回这个和. 解法: 和上一题找3个数的和为0一样,先排序再遍历,这一次不需要记录路径. 代码: class Solu ...

  10. 怎么使用PHPMailer实现邮件的发送??

    来源:http://www.ido321.com/1103.html 发送邮件是常用的功能,LZ今天在项目中也碰到了,特此分享一下. 首先,去下载PHPMailer 1.https://github. ...