扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

VirtualBox:看这一篇就够了

01/26 14:57
1654
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在电脑世界里,有时候我们需要“再来一台电脑”, 但买硬件既费钱又占地方,这时虚拟机就成了最佳选择。

VirtualBox 作为一款免费、开源、跨平台的虚拟机软件,可以让你在一台电脑里同时运行多个操作系统:

  • 想在 Windows 上体验 Linux?它可以。
  • 想用 Windows 11 家庭版跑一台 Windows XP?它也可以。
  • 想测试新系统、试验软件、做安全隔离?它更是小菜一碟。

很多人觉得虚拟机很复杂,其实并不难——只要掌握核心步骤,你就能轻松装好系统、调好网络、共享文件夹,让虚拟机像“另一台真实电脑”一样工作。

本篇文章会带你从 安装 VirtualBox → 创建虚拟机 → 系统优化 全流程走一遍,并附上常见问题解决方案,让你少踩坑、多省心。 看完这一篇,你就能放心说:

“VirtualBox?我会了!”

一、快速开始

1. 下载与安装 VirtualBox

(1)打开官网:https://www.virtualbox.org

(2)点击 Downloads → 选择你的主机系统版本(Windows hosts / macOS hosts / Linux distributions)

(3)下载后运行安装包,一路 Next 即可(建议保持默认选项)

(4)安装完成后启动 VirtualBox

2、创建Ubuntu虚拟机

需要下载Ubuntu的IO镜像,下载地址:Index of /ubuntu-releases/

自定义账户密码、修改内存等操作,无需配置,如果电脑能够访问外网,则虚拟机无需配置,直接访问外网:

二、网络配置

1、默认网络

VirtualBox默认网络是什么模式呢?首先,虚拟机可以直接访问外网(如果物理机能连外网),且物理机的网卡看不到VirtualBox虚拟网卡(与vmware不同,vmware默认可看到两个网卡)。

那么,如果物理机有多个网卡,虚拟机使用的是哪个呢?

从上面的现象来看,能访问外网,貌似采用桥接的方式,看起来是连接外网的网卡。

那他能不能跟其他网卡交互呢?

为了弄清楚这个问题,我们打开Terminal继续看看。

(1)打不开Terminal

(2)更新软件试试也不行

(3)重启电脑也不行

(4)卸载系统自带的Terminal,装其他terminal可成功

(5)安装ifconfig指令报错

(6)切换root

(7)更新apt

(8)安装ifconfig

apt install net-tools

(9)查看网卡信息

2、Ping测试

情况是这样的,虚拟机(10.0.2.15)能够访问外网,我在物理机(有多个网卡,访问外网的IP是10.80.158.48)外面不能ping通虚拟机。这是为什么呢?

(1)虚拟机可以ping通物理机

看起来像是网卡设置有问题,我们继续。

3、查看网络设置并设置桥接模式

修改后虚拟IP自动修改,外部也能ping通了。

三、修改虚拟机交互

1、物理机与虚拟机来回拖放文件

(1)设置

(2)拖放错误

(3)重启没有解决问题

(4)安装增强功能

(5)提示当前光盘只能读

(6)整体移动一下文件到能够执行的目录

(7)安装未成功,暂不处理

(8)更新增强功能看看

更新失败。

(9)查看日志

DnD: Error: Drag and drop to guest not possible -- either the guest OS does not support this, or the Guest Additions are not installed

发现增强功能未正确安装。

先不解决吧。。。

2、物理机与虚拟机共享粘贴板

如下设置,重启后生效。这样就将物理机复制的东西粘贴到虚拟机,反之亦然。

3、设置共享文件夹

(1)初步设置

(2)验证

需要使用root进入共享文件夹,然后创建文件,可以在物理机上看到已生成文件,如果不生效,重启Ubuntu试试。

四、存储扩容

1、查看磁盘使用情况

如下所示,我的磁盘分配50G,现在快用完了,得想办法扩容!

smore@Ubuntu22:~$ df -mFilesystem     1M-blocks  Used Available Use% Mounted ontmpfs                392     2       391   1% /run/dev/sda3          49581 47031         0 100% /tmpfs               1959     0      1959   0% /dev/shmtmpfs                  5     1         5   1% /run/lock/dev/sda2            512     7       506   2% /boot/efitmpfs                392     1       392   1% /run/user/1000/dev/sr0              52    52         0 100% /media/smore/VBox_GAs_7.0.10smore@Ubuntu22:~$

2、在VirtualBox中扩展虚拟磁盘(.vdi文件)的大小​

这个步骤是告诉VirtualBox:“这个虚拟硬盘现在可以更大一些了”。

(1)完全关闭虚拟机​​:

确保您的 Ubuntu 22 虚拟机处于​​完全关闭​​状态(不仅是休眠),在管理器列表中应显示为“已关机”。

(2)打开虚拟介质管理器​​:

在VirtualBox主管理器中,选中您的“Ubuntu 22”虚拟机。点击顶部菜单的 ​​“管理”​​ (Ctrl + G),然后选择 ​​“虚拟介质管理器”​​ (Ctrl + D)。​

(3)扩展磁盘​​:

在“虚拟介质管理器”窗口中,您会看到所有已注册的虚拟硬盘文件。找到并选中名为 ​Ubuntu 22.vdi​ 的磁盘。点击右侧的 ​​“属性”​​ 选项卡(或右键点击磁盘选择“属性”)。在属性窗口中,您会看到一个 ​​“大小”​​ 的滑块和输入框。将其从当前的 ​​50 GB​​ 调整到您想要的新大小,例如 ​​80 GB​​ 或 ​​100 GB​​。点击 ​​“应用”​​ 或 ​​“确定”​​ 保存更改。

3、在Ubuntu系统内部分配新空间​

进入虚拟机,安装插件:

sudo apt updatesudo apt install gpartedsudo apt install cloud-guest-utils # 安装 growpart 工具sudo fdisk -l /dev/sda # 查看分区表,确认有未分配空间

出现以下打印:

smore@Ubuntu22:~$ sudo fdisk -l /dev/sda

GPT PMBR size mismatch (104857599 != 209715199) will be corrected by write. The backup GPT table is not on the end of the device. Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: D4950486-06FF-4E0C-AC1F-A70CCDCC9A89 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 1054719 1050624 513M EFI System /dev/sda3 1054720 104855551 103800832 49.5G Linux filesystem smore@Ubuntu22:~$

这个表明:磁盘确实已经成功扩展到了 100GB,但存在 GPT 分区表问题。

4、修复分区

# 1. 修复 GPT 分区表sudo sgdisk -e /dev/sda# 2. 扩展分区sudo growpart /dev/sda 3# 3. 扩展文件系统sudo resize2fs /dev/sda3# 4. 验证结果echo "=== 分区表信息 ==="sudo fdisk -l /dev/sdaecho "=== 磁盘使用情况 ==="df -h

五、迁移虚拟机到其他盘符

1、复制虚拟机文件

通过以下方式找到虚拟机目录,直接将整个目录复制到其他磁盘即可。

2、注册

点击注册,选择虚拟机文件加载即可,期间可能会遇到一些问题。

(1)处理uuid问题

我们已经将虚拟文件复制到其他地方,如果直接注册加载复制的文件,将会报如下错误:

未能打开位于 E:/虚拟机/virtualbox/Ubuntu 22/Ubuntu 22.vbox 的虚拟电脑。Trying to open a VM config 'E:/虚拟机/virtualbox/Ubuntu 22/Ubuntu 22.vbox' which has the same UUID as an existing virtual machine.返回 代码:E_FAIL (0X80004005)组件:MachineWrap界面:IMachine {300763af-5d6b-46e6-aa96-273eac15538a}被召者:IVirtualBox {7682d5eb-f00e-44f1-8ca2-99d08b1cd607}

解决办法:删除原虚拟机,未防万一,这里仅移出,而不是删除

(2)处理虚拟机打开失败问题

当我们继续注册时,会报路径错误:

未能打开位于 E:/虚拟机/virtualbox/Ubuntu 22/Ubuntu 22.vbox 的虚拟电脑。被召者 RC:E_INVALIDARG (0X80070057)

解决办法:修改两个文件中的路径,填入文件的绝对路径

相关推荐