简洁的想法

 找回密码
 注册
搜索
查看: 2596|回复: 7

Virtualbox

[复制链接]
发表于 2010-1-25 10:46:44 | 显示全部楼层 |阅读模式
Virtual Box 虚拟机磁盘压缩 VBox

指导思想

1. 虚拟机: 清理系统,卸载、删除系统垃圾文件

2. 虚拟机: 将磁盘数据靠“前”移动,并将剩余磁盘空间写“零”

3. 物理主机: 清除“零”字节空间,使用 VBoxManage modifyhd 工具压缩 VDI 磁盘镜像文件
Windows 虚拟机

1. 虚拟机: 删除系统垃圾文件,运行磁盘整理程序...

2. 虚拟机: 用 SDelete 工具写"零",下载地址 http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx,在命令行下执行 "sdelete -c"... 关机...

3. 物理主机: 执行 "VBoxManage modifyhd /the-path-of-VDI.vdi --compact"
Linux 虚拟机

1. 虚拟机: 清理、卸载系统垃圾文件

2. 虚拟机: 写“零”,好像 "dd if=/dev/zero of=/fillerup.zero" 方法并不是很有效,几经苦难在 官方网站找到一个很老的“终极办法” (链接)!

2.1 用一张 LiveCD (ubuntu) 启动虚拟机,使用 System - Administration - GParted 分区软件,将虚拟硬盘空间收缩到最小,应用...

2.2 在刚才腾出来的空间上建立新分区,执行 "dd if=/dev/zero of=/dev/{?}", 然后删除此分区

2.3 回到主分区,恢复它的所有空间,应用 ...  关机...

3. 物理主机: 执行 "VBoxManage modifyhd /the-path-of-VDI.vdi --compact"
测试环境

物理主机: Linux 2.6.28, Ubuntu 9.04 64-bit, VirtualBox 2.2.4

虚拟主机: Debian 5.0.0 64-bit, Windows 2003 32-bit sp2

转自:http://hi.baidu.com/xin266/blog/ ... 8eabc3c3fd78d2.html
 楼主| 发表于 2010-9-2 19:41:41 | 显示全部楼层

vmdk/vhd 转 vdi(vmdk/vhd to vdi)、vdi 转 vmdk/vhd(vdi to vmdk/vhd)一步完成

最近由于要把 vmdk 转成 vdi 格式(本来想继续用 VMware 的,但由于 VMware 的无缝模式没有 VirtualBox 好,且内存、CPU 占有太高,所以又换回了 VirtualBox。换来换去,换了好几次了,我是不折腾会死星人( ̄▽ ̄")),想上网找一下有没有比上一篇文章提到的更简单的方法。搜索了一下,除了上一篇写的要用到 qemu 软件进行两次转换外,还真让我找到了一个一步转换完成的方法。

原来新版的 VirtualBox 附带的 VBoxManage 已经可以实现转换虚拟磁盘格式的功能,不再需要借助 qemu 等第三方软件(將vmdk/vhd轉換為VDI格式)。

把 vmdk 转成 vdi 的命令是:
  1. VBoxManage clonehd source.vmdk target.vdi --format VDI
复制代码
实例操作
  1. "E:\Program Files\VirtualBox\VBoxManage.exe" clonehd "D:\Backup\我的文档\Virtual Machines\Ubuntu\Ubuntu.vmdk" "D:\Backup\我的文档\Virtual Machines\Ubuntu\Ubuntu.vdi" --format VDI
复制代码
  1. "E:\Program Files\VirtualBox\VBoxManage.exe" clonehd Ubuntu.vmdk Ubuntu.vdi --format VDI
复制代码
好了,转换完了。

同理,把 vdi 转成 vmdk 的命令是:
  1. VBoxManage clonehd source.vdi target.vmdk --format VMDK
复制代码
vhd 格式的转换也是同一个道理,只需改一下相关的参数即可。

转自:http://hi.baidu.com/mozillazg/bl ... 6a14c2c2fd787a.html
 楼主| 发表于 2010-12-23 23:30:02 | 显示全部楼层

VirtualBox虚拟机连快照带设置全部迁移

要将VirtualBox的虚拟机连快照带设置全部迁移到另一台机器上,并不是一件轻松的事情。简单的复制磁盘文件并不能解决问题,网上有人介绍采用将所有快照都取消后,复制磁盘文件,但我们现在是要求带着快照走,现在就来试一下吧。
第一步:找到虚拟机的定义文件,一般为虚拟机名.xml,我们假设是A.xml,然后用Notepad++或其它能够编辑XML文件的编辑器打开它,不建议使用记事本,它会把格式显示的一团糟。
第二步:修改虚拟机文件与路径相关的信息,检查以下内容:
1.DVDDrive小节,如果有,删除其中的映像,除非另一个机器上存在相同的映像,基本上这是不可能的。如我的机器上有这一段:
<DVDDrive passthrough="false">
        <Image uuid="{b00a02e0-f51e-4991-9a4b-136939dd6258}"/>
      </DVDDrive>
更改后为
<DVDDrive passthrough="false"/>
2.Network小节,检查网络类型是否是Internal或NAT,如果不是,改正它或者直接在虚拟机的设置页中更改为二者之一。 HostInterface是目标主机上未必存在,因此,尽量避免。
3.ShareFolders小节,去除共享文件夹,同样的,由于路径的原因,您的共享文件夹在目标机器上也未必存在,改后样子如下:
<SharedFolders/>
4.保存XML文件。
5.找到%USERPROFILE%\.Virtualbox目录下的virtualbox.xml,在<MachineRegistry> 小节中,找到你要迁移的虚拟机对应的MachineEntry行,复制出来。在<HardDisks>小节中,找到你要迁移的虚拟机对应的硬盘的映像文件项目,同样复制出来。
6.复制整个虚拟机磁盘映像文件目录(含子目录及虚拟机对应的XML文件)。
到了这一步,准备工作就算完成了,现在看看到目标机器上怎么做。
首先,安装同版本的VirtualBox并启动一次,不同版本没试过。
然后,退出VirtualBox并且打开%USERPROFILE%\.Virtualbox目录下的virtualbox.xml。在<MachineRegistry>小节中,找到你要迁移的虚拟机对应的MachineEntry行,将上面第5步对应的内容复制回去,注意其中src对应的目录要和你一会复制的磁盘上的虚拟机定义文件目录一致。在<HardDisks>小节中,同样处理,一样要注意目录。
最后,复制所有的文件到目标目录,完事后启动VirtualBox,看看快照一切都在,继续吧。

转自:http://www.virtualboxchina.org/f ... ewthread&tid=74
 楼主| 发表于 2011-3-7 21:11:11 | 显示全部楼层
在远程FreeBSD服务器上命令行安装运行虚拟Windows

在过去的几年中 FreeBSD 并没有任何可用的并被官方支持的虚拟化解决方案。只有使用利用 Linux 二进制兼容层运行的 VMware3 这个老得牙齿已经掉关开始牙龈的版本。在 FreeBSD 7.2 发布不久, Sun 的开源版本 (Open Source Edition OSE) 的 VirtualBox 作为一个 FreeBSD 原生的程序出现在了 Ports Collection 中。VirtualBox 是一个开发非常活跃的开源虚拟化软件, 并且可在大部份的操作系统上使用, 包括 Windows, Mac OS, Linux 和 FreeBSD。同样也能把 Windows 或 UNIX 作为客户系统运行。
下面我们就来安装VirtualBox并在它下面运行一个Windows2003.而这些操作,是在一个远程的没有X图形界面的FreeBSD系统上进行的。

首先升级Ports中的VirtualBox到3.1.2版本(本文发表的时候VirtualBox官方已有3.1.4版,你update到的可能已经是3.1.4)

# portsnap fetch update

编译VirtualBox,
# cd /usr/ports/emulators/virtualbox-ose-kmod && make
# cd ../virtualbox-ose && make

如果编译成功,那么卸除原先安装的VirtualBox(如果有的话)
# pkg_delete virtualbox-\*

安装VirtualBox
# cd ../virtualbox-ose-kmod && make install clean
# cd ../virtualbox-ose && make install clean

配置VirtualBox
在/boot/loader.conf里添加
vboxdrv_load="YES"
在/etc/rc.conf里添加
vboxnet_enable="YES"

重启系统
#shutdown -r now

(!!!如果vboxdrv加载失败,说明FreeBSD内核需要升级到8.0或以上)

创建Windows的虚拟机
$ VBoxManage createvm --name Win2003 --register

创建虚拟机所需的磁盘空间
$ VBoxManage createhd --filename Win2003.vdi --size 10000 --variant Standard

创建虚拟机所需的存储控制器以及虚拟CD/DVD 设备
$ VBoxManage storagectl Win2003 --name "IDE Controller" --add ide --controller PIIX4

添加磁盘设备到虚拟机
$ VBoxManage storageattach Win2003 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Win2003.vdi

挂载需要安装系统的ISO 文件
$ VBoxManage storageattach Win2003 --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /home/netdemon/test/win2003setupdics.iso

配置虚拟机网卡(桥接模式):
$ VBoxManage modifyvm Win2003 --nic1 bridged --cableconnected1 on --bridgeadapter1 fxp0(这是你实际的物理网卡在ifconfig的名称)

好了,所有的配置已经完成,可以启动虚拟机了
$ VBoxManage startvm Win2003 --type headless

那么,启动了吗?显然我们不可能指望在一个SSH的客户端上看到图形界面。
$ ps -aux
如果你看到有VBox*的进程在运行,那么恭喜你,这说明你的配置是没有问题的,如果没有,那么
$ cat /你的用户目录/.VirtualBox/Machines/Win2003/Logs/VBox.log
看看配置上哪里错了。根据你的实际情况做出修改,直到可以看到VBox*的进程。

但就算虚拟机正确运行了,虚拟机上的Win2003现在肯定也还没发正常运行,为什么呢?不还没有安装么,那来的Win2003系统?在当前的条件下,win2003setupdics.iso这个安装光盘成了成败的关键,这必须是一个事先做好的无人守护并根据你的实际条件配置好网络环境的安装光盘才行。如果这样,在你启动虚拟机之后,它将自动的安装Win2003.之后你就可以通过远程桌面访问这个Win2003了,这也就是为什么选择2003的原因,因为它默认开放了3389。如何做一个这样的光盘不是本文的讨论范围,网上有很多这方面的相关资料。作为变通,我们也可以在本地机器比如WinXP上安装VirtualBox,并在图形界面下安装并配置好虚拟的Win2003,然后把这个装好的win2003.vdi虚拟硬盘文件上传覆盖FreeBSD上的那个。

到此,虚拟的Windows2003已经完全可以正常工作了,通过3389连接,你绝对感觉不到你操作的竟然是虚拟机。这文章,就是在这虚拟的Win2003下重新编辑的。在此之前,我在这上装了个QQ,并在一个群里勾引了一个小女孩,罪过啊罪过....

PS:
如果你没有留意到创建虚拟机之前的命令提示符是#而创建虚拟机之后的都是$。那说明你真的不够聪明。 :) 没错,这虚拟机是不需要root权限就能运行的,这就意味着就算有比你聪明的黑客把你这Win2003黑了,把你硬盘格式化了,接着再把你BIOS都毁了,你还是完好无损的,所有比你聪明的行为都变成了愚蠢行为。

作者:NetDemon
email:netdemon@20cn.net
本文版权属20CN网络安全小组所有,允许转载,但需保持文章的完整性并注明出处
转自:http://www.20cn.net/ns/wz/sys/data/20100215042851.htm
 楼主| 发表于 2011-3-9 12:48:28 | 显示全部楼层

VirtualBox 下安装 Ubuntu 设置 共享文件夹

现在网上的文章大半都差不多是采集的了,遇到差一点的采集器,斜线空格没有处理好,文章就面目全非了,就拿VirtualBox为Ubuntu系统配置共享文件夹来说,居然大部分的文章都写着这一条命令:
  1. cd /cdromsudo ./VboxLinuxAdditions.run
复制代码
还真有人抱怨这条命令不能运行的,其实加个回车就好了
  1. cd /cdrom
  2. sudo ./VboxLinuxAdditions.run
复制代码
设置共享文件夹也很简单,比如把Windows下的Projects共享成/home/user/Share:
  1. cd /home/user
  2. sudo mount -t vboxsf Projects Share
复制代码
假如想自动挂载,可以在/etc/fstab中添加一项
  1. Projects /home/user/Share vboxsf rw,gid=100,uid=1000,auto 0 0
复制代码
 楼主| 发表于 2011-5-6 09:03:50 | 显示全部楼层

转移虚拟机后ubuntu network available SIOCSIFADDR

After cloning a virtual machine running Ubuntu Server 10.04 found that it didn’t have any network available.

Restarting networking gave:
sudo /etc/init.d/networking restart
  1. * Reconfiguring network interfaces... eth0: ERROR

  2. while getting interface flags:
  3. No such device SIOCSIFADDR: No such device eth0: ERROR

  4. while getting interface flags:
  5. No such device SIOCSIFNETMASK: No such device SIOCSIFBRDADDR: No such device eth0: ERROR

  6. while getting interface flags:
  7. No such device eth0: ERROR while getting interface flags: No such device Failed to bring up eth0.
复制代码
The problem lies in the fact that ethernet MAC addresses are cached.
You need to remove a file to clear the cached value:

sudo rm /etc/udev/rules.d/70-persistent-net.rules

After a restart of your server you should have networking back again.
 楼主| 发表于 2011-5-6 12:34:53 | 显示全部楼层
一般的VirtualBox用户可能不知道那种潜伏在命令行界面(CLI)下的强大威力。

最明显的问题是“当你有一个非常棒的GUI时候为什么还要用命令行工作?”,答案就是其威力。自从1995年以来,有整整一代的计算机用户认为计算机就是一个窗口和图形的大集合,不过的确也八九不离十。你可能会问为什么是1995?因为Windows 95的引入将人们带入了一个图形化的新时代。那个八月后的不久,FVWM95发布,这就是Linux对于Windows 95浏览器界面的回答。对我来说,似乎使用命令行的旧日好时光已经永远里去了。没有人会想再用DOS,当然也不会对Linux感到兴奋。命令行在 Linux环境中依旧存在,并且存在的很好。同样在Windows王国中命令行也还是有的。同时,现在的Macs是基于Unix的,时不时会扬起非GUI 的灰尘。

你可能会感到惊奇的是潜伏在VirtuaBox 漂亮的GUI,多彩的图形,显眼的设置页和众多的下拉列表下面的是神秘世界竟然是命令行。 这个黑暗玩过会向那些敢于进入这个陈旧的墓穴中的人展示它的真正威力。当你探索过VirtualBox的CLI之后,你可能会觉得GUI只不过是一个蹩脚的窗口装饰(一语双关),专为那些忽略真正的程序下面那些不受欢迎的黑色矩形的路过者而创造。

命令行的威力

我提到过的矩形盒子指的是终端窗口。命令行提供了强大的自动化操作。使用Perl,shell或者其它语言的脚本是我所熟悉的*nix系统下的自动化方法。系统调度守护进程(cron)可以帮助你在合适的时候启动这些脚本。通过自动化所显示的威力需要系统管理员在他们的技能储备中具有编写脚本的能力。即将展示给你的每种系统管理员操作都要求你懂得shell脚本和至少另外一种下面所列出的解释型语言。

对于虚拟化,命令行让你在不使用 GUI的情况下快速创建虚拟磁盘,增加新的网卡,启动虚拟机和创建新的虚拟机。脚本自动化还能让你在无需干预的情况下计划一个虚拟机的启动和关闭。进一步说,如果你是一个非常聪明的脚本程序员,你可以创建一个强大的脚本,给你显示一系列的提示符来创建虚拟机、启动、安装或者升级而只需要很少的干预。如果你是那种不想动手的类型并且有一系列的规则用途的虚拟机,你可以为每一种类型的虚拟机安装一个脚本集合(想象成模板),然后在只需要一秒钟的时间内创建你的虚拟机。

让我们来看看VirtualBox中命令行功能的简单和优雅。

安装与基础

在VirtualBox Linux下载区根据你的系统下载二进制版本。如果你是个纯粹主义者,也可以使用源代码。我的选择 (RHEL5/CentOS5 rpm)将所有的东西安装在下面几个地方。

    * 二进制文件 - /usr/lib/virtualbox ,也是 /usr/bin的链接
    * 库文件 - /usr/lib/virtualbox
    * 源代码 - /usr/share/virtualbox
    * 客户机附加品 (ISO) - /usr/share/virtualbox

如果你的发行版没有最新的(本文写作时是3.1.2)VirtualBox可用,可以使用一种接近的的可下载软件包或者是源代码。一旦 VirtualBox安装好,你就已经称为一个正式的用户了。

虚拟机创建与配置

使用命令行最难的部分是需要知道从哪里启动。GUI通过一个可用的新建按钮使之变得简单。用命令行揭露这个秘密则有一点点繁琐。为了创建并安装一个新的虚拟机,首先打开终端窗口或者ssh到安装VirtualBox的 Linux主机,然后输入下面的命令。

$ /usr/bin/VBoxManage createvm --name Debian5 –register

这会创建一个名叫Debian5的虚拟机并在VirtualBox中注册。创建的虚拟机是一个XML文件,位于你的主目录: ~/.VirtualBox/Machines/Debian5/Debian5.xml.

为你的虚拟机创建一个虚拟磁盘:

$ /usr/bin/VBoxManage createhd --filename Debian5.vdi --size 4000 --variant Fixed

你创建的虚拟磁盘名叫 Debian5.vdi, 4GB (4,000MB) 的固定大小 (非动态增长).

虚拟磁盘创建在这里: ~/.VirtualBox/HardDisks/Debian.vdi

创建一个存储器控制器,用来连接到虚拟磁盘和虚拟CD/DVD光驱。

$ /usr/bin/VBoxManage storagectl Debian5 --name "IDE Controller" --add ide --controller PIIX4

该命令创建了一个名叫 “IDE Controller”的IDE控制器,控制器类型为PIIX4.

现在,将你的虚拟磁盘连接到虚拟机:

$ /usr/bin/VBoxManage storageattach Debian5 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Debian5.vdi

将一个ISO镜像连接上去,用于安装你需要的操作系统:

$ /usr/bin/VBoxManage storageattach Debian5 --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /ISO/debian-40r3-i386-netinst.iso

安装网络:

$ /usr/bin/VBoxManage modifyvm Debian5 --nic1 bridged --cableconnected1 on --bridgeadapter1 eth0

这会创建一个有线桥接网卡,启动时自动连接,Linux系统会将其视为eth0.

启动虚拟机:

$ /usr/bin/VBoxManage startvm Debian5

如果一切如计划,你会看到如下的消息,然后你的虚拟机窗口将开始安装。

Waiting for the remote session to open...

Remote session has been successfully opened.

如你所见,用命令行创建并安装虚拟机将你从鼠标点击的疯狂中解放出来,并且为你开放了一个虚拟机自动化的新世界。其实,我们这里才刚开始接触到皮毛而已, 但是,这篇简单的介绍很有希望激发你的好奇心,并且让你给你一个学习探索命令行强大威力的机会。


原文链接:
http://www.linuxeden.com/html/softuse/20100123/70251.html
http://www.linux-mag.com/id/7673
 楼主| 发表于 2012-6-5 11:45:29 | 显示全部楼层
调整分辨率
VBoxManage setextradata global GUI/MaxGuestResolution 1280,1024
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|Archiver|简洁的想法

GMT+1, 2021-2-28 14:31

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表