修改虚拟机home目录位置并没有统一开关,关键看你改的是宿主机上虚拟机文件夹的存储路径,还是虚拟机内部Linux系统的/home挂载点,前者在VMware或VirtualBox的全局设置里改默认目录即可,后者需要挂载新磁盘或分区并迁移数据。
很多用户搜“虚拟机home目录默认路径”时会混淆两个东西:一个是虚拟机软件在宿主机上存放虚拟机文件的目录;另一个是Linux虚拟机内部的/home目录,下面分情况说清楚。
虚拟机home目录默认路径在哪?先分清两种“home”
Linux虚拟机里的/home目录到底是什么
- 在Ubuntu、CentOS、Debian等Linux虚拟机中,/home是普通用户的家目录挂载点。
- 每次创建用户时,系统默认在/home下生成对应文件夹,如/home/test。
- 这个目录通常属于根分区/的一部分,除非安装系统时单独划分了/home分区。
- 查看当前/home挂载情况,可执行:
df -h /home或lsblk。 - 输出中如果/home没有独立行,说明它挂在/分区下,空间与根分区共用。
VMware Workstation虚拟机文件默认存储位置
VMware Workstation在Windows宿主机上的默认路径一般位于:
C:Users你的用户名DocumentsVirtual Machines
在Linux宿主机上通常为:
~/vmware
这个路径不是虚拟机内部的/home,而是.vmx、.vmdk等虚拟机文件的存放位置。
VirtualBox虚拟机文件默认存储位置
VirtualBox默认机器文件夹在Windows上为:
C:Users你的用户名VirtualBox VMs
在Linux宿主机上通常为:
~/VirtualBox VMs
同样,这个目录只影响虚拟机磁盘和配置文件位置。
| 软件 | Windows默认路径 | Linux宿主机默认路径 |
|---|---|---|
| VMware Workstation | C:Users用户名DocumentsVirtual Machines | ~/vmware |
| VirtualBox | C:Users用户名VirtualBox VMs | ~/VirtualBox VMs |
虚拟机home目录空间不足怎么迁移到其他盘?
这是实际使用中最高频的问题,迁移方案同样要分两层:宿主机磁盘不够时迁移整个虚拟机文件夹;Linux虚拟机内部/home不够时扩容或迁移/home挂载点。
VMware虚拟机home目录修改教程:迁移虚拟机文件位置
如果你想把VMware虚拟机的存储从C盘挪到D盘,不要直接剪切,正确操作如下:
- 关闭虚拟机,确认没有快照正在运行。
- 在VMware Workstation主界面,点击左上角“编辑”菜单,选择“首选项”。
- 在“工作区”或“默认虚拟机位置”一栏,修改为D盘目标文件夹,如
D:VirtualMachines。 - 新建虚拟机会自动存到新位置。
- 已有虚拟机迁移:关闭后,在虚拟机列表右键选择“从磁盘中移除”,注意不是删除。
- 到原路径把整个虚拟机文件夹移动到D盘目标目录。
- 回到VMware,点击“文件”菜单,选择“打开”,浏览到D盘新位置的.vmx文件,重新注册。
- 启动虚拟机,如果出现“此虚拟机可能已被移动”的提示,选择“我已移动该虚拟机”,可保留原网络标识。
关键点:不要只移动.vmx而把.vmdk磁盘文件留在原处,否则虚拟机启动会找不到磁盘。
VirtualBox虚拟机home目录设置到其他盘的两种方式
VirtualBox修改默认存储有两条路。
图形界面改全局路径
- 打开VirtualBox主程序,进入“管理”菜单,选择“全局设定”。
- 在“常规”选项卡中找到“默认机器文件夹”,把路径改为目标盘,如
D:VirtualBoxVMs。 - 之后新建的虚拟机都会放在该目录。
命令行修改
- Windows下打开cmd或PowerShell,执行:
"C:Program FilesOracleVirtualBoxVBoxManage.exe" setproperty machinefolder "D:VirtualBoxVMs" - Linux下直接执行:
VBoxManage setproperty machinefolder /data/virtualbox - 修改后可用
VBoxManage list systemproperties | grep machinefolder确认。
已有虚拟机移动步骤:
- 关闭虚拟机后,在VirtualBox界面右键选择“移除”,再选“移除并保留文件”。
- 把整个虚拟机文件夹剪切到目标盘。
- 回到VirtualBox,点击“控制”菜单,选择“添加”,浏览到新目录下的.vbox文件完成注册。
Linux虚拟机home目录扩容与挂载新磁盘步骤
当Linux虚拟机内部/home空间不足时,多数情况下不需要重装系统,可以使用新增虚拟磁盘并挂载到/home,步骤如下:
- 关闭虚拟机,在虚拟机设置中添加一块新硬盘,大小根据需要设定。
- 启动虚拟机,执行
lsblk确认新磁盘名称,dev/sdb。 - 对新磁盘创建文件系统:
sudo mkfs.ext4 /dev/sdb
- 创建临时挂载点并挂载新盘:
sudo mkdir /mnt/newhomesudo mount /dev/sdb /mnt/newhome
- 迁移现有/home数据:
sudo rsync -aXS /home/ /mnt/newhome/- 使用rsync可保留权限、属主和时间戳,比cp更可靠。
- 确认迁移完成后,备份原/home并清理:
sudo mv /home /home.baksudo mkdir /home
- 重新挂载新盘到/home:
sudo umount /mnt/newhomesudo mount /dev/sdb /home
- 写入开机自动挂载:
- 查看UUID:
sudo blkid /dev/sdb - 编辑
/etc/fstab,添加一行:UUID=你的UUID /home ext4 defaults 0 2
- 查看UUID:
- 重启虚拟机,执行
df -h /home确认新空间生效。 - 确认数据无误后,可删除/home.bak释放旧空间。
home只是根分区下的一个普通目录,也可以采用LVM扩容根分区,但操作更复杂,对多数个人开发者来说,新增磁盘单独挂载/home是最直观的方案。
修改虚拟机home目录前必须避开的坑
根据实际踩坑经验,有几个地方最容易出错。
- 路径含中文或空格:虚拟机软件对中文路径兼容性不稳定,建议使用纯英文路径,分隔符用下划线。
- 只移动快捷方式:桌面上的虚拟机图标只是快捷方式,移动它没有意义,必须移动整个虚拟机文件夹。
- 快照未合并:如果虚拟机关联多个快照,移动时缺少任何一个快照文件都可能导致启动失败,移动前最好删除无用快照,或整目录完整复制。
- 权限丢失:Linux内部迁移/home后,用户主目录属性可能变成root,导致登录异常,可执行
sudo chown -R 用户名:用户名 /home/用户名修复。 - Windows宿主机上VirtualBox移动后无法启动:多数是因为虚拟盘绝对路径记录在.vbox文件中,重新注册时选择正确的.vbox即可,不必手动改xml。
说白了,改虚拟机home目录位置就是搞清楚你到底要迁虚拟机文件,还是迁Linux系统里的/home,路径选对、迁移前先关机备份、注册时选对入口,基本不会出大问题。
虚拟机home目录相关常见问题
虚拟机home目录位置改了之后原来的文件还在吗?
在软件里移除并重新注册虚拟机,只要没有勾选“删除所有文件”,原文件会一直留在原目录,移动到新位置后,旧位置不会再被软件使用,但文件本身不会自动消失,确认新位置运行正常后,可手动清理旧文件夹。
Linux虚拟机home目录扩容必须重装系统吗?
不需要,添加新磁盘并挂载到/home,或用LVM在线扩容根分区,都可以在现有系统上完成,新增磁盘挂载方案风险更低,适合多数个人环境。
虚拟机home目录修改后权限变成root怎么办?
这种情况多发生在使用sudo迁移/home数据时,执行sudo chown -R 用户名:用户名 /home/用户名即可恢复属主,如果涉及多个用户,对每个用户目录分别执行,权限修复后重新登录桌面环境就会恢复正常。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/638567.html




