尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

VirtualBox 装到 D 盘完整指南:软件与虚拟机文件双迁移

VirtualBox 装到 D 盘完整指南:软件与虚拟机文件双迁移 很多人问我 VirtualBox 怎么装到 D 盘我统一回复一句这事拆开其实有两层一层是 VirtualBox 软件本体装到 D 盘另一层是你创建的虚拟机文件VDI 磁盘、快照、配置也放到 D 盘。很多人只改第一步结果虚拟电脑默认存储位置还在 C 盘用几天 C 盘又红了等于白折腾。这篇就把两条线都讲透从新装到迁移、从 GUI 操作到命令行切盘符再附上我踩过的几个坑基本可以当一份图解教程的替代品来用。操作之前先对一下背景我给公司配的办公本是 256G 固态系统加常用软件就占掉大半VirtualBox 里还得塞 Ubuntu、CentOS、Windows Server 2019 好几台虚拟机。每台虚拟机动辄 20G~40G系统盘根本扛不住。把 VirtualBox 安排到 D 盘之后问题一次性解决。这篇适合 C 盘吃紧、刚接触虚拟机、以及想批量迁移现有虚拟机的新手和老手思路和命令通用不挑 VirtualBox 版本。1. 动手之前先搞懂VirtualBox 到底把什么东西写进 C 盘1.1 默认路径的两个“坑位”必须分清很多人以为安装 VirtualBox 就是改个安装目录那么简单实际上这个软件有两层存储缺一不可。第一层是程序本体默认装在C:\Program Files\Oracle\VirtualBox这里面装的是主程序、驱动、扩展包管理工具。第二层是“虚拟电脑”的配置和磁盘文件默认放在C:\Users\你的用户名\VirtualBox VMs。注意这个位置才是真正的硬盘空间杀手。你创建一个 Ubuntu 虚拟机光磁盘文件就 10G 起步快照和日志还会继续涨。如果只把安装目录改到 D 盘而虚拟机文件还是留在默认路径那等于没解决问题。所以我的建议是安装时两个路径都要手动指定安装完后再打开全局设置核对一遍“默认虚拟电脑位置”这一步能帮你省掉后面 80% 的迁移麻烦。1.2 弄清 VirtualBox 的目录结构后面不会两眼一抹黑安装完之后你会在安装目录里看到一堆 exe 和 dll其中VBoxManage.exe是命令行管理工具后面批量迁移虚拟机、改路径都得靠它。而用户目录下的VirtualBox VMs文件夹则是按虚拟机名分文件夹存放一个典型的虚拟机目录长这样Ubuntu.vbox虚拟机配置文件相当于这台虚拟机的“硬件说明书”Ubuntu.vdi虚拟硬盘真正占用大量空间的文件Logs运行日志出问题时排查用Snapshots快照文件在你创建快照后出现明白这些文件的作用之后后面讲迁移就很好理解了所谓换盘本质上就是把整个虚拟机目录搬走再告诉 VirtualBox 新的配置文件在哪里。2. VirtualBox 本体安装到 D 盘新装和迁移两条路线2.1 新装用户安装向导里一次性把路径改干净如果你还没装 VirtualBox那就简单了。去官网下载 Windows 版本后双击安装包安装向导会让你选安装位置。默认是 C 盘这里直接点“浏览”改成D:\Program Files\Oracle\VirtualBox之类的路径。还有一个细节容易被忽略安装到后面会有个“VirtualBox 网络功能”的提示Windows 下会问你“是否信任 Oracle 的设备软件安装”这个必须点是不然后面虚拟网卡会莫名其妙消失。安装完成后先别着急创建虚拟机。打开 VirtualBox 主界面按快捷键CtrlG或者走“管理 - 全局设置 - 常规”把“默认虚拟电脑位置”改成D:\VirtualBox VMs。这里注意不能在中文路径下创建虚拟机VirtualBox 对非英文字符支持不好我遇到过中文用户名导致虚拟机无法启动的案例后面再说。改完这两处你在 D 盘上的存储链路就已经通了程序在 D 盘虚拟机文件也默认在 D 盘C 盘以后只会有少量缓存文件完全在可控范围内。2.2 已装用户卸载重装比“移动目录”更靠谱已经装在 C 盘的用户网上很多教程让你直接把Program Files里的 VirtualBox 文件夹剪切到 D 盘。我劝你别这么干因为主程序涉及系统服务、驱动注册、Path 环境变量直接切文件会导致“无法在此设备上加载驱动程序”之类的报错。正确做法分三步。第一步卸载旧版 VirtualBox。去“控制面板 - 程序和功能”卸载卸载过程中如果提示是否删除虚拟网卡驱动建议一并删除避免残余配置和新的安装冲突。第二步删除旧的 VirtualBox 配置残留主要是C:\Users\你的用户名\.VirtualBox目录这个目录里装了全局配置和网卡信息不删干净容易和新装的互相打架。第三步按新装的方式安装到 D 盘再重新设置“默认虚拟电脑位置”。有人问这样重装之后原来在 C 盘的虚拟机还能用吗能用。卸载软件不会动C:\Users\你的用户名\VirtualBox VMs里的虚拟机文件重新安装后将全局默认路径改到 D 盘再把原来的虚拟机通过“控制 - 注册”添加回来即可。要是你希望虚拟机文件本身也挪到 D 盘按下一节的流程操作。2.3 安装小技巧用命令行指定静默安装路径如果你需要给多台电脑统一配置或者手头是公司批量发的机器可以用命令行免交互安装。VirtualBox 支持 MSI 安装参数把安装路径和功能项提前指定好省得每台机器都点一遍向导。VirtualBox-7.0.18-162988-Win.exe --msipackage更常用的方式是用msiexec不过 VirtualBox 官方给的是 exe 安装包我在批量部署时一般先解包再调 MSI稍微有点绕。个人使用场景下手动点安装向导最保险因为能看到每一步的驱动安装提示。3. 虚拟机文件全部挪到 D 盘这步才是大头3.1 创建新虚拟机先把磁盘位置指到 D 盘很多人新建虚拟机时三级标题都不看一路点“下一步”结果虚拟硬盘建到了 C 盘。等你回头想挪又要多折腾一遍。正确做法是新建虚拟机向导走到“虚拟硬盘”一页时勾选“立即创建虚拟硬盘”然后点“创建”旁的文件夹图标手动选择D:\VirtualBox VMs\虚拟机名\作为磁盘位置。顺便说一下硬件的分配逻辑这也是新手容易翻车的地方内存按物理内存的 1/4 到 1/3 给别贪多你主机还得留内存跑 WindowsCPU 核心给 2 到 4 个即可虚拟化技术VT-x/AMD-V要在主板 BIOS 里提前打开否则 Ubuntu 启动时会卡在“KVM 不可用”或者性能极差。3.2 现有虚拟机整体迁移到 D 盘GUI 移动和命令行移动如果你已经建好虚拟机文件躺在 C 盘要挪到 D 盘直接在文件管理器里剪切文件夹是不行的。VirtualBox 的配置里记录的是绝对路径你移走了它找不到启动时会报“找不到虚拟硬盘”之类的错误。正确姿势是先让虚拟机处于“已保存”或“已关机”状态。然后在主界面右键虚拟机 - “移动”VirtualBox 会弹出一个目标路径选择窗口把它指到D:\VirtualBox VMs\虚拟机名\即可。这一步背后做的事有两件一是把整个虚拟机目录原样复制到目标位置二是自动更新.vbox配置里的路径引用不需要手动改配置很稳。如果你有命令行迁移的需求也可以用VBoxManage完成。先把虚拟机关机再用VBoxManage unregistervm取消注册然后移动文件夹最后用VBoxManage registervm重新注册。注意unregistervm加--delete参数会把磁盘文件也删了不要乱加。3.3 cmd 怎么切换到 D 盘文件批处理和 Puppet 场景常用说个题外话很多人在文章评论里搜“cmd 怎么切换到 d 盘文件”其实这是个很小但很关键的命令行基本功。在 cmd 里切换盘符不是用cd D:\就能搞定的得先敲D:切换到 D 盘再用cd D:\VirtualBox VMs进入目录。如果你想一条命令搞定用cd /d D:\VirtualBox VMs/d参数的意思就是“切换盘符并进入指定目录”。这个命令在写批处理脚本、批量处理虚拟机文件时非常有用。比如我要写一个脚本把多台虚拟机的目录从 C 盘批量搬迁到 D 盘第一行就靠它跳转到目标位置然后循环执行路径拷贝和registervm。批量操作时建议先用VBoxManage list vms列出虚拟机名和当前路径确认无误再动手避免把宿主机弄乱。4. VirtualBox 装 D 盘后常见报错与排查技巧实录4.1 supr3hardenedwinrespawn 和 VERR_INVALID_NAME(-104)这个报错很多人在 VirtualBox 论坛里搜过错误关键词是supr3hardenedwinrespawn what: 5 VERR_INVALID_NAME (-104)它的典型场景是你从某处下载了一台虚拟机或者手动把别人的.vbox文件复制到自己的机器上然后启动时直接报“无效文件路径名”。原因之一是 .vbox 配置文件里的路径指向了不存在的目录或者路径含中文、空格等特殊字符。比如D:\虚拟机\Ubuntu\Ubuntu.vbox这种路径VirtualBox 在 Windows 上解析时经常翻车。解决办法把整个路径改成纯英文比如D:\VMs\Ubuntu\Ubuntu.vbox然后打开 .vbox 文件检查里面的location字段是否和实际文件路径一致。还有一种情况是权限问题。如果你的虚拟机放在D:\Program Files\这类受 UAC 保护的目录下VirtualBox 没法读取也会报同样的错。我装 D 盘的习惯是把虚拟机统一放到D:\VMs\这类业务目录而不是Program Files系统目录恰好避开这种权限坑。4.2 全局设置里没有虚拟网卡选项有不少装完 VirtualBox 的人发现“全局设置 - 网络”里没有 Host-Only 虚拟网卡或者创建虚拟机时网络模式只有 NAT 和桥接少了仅主机Host-Only模式。这个问题通常不是安装目录在 D 盘导致的而是安装时 VirtualBox 网络驱动没装成功或者系统的设备安装权限把驱动拦截了。解决办法是手动把驱动补上。打开 VirtualBox 安装目录比如D:\Program Files\Oracle\VirtualBox找到drivers文件夹进入network子目录里面有个netadp6的安装程序。右键以管理员身份运行或者用设备管理器手动添加过时硬件的方式安装。这个驱动是虚拟机的虚拟网卡装好后在全局设置里就能看到VirtualBox Host-Only Ethernet Adapter。另外提醒一句Windows 安全中心如果开了“内核隔离”里的“内存完整性”VirtualBox 驱动加载也会受影响。遇到驱动装不上、网卡消失的情况先看看是否是这个设置拦截临时关掉测试一下确认是它的锅再决定后续方案。4.3 虚拟机无法启动报 E_FAIL (0x80004005)这个 0x80004005 错误属于“接口调用失败”的泛化报错原因很杂。我遇到得最多的是 VirtualBox 升级后扩展包Extension Pack没跟着升级导致 USB 设备、远程桌面这些功能初始化失败。解决方案是检查扩展包版本主程序和扩展包版本号必须完全一致。VBoxManage list extpacks如果版本不一致把旧扩展包卸载然后装对应版本。路径选择 D 盘的话扩展包默认也会装在安装目录下问题不大。另外D:\VMs所在磁盘满了也会触发 0x80004005虚拟硬盘扩张失败等同于虚拟机起不来这个道理和手机内存满了打不开 App 一个意思。4.4 客户机无法拖拽文件、无法粘贴剪贴板虚拟机里装了增强功能Guest Additions但拖拽还是灰色十有八九是设置没开。打开虚拟机的“设置 - 常规 - 高级”把“共享粘贴板”和“拖放”都改成“双向”然后重启客户机。另外一个很容易被忽略的点是VirtualBox 7 以后的增强功能不支持老旧的 Windows 7 客户机拖拽可能会失效。这种情况下我一般建议用共享文件夹替代拖拽在虚拟机设置里指定一个D:\share目录作为共享文件夹然后客户机里挂载它大文件互传照样顺滑。挂载命令是sudo mount -t vboxsf share /mnt/share这个方案比拖拽稳得多而且不会因为 D 盘文件路径带空格而出错。4.5 D 盘有空间但无法分新分区这个背景和 VirtualBox 本身无关但很多人在装 D 盘虚拟机时牵出来了D 盘有空间但“压缩卷”按钮是灰的。原因一般是 D 盘卷末尾有不可移动的系统文件比如虚拟内存页面文件、休眠文件、或系统保护还原点占住了尾部空间。解决办法是临时把虚拟内存移到 C 盘关闭休眠关掉系统保护然后在磁盘管理里压缩卷最后再调回去。虽然操作偏系统层面但和我把虚拟机放 D 盘的计划直接相关——磁盘没法分区虚拟机文件存储规划就得往后靠。5. 批量迁移多台虚拟机的完整实战记录我有一次把工作机上的 5 台虚拟机全部从 C 盘挪到 D 盘最初想用 GUI 一台台点“移动”但一台 Ubuntu Server 的磁盘文件有 40G复制到一半还老担心断电。后来改用命令行反而稳得多。第一步把所有虚拟机全部关机然后导出名单VBoxManage list vms输出类似Ubuntu-22.04 {a1b2c3d4-...} CentOS-7 {e5f6a7b8-...}第二步挨个取消注册注意不带--deleteVBoxManage unregistervm Ubuntu-22.04第三步在资源管理器里把对应的C:\Users\xxx\VirtualBox VMs\Ubuntu-22.04整个文件夹剪切到D:\VMs\。第四步挨个重新注册VBoxManage registervm D:\VMs\Ubuntu-22.04\Ubuntu-22.04.vbox这里有个小技巧registervm注册后VirtualBox 会自动读取 .vbox 文件里的配置包括指向 vdi 的路径。只要 vdi 和 .vbox 在同一个目录下路径通常就是相对路径不需要额外改配置。但如果你的 .vbox 文件里写的是绝对路径注册后可能会报路径错误这时候打开 .vbox 文件把HardDisk标签里的location改成./Ubuntu-22.04.vdi即可。最后用VBoxManage startvm Ubuntu-22.04 --type headless验证启动没问题就说明迁移完成。整个流程下来一台虚拟机也就几分钟比 GUI 点鼠标省事得多。6. 关于 VirtualBox 装在 D 盘的几个常识误区6.1 软件装在 D 盘不等于虚拟机也装在 D 盘这个误区我在开头就强调过了再举例说明一下。有位同事告诉我他 VirtualBox 装在 D 盘结果 C 盘还是满了。我打开一看安装目录确实在 D 盘但VirtualBox VMs文件夹还在 C 盘里面躺着一个 60G 的 Windows Server 虚拟机。他只做了一半默认存储位置没改所以 C 盘照样被吃光。所以每次装完 VirtualBox我都要检查两个地方软件安装路径和默认虚拟电脑位置。两个都指到 D 盘才叫真正装完。6.2 VirtualBox 和 VMware 能不能共存很多人电脑里既有 VirtualBox 又有 VMware担心装 D 盘会不会冲突。实测下来两者可以在同一台机器共存但有个限制不能同时运行虚拟机因为两者都要使用 VT-x/AMD-V 硬件虚拟化功能争夺同一个资源。如果你只是日常切换使用把不用的那个完全关闭基本没问题。另外VirtualBox 的自带驱动和 VMware 的桥接驱动有时会抢占物理网卡导致虚拟网卡无法桥接上网。遇到这种问题我一般先在 VirtualBox 全局设置里把网络模式改成 NAT或者重启主机让两个软件的驱动重新排队。6.3 D 盘是机械硬盘还是固态硬盘直接影响虚拟机性能VirtualBox 安装路径和虚拟机存储路径都放在 D 盘如果你的 D 盘是一块 5400 转的机械硬盘虚拟机的磁盘读写会明显变慢。我在一块机械盘上装过 Ubuntu启动一次要五分钟进桌面后打开终端都卡顿原因是虚拟磁盘的随机读写性能被机械盘拖了后腿。如果条件允许D 盘尽量选固态硬盘在虚拟机设置里也可以勾选“固态硬盘”选项让客户机按 SSD 的方式优化磁盘访问。尤其是 Windows 10/11 客户机不勾选这个选项系统内部的碎片整理和预读取会很积极反过来造成额外的写入开销。这里给个我自己的使用经验虚拟机的虚拟磁盘建议选 VDI 格式、动态分配而不是固定大小。很多人担心动态分配性能差但现代固态硬盘上这个差异基本感知不到而动态分配的好处是磁盘文件按需增长不会一上来就占掉 D 盘几十 G。等虚拟机用到后期再考虑是否用VBoxManage clonemedium转成固定大小对性能有一定提升但对普通办公和开发环境不是必须的。7. 最后再补充两个我自己常用的技巧第一VirtualBox 的全局配置文件VirtualBox.xml放在用户目录下里面记录了全局默认路径和注册的虚拟机信息。如果你想把整套环境从一台电脑完整搬走除了复制VirtualBox VMs目录还要把这个 xml 一起拷过去。遇到“注册的虚拟机找不到”的问题也可以直接改这个文件里的路径比重新注册更快。第二安装目录在 D 盘后Windows 开机自启 VirtualBox 服务VBoxSDS是默认行为用来支持虚拟机的网络服务。如果你不想让它开机顶着可以在“服务”里把Oracle VM VirtualBox Support Driver和VirtualBox Service改成手动启动需要时再开。不过注意改成手动启动后如果你在任务计划里配了虚拟机自启就得依赖服务先启动否则虚拟机可能启动失败。这篇基本把我处理“VirtualBox 装 D 盘”这个需求时踩过的、看到过的、解决过的问题都过了一遍。核心一句话软件本体和虚拟机存储两个都要放到 D 盘才算是真的装到了 D 盘。剩下那些报错、迁移、命令行操作都是围绕这句话展开的细节。你按着这个思路动手基本不会走弯路。
返回列表