免费虚拟机软件VirtualBox快速入门

2023-11-01

目的

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。

虚拟机是在一些开发测试工作中常常需要用到的功能,常见的虚拟机软件主要有两款 VMware 和 VirtualBox 。VMware是商付费软件,而VirtualBox是免费软件,对于一般用用的话VirtualBox基本可以应付大多数情况了。这篇文章就讲讲VirtualBox入门使用相关内容。

快速入门

下载与安装

VirtualBox官网地址如下:
https://www.virtualbox.org/
你可以在Downloads中找到合适自己当前电脑系统版本的软件安装包下载,下载完成后默认安装即可。
在这里插入图片描述
如果需要用到USB等功能的话可以在下载VirtualBox软件安装包的同时下载下面的 VirtualBox Extension Pack ,注意扩展包和本体软件版本保持一致。

Support for USB 2.0 and USB 3.0 devices, VirtualBox RDP, disk encryption, NVMe and PXE boot for Intel cards

新建虚拟机

VirtualBox中新建虚拟很简单,确定好虚拟机名称和要安装的操作系统,然后分配内存,选择虚拟硬盘就行。内存大小可以随便选,之后使用中要是不够可以更改。虚拟硬盘最好选择动态分配,大小可以选大点。
在这里插入图片描述

启动虚拟机

第一次启动虚拟机前先要准备一个要安装的操作系统的安装光盘镜像,这里我使用Ubuntu系统,在其官网 https://ubuntu.com/ Download 标签页中下载了 Ubuntu Desktop 最新的LTS版本系统安装镜像文件。接下来就可以初次启动虚拟机了:
在这里插入图片描述
初次启动虚拟机基本上就相当于新电脑装系统,挺慢的,对于虚拟机来说默认情况下就更慢了,要耐心。有几个方面可以提升系统安装速度(对于虚拟机运行速度来说也一样),首先使用固态硬盘;然后在启动前选择创建的虚拟机,打开设置。设置的系统标签页中将内存和处理器数量设置大一些,显示标签页中将显存开大些。处理器数量和内存通常可以开到电脑实际资源的一半左右,再大了可能反而会降低性能。 需要注意的是处理器数量可能会运行稳定性,最好选择双数的,比如2、4、8这样的。

修改分辨率

对于安装桌面系统的虚拟机来说默认情况下分辨率可能有些低,更改分辨率需要在虚拟机中安装VirtualBox的增强功能,可从界面的 设备 > 安装增强功能 进行安装。安装时相关的内容相当于一张光盘插入到虚拟机中:
在这里插入图片描述
对于Ubuntu、Debian而言默认情况下可能因为缺乏软件编译安装环境导致安装失败,可以先在Shell中使用 sudo apt install build-essential 安装相关环境:
在这里插入图片描述
装好环境后再运行 VBoxlinuxAdditions.run 即可完成安装:
在这里插入图片描述
安装完成后重启虚拟机,然后就可以从界面的 视图 > 虚拟显示器 调整分辨率了。
在这里插入图片描述

使用USB设备

使用USB设备首先需要安装前面 下载与安装 中所说的 VirtualBox Extension Pack
在这里插入图片描述
然后在虚拟机关机的情况下在 设置 > USB设备 中启用USB控制器,这个USB控制器需要根据你电脑和设备等来选择,现在来说常见的都是3.0,如果后面过程中有问题的话可以再换2.0试试。完成设置后就可以启动虚拟机从界面的 设备 > USB 中选择已经插到电脑上的USB设备了:
在这里插入图片描述
上面打开了我的U盘。(我的U盘刚好取名叫UBUNTU )

常用设置

VirtualBox中很多实用的功能都是需要安装了前面的 增强功能VirtualBox Extension Pack 才能实用的,所以下面的内容都默认以安装了上述两项为基础进行介绍。

显示菜单

VirtualBox的虚拟机再在有些模式下有可能会隐藏菜单栏,这个时候默认情况下只要按下 右边的Ctrl + Home 就可以显示菜单。

共享粘贴板和文件拖放

虚拟机可以在 设置 > 常规 > 高级 中启用共享粘贴板和文件拖放,这样就可以在原生系统和虚拟机将方便的进行数据交换了:
在这里插入图片描述
这些功能在虚拟机桌面上操作可能不太好使,在文件夹中就没问题了。

性能调整

虚拟机性能主要和分配到的内存、处理器数量、显存这些有关,直接在设置中调整即可:
在这里插入图片描述

网络调整

默认情况下VirtualBox建立的虚拟机网络处于 网络地址转换(NAT) 模式,这个模式下虚拟机可以访问主机所能访问的各种网络,但主机和外部的设备没法通过IP访问虚拟机:
在这里插入图片描述
虚拟机可以在 设置 > 网络 中把网络模式改成 桥接网卡 模式那么虚拟机就会接入到主机所在的局域网,成为和主机同级的一台设备,可以通过IP相互访问,可以访问外网:
在这里插入图片描述
上面演示中我的主机因为防火墙权限问题无法被ping通,所以虚拟机中用浏览器访问网页的形式证明可以访问外网。其实最关键的是可以看到主机和虚拟机在 桥接网卡 模式下已经处于同一网段了。

共享文件夹

虚拟机可以在 设置 > 共享文件夹 中设置共享文件夹,这个功能可以方便主机和虚拟机间文件传递:
在这里插入图片描述
VirtualBox建立的共享文件夹数据vboxsf用户组,需要将自己添加到改组才能访问;使用 sudo usermod -a -G vboxsf username 命令将自己添加到vboxsf用户组。

固定分配的共享文件夹不受虚拟机开关机影响,会一直存在于主机中;而临时分配的共享文件夹只有在虚拟机开机状态下才能设置,虚拟机关机后将自动删除。

快照

VirtualBox带有快照功能,可以方便的创建虚拟机的快照,方便以后系统回退到某个快照建立时的状态:
在这里插入图片描述

导出导入

VirtualBox支持虚拟导出和导入功能,方便在不同设备间迁移:
在这里插入图片描述

总结

VirtualBox入门使用总体来说还是非常简单的,更多使用说明可以参考官网中 Documentation > End-user docs 相关内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

免费虚拟机软件VirtualBox快速入门 的相关文章

  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • Gtk-ERROR **:检测到 GTK+ 2.x 符号

    我正在使用 gcc 编译我的 c 应用程序 并使用以下标志 gcc evis c pkg config cflags libs gtk 2 0 libs clutter gtk 1 0 libs gthread 2 0 Wall o evi
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 从 systemd bash 内联脚本创建 filename_$(date %Y-%m-%d)

    我正在尝试执行systemd计时器并希望将执行脚本的输出保存在每个日期的文件中 这是我的ExecStart脚本中的 service file ExecStart bin bash c echo date Y m d gt gt home u
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • X11 模式对话框

    如何使用 Xlib 在 X11 中创建模式对话框 模态对话框是一个位于应用程序其他窗口之上的窗口 就像瞬态窗口一样 并且拒绝将焦点给予应用程序的其他窗口 在 Windows 中 当试图从模态窗口夺取焦点时 模态也会通过闪 烁模态窗口的标题栏
  • 无法在 64 位 Linux 上从汇编 (yasm) 代码调用 C 标准库函数

    我有一个函数foo以汇编语言编写 并在 Linux Ubuntu 64 位上使用 yasm 和 GCC 编译 它只是使用以下命令将消息打印到标准输出puts 如下所示 bits 64 extern puts global foo secti
  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6

随机推荐