文档章节

virtualbox虚拟机命令行添加新硬盘

吾爱
 吾爱
发布于 2016/08/17 17:17
字数 1074
阅读 305
收藏 1

用vagrant box装了个虚拟机,然而硬盘不够用,就想着增加一块虚拟硬盘给这个虚拟机,主机是linux系统,没有桌面,真是痛苦啊。

踩过的坑得及时记下来,希望能帮到以后的自己或者读者。

添加硬盘分为3步:1. 创建虚拟磁盘镜像 2.附加磁盘镜像到虚拟机存储控制器 3.进入虚拟机挂载新磁盘

创建虚拟磁盘

这一步最简单,在母机上执行命令

VBoxManage createhd --filename /storage/vms/disk50g --size 50000 --format VMDK

这句的意思是,创建一个虚拟磁盘 /storage/vms/disk50g 容量 50000MB 格式是 VMDK ,执行成功后会有一个文件 /storage/vms/disk50g.vmdk 记好它,路径当然根据个人需求

添加磁盘到虚拟机

这个步骤相当于我们装电脑时把硬盘插到主板上,怎么插呢?首先你得有一块硬盘,就是上面创建的那个文件,然后你要插到主板上哪个口子?我们知道主板有 ide 或 sata 磁盘驱动器,假如是sata,它还有好几个口,这些口都有编号 1,2,3,4,5 。了解了这些,下面的命令就比较好理解了。

首先,看一下虚拟机的信息

VBoxManage list vms #列出virtualbox下所有的虚拟机

找到你想弄的虚拟机,记下它的名字 ,像我这里这样的

"vm2_default_1471395575217_38235" {98d2cc97-beda-4be1-876d-d5cd7200837e}
"vm1-master" {9f172263-c4d6-4af5-a6ba-7ff0df695d37}

我要弄的是 "vm1-master" .

VBoxManage showvminfo vm1-master

根据输出信息,大概找到 Storage Controller 那一块:

Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on

我发现这个虚拟机只有 IDE Controller ,要插硬盘还得先关闭虚拟机,麻烦啊,为了以后一劳永逸,我决定给虚拟机增加一个 Sata Controller ,首先 我关闭了虚拟机,当然不关闭虚拟机不知道行不行,下次试试。

VBoxManage storagectl vm1-master --name "SATA Controller" --add sata --portcount 5 --controller IntelAhci --bootable on

这样就增加了个 sata 驱动器。

继续我们把硬盘插上去

VBoxManage storageattach vm1-master --storagectl "SATA Controller" --type hdd --medium /storage/vms/disk50g.vmdk --port 1 --device 0

需要了解的有几个参数

  • vm1-master 就是你虚拟机的名字,上面有提到
  • --storagectl 参数就是磁盘控制器的名字,参考上一条命令中的 --name
  • --type hdd 表示是硬盘,因为这个命令不仅仅可以插硬盘,还能插光驱等,所以要指定插的是什么
  • --medium 这里指定的是虚拟磁盘的文件名,想想一下你手里拿着的硬盘
  • --port 表示插在哪个端口,上面我们创建 sata 控制器的时候通过 --portcount 5 开放了5个端口,相当于主板上的5个sata接口,此时我们用第1个
  • --device 0 设备id,设为0 就可以了,我也不知道什么意思

如果没有错误的话,这里就成功添加了一块硬盘到虚拟机了,启动虚拟机,这里我用的是vagrant来管理虚拟机的。

vagrant up
vagrant ssh

登陆虚拟机后,执行 sudo fdisk -l ,可以看到我们刚添加的磁盘 /dev/sdb

下面我们把它分区

sudo fdisk /dev/sdb

出现提示,"command m for help .." ,直接输入 "n" ,进行分区,如果只要分一个区的话,最好办,一路enter ,又回到 "command m for help .." 的时候,输入 "w" 并回车,分区完成。

格式化分区 sudo mkfs.ext4 /dev/sdb1 如果命令不存在就 sudo mkfs.ext3 /dev/sdb1

挂载分区:

sudo vi /etc/fstab

在最后一行添加

/dev/sdb1    /home/wwwroot    ext4    defaults 1 2

这里我把它挂载到 /home/wwwroot ,别忘了要先 mkdir /home/wwwroot

wq退出

执行 mount -a 挂载成功。

就写这么多,希望我的经验能帮到别人。

© 著作权归作者所有

共有 人打赏支持
吾爱
粉丝 143
博文 271
码字总数 91680
作品 0
后端工程师
私信 提问
Linux上使用VirtualBox命令行管理

在 Linux 上使用 VirtualBox 的命令行管理界面 VirtualBox 拥有一套命令行工具,你可以使用 VirtualBox 的命令行界面 (CLI) 对远程无界面的服务器上的虚拟机进行管理操作。在这篇教程中,你将...

openthings
2018/09/13
0
0
使用 RemoteBox 远程管理 VirtualBox 虚拟机

RemoteBox 是一个图形化的工具,用来管理远程服务器或者本机的 VirtualBox 虚拟机。虽然 VirtualBox 的管理介面已经足以应付大部份的使用需求,但较为可惜的是本身并未提供远端管理虚拟机器的...

IBMdW
2013/01/05
1K
0
VirtualBox设置Ubuntu的添加Host-Only网卡

背景 在首次在VirtualBox上面安装好Ubuntu之后,就想到要能够通过我自己的实体机器的命令行终端操作,而不用跑到VirtualBox界面去操作命令行就好了。 主要思路 VirtualBox的网络模式了解 在V...

亚林瓜子
2018/07/18
0
0
在 VirtualBox 中安装最小化版 CentOS

在 VirtualBox 中安装最小化版 CentOS 发表于 2013-08-27 作者 Haoxian Zeng 在刚开始接触 VPS 服务器的时候,为了测试各种程序和配置是否能用,就在本地使用 VirtualBox创建了一个与 VPS 配...

Backflow
2014/10/25
0
0
Ubuntu11.04上的虚拟机XP无法连接主机USB

我在ubuntu11.04上用虚拟机软件VirtualBox安装了XP虚拟机,但是插上USB后虚拟机无法识别: 首先是在 virtualbox的设置内只要单击USB,就会报错,提示安装OracleVM VirtualBOX Extension pack; 所...

木之四月
2012/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

equals()的重写规则

自反性。对于任何非null的引用值x,x.equals(x)应返回true。 对称性。对于任何非null的引用值x与y,当且仅当:y.equals(x)返回true时,x.equals(y)才返回true。 传递性。对于任何非null的引用...

无精疯
35分钟前
2
0
Go基础系列:双层channel用法示例

双层通道的解释见Go的双层通道 以下是一个双层通道的使用示例。注意下面的示例中使用了"信号通道"(Signal channel),但这里的信号通道是多余的,仅仅只是为了介绍。 信号通道不用来传递数据,...

echojson
43分钟前
2
0
PHP文件上传error的错误类型

PHP文件上传error的错误类型 - $_FILES['file']['error'] 有以下几种类型 1、UPLOAD_ERR_OK 其值为 0,没有错误发生,文件上传成功。 2、UPLOAD_ERR_INI_SIZE 其值为 1,上传的文件超过了 ph......

小良下山化了个缘
今天
2
0
分布式项目(四)Mapping Server 数据映射

上回说道CoAp client和server的实现,数据也安装定义的格式发送到了kafka中,接下来就是Mapping server的实现,物理设备数据映射到抽象设备上,并赋予数据业务含义。 iot-mapping 构建iot-m...

lelinked
今天
3
0
使用data pump驱动的外部表移动数据

使用data pump驱动的外部表移动数据 比如我们有一个报表的数据,准备从一个数据库A中移动到另一个数据库B中,如何实现? 这个问题,我们使用带data pump驱动的外部表方式,很容易实现,具体方法如下...

突突突酱
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部