解决VirtualBox 迁移到不同硬盘各种UUID问题

文章讲述了在VirtualBox中遇到UUID错误的两种情况及解决方案。第一种是.vbox与.vdi文件的UUID不匹配,可以通过VBoxManage的内部命令sethduuid修改。第二种是快照UUID错误,需要使用sethdparentuuid命令修改快照的parentUUID。同时,可能需要检查并修改VirtualBox.xml文件中的MachineRegistry信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 修改到新位置的.vdi文件后,打开虚拟机会出现UUID错误:

error

  1. 发生在.vbox 与 .vdi文件

Cannot register the hard disk ‘******’

 

第一种错误是来自上面的.vbox 与 .vdi文件 的uuid错误,是属于目标地址虚拟机机器UUID对应不上,或者重复了。反正就是要修改UUID:

在 VirtualBox 安装目录用cmd运行 VBoxManage:

 

.\VBoxManage.exe internalcommands sethduuid "D:\VirtualBox VMs\Ubuntu16_good2\Ubuntu16_good2.vdi" 25b7ec15-4ef5-424a-88e2-27fd3ca80ec5

#或者

.\VBoxManage.exe internalcommands sethduuid "D:\VirtualBox VMs\Ubuntu16_good2\Ubuntu16_good2.vdi"

设置目标机器的 vdi,最后的UUID可以指定,也可以随机生成,如果是虚拟机机器UUID对应不上,就生成需要指定的UUID,如果是重复了就重新生成个随机的。绿色部分需要修改。成功会有"UUID change to: {UUID}".

 

如果还是有问题,注意修改用户文件夹中的VirtualBox XML文件: C:\Users\Duola\.VirtualBox\VirtualBox.xml  

大概是MachineRegistry项,check一些这些有没有问题,是虚拟机地址和备份地址。

 

2. 第二种错误是备份快照UUID错误问题,一般是UUID不匹配(移植时快照系统 .vdi 重点 parent UUID并没有改过来),我的解决方法是那个不匹配该那个,改成一样即可,错误如下:

UUID {4bc52ad2-ca16-43d6-81c7-02aaa448099e} of the medium 'D:\VirtualBox VMs\Ubuntu16_good2\Ubuntu16_good2.vdi' does not match the value {25b7ec15-4ef5-424a-88e2-27fd3ca80ec5} stored in the media registry ('C:\Users\CHT1HTSH3299\.VirtualBox\VirtualBox.xml').

 

 

Parent UUID {xxx} of the medium ‘x:Snapshots/{xxx}.vdi‘ does not match UUID xxx

 

 

使用命令

.\VBoxManage.exe internalcommands sethdparentuuid "D:\VirtualBox VMs\Ubuntu16_good2\Snapshots\{c713b38b-94e4-4a62-8615-084c71eb37ae}.vdi" 25b7ec15-4ef5-424a-88e2-27fd3ca80ec5

修改.vdi 文件到指定{UUID}。

成功会有"UUID change to: {UUID}".

 

一般的UUID问题用上面连个cmd指令修改和,xml修改都能解决。

 

### 解决 VirtualBoxUbuntu 虚拟机内存不足的问题 当 Oracle VM VirtualBox 下的 Ubuntu 虚拟机磁盘空间不足时,可以通过扩展现有虚拟硬盘或者添加额外的虚拟硬盘解决问题。以下是具体的实现方法: #### 方法一:扩展现有的虚拟硬盘 1. 使用 `VBoxManage` 命令工具调整虚拟硬盘大小。假设当前虚拟硬盘名称为 `ubuntu.vdi` 并位于路径 `/path/to/virtualbox/VMs/ubuntu.vdi`,可以运行以下命令将其扩展至更大的容量(例如 50GB): ```bash VBoxManage modifyhd /path/to/virtualbox/VMs/ubuntu.vdi --resize 50000 ``` 这里的单位是 MB,因此 50000 表示 50GB[^1]。 2. 扩展完成后,启动虚拟机并使用 GParted 或其他分区管理工具重新分配未使用的磁盘空间给操作系统。如果尚未安装 GParted,可通过以下命令安装: ```bash sudo apt update && sudo apt install gparted ``` 3. 启动 GParted 图形界面或通过终端执行分区操作,将新增的空间分配给根分区(通常是 `/dev/sda1`)。完成此步骤后,Ubuntu 将能够利用新扩容的磁盘空间。 #### 方法二:添加额外的虚拟硬盘并将特定目录迁移过去 另一种解决方案是在虚拟机中添加一个新的虚拟硬盘,并将占用大量空间的目录迁移到该硬盘上。具体过程如下: 1. 在 VirtualBox 的图形化界面上,进入虚拟机设置 -> 存储 -> 添加 SATA 控制器 -> 创建新的虚拟硬盘。按照向导创建一个动态分配的新虚拟硬盘,建议初始大小至少为 20GB[^4]。 2. 启动虚拟机后,识别新添加的硬盘设备名(通常会显示为 `/dev/sdb`),然后对其进行格式化和挂载: ```bash sudo mkfs.ext4 /dev/sdb sudo mkdir /mnt/newdisk sudo mount /dev/sdb /mnt/newdisk ``` 3. 移动占较大存储空间的数据到新硬盘上。例如,将用户的家目录 (`/home`) 数据复制过来: ```bash sudo rsync -avxHAXWSP --info=progress2 /home/ /mnt/newdisk/ ``` 4. 修改 `/etc/fstab` 文件以确保每次开机自动挂载新硬盘到目标位置。编辑 fstab 配置文件: ```bash sudo nano /etc/fstab ``` 添加一行记录指定如何挂载新硬盘: ``` UUID=$(blkid -s UUID -o value /dev/sdb) /home ext4 defaults 0 2 ``` 5. 卸载旧的 `/home` 目录并链接到新硬盘上的数据: ```bash sudo umount /home sudo mv /home /home_old_backup sudo ln -sf /mnt/newdisk /home ``` 以上两种方式都可以有效缓解因磁盘空间不足而引发的各种问题。 ```python print("成功解决VirtualBox中的Ubuntu虚拟机磁盘空间不足的情况") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值