现在的位置: 首页 > 综合 > 正文

VirtualBox 上linux系统扩容

2017年12月24日 ⁄ 综合 ⁄ 共 2688字 ⁄ 字号 评论关闭

一开始安装linux虚拟机的时候什么都没有考虑,想想给个10G够用了吧。结果要写代码装了个eclipse,还要下载好大的代码文件,于是就悲催了。网上搜罗了方法,整理了一下,写在这里:

要给虚拟机上的linux系统扩容有以下几步:

1. VirtualBox上硬盘扩容。

2. linux系统上挂载新的磁盘分区。

3. 修改挂载磁盘分区权限。

假设我们需要给linux虚拟机增加30G的空间。linux系统是ubuntu

1. VirtualBox上给虚拟机硬盘扩容。

打开命令窗口cd到virtualbox的安装目录下,然后使用命令: VBoxManage modifyhd <path to your vdi> --resize <new size in megabytes> 。这里30G = 30 * 1024M = 30720M。

这个时候打开你虚拟机的设置-storage-SATA控制器-ubuntu.vdi,可以看到虚拟分配空间已经40个G啦(原来的10G+扩展的30G)。

2. linux系统上挂载新的磁盘分区。

在VirtualBox上给虚拟机硬盘扩容还不够,如果你用fdisk -l去查看磁盘分区,发现用的额还是原来那点地方。就好像你给你的电脑加了一个新的硬盘,但是打开我的电脑,并没有哪个盘上多了些空间。所以要真正把这新加的容量利用起来,还需要告诉系统你增加的容量放哪了。

在给linux系统挂载新的磁盘分区之前,请先了解一下什么是磁盘分区,分区的时候有哪些规则 http://vbird.dic.ksu.edu.tw/linux_basic/0130designlinux_2.php

在继续之前请注意一下,下面的数字可能跟你电脑上的会不同。请参考自己系统上的具体情况加以变动。

首先我们先来查看下当前的分区情况:sudo fdisk -l

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    15728639     7863296   83  Linux
/dev/sda2        15730686    16775167      522241    5  Extended
/dev/sda5        15730688    16775167      522240   82  Linux swap / Solaris

这个系统上当前有两个主分区,一个逻辑分区。我们可以新增一个主分区,并分配上我们所扩展的30G的容量。

使用命令sudo fdisk /dev/sda, 这个时候会显示让你输入命令 “Command (m for help): ” 输入m返回帮助信息。

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

可以看到有一系列的命令,这里我们需要用到 'n' -- add a new partition ,输入n

Partition type:
   p   primary (1 primary, 1 extended, 2 free) -- 这里表示有已有两个主分区,还可以创建两个 (但是我们最好不要创建四个主分区,原因请见之前给的链接)
   l   logical (numbered from 5) -- 这里表示逻辑分区的编号从5开始(这是为什么呢,请参见之前那个链接)

这个时候他会问你新建磁盘分区的类型,并在括号里面告诉你当前某个类型的磁盘情况。然后我们输入 p,创建主分区。

这个时候它会问你partition的编号,默认是3. 请输入3

然后它会询问你磁盘分区开始的位置 (15728640- 83886079, default 15728640):

你可能会疑问这个15728640怎么来的呢,我们再会到之前我们查看的磁盘分区信息:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    15728639     7863296   83  Linux
/dev/sda2        15730686    16775167      522241    5  Extended
/dev/sda5        15730688    16775167      522240   82  Linux swap / Solaris

看到红色标记出来的数字木有,就是那个加一,如果我们用这个默认的数字,你会发现,当他要让你输入磁盘分区结束的位置的时候,可以到达的数字并不是83886079,而是15730685,这是为什么呢,因为15730686 ~ 16775167已经被sda2用掉啦。所以我们这里要输入16775168,也就是sda2后面开始的位置,然后回车。

这个时候它会询问你磁盘分区结束的位置,你可以输入83886079,也就是将你所新增的磁盘空间全部加进去。

最后输入命令 'w' 保存就大功告成啦。可以再查询一遍当前的磁盘分区状况,就会发现你新加的/dev/sda3哦,哈哈~~

分区新建好了,我们需要格式化之后才能使用: mkfs -t ext3 /dev/sda3

然后我们需要挂载到文件目录上去。假设我们要挂在到目录/home/work, 则使用命令: sudo mount /dev/sda3 /home/work 。

如果想每次开机的时候自动挂载,那么就在/etc/fstab文件中加入一行

/dev/sda3  /home/work  ext3 defaults, 0  1

3.修改磁盘分区权限

磁盘分区建好了,但你有木有发现你木有权限在里面创建文件夹?我们在/home目录 ls -all一把,发现这个work文件夹的权限归root所有!!!!所以我们需要修改下权限:

chmod 777 /home/work

好了这下真的算是大功告成啦!! 哈哈!!

抱歉!评论已关闭.