Aka:如何将.vdi或.vmdk转换为物理磁盘上的实际安装?
是否可以/可行地将Ubuntu的虚拟机安装迁移到物理机上?如果可能的话,这将有多难实现,以及我需要采取哪些步骤来准备进行迁移。
我想在VM上进行一些测试,如果它能将系统迁移到物理硬件上,而不是重新安装所有内容。这可能吗?

评论

相关:是否可以将虚拟机转换为物理环境?在SU

#1 楼

是的,有可能。甚至没有那么困难,它只需要一些时间,就需要一个Ubuntu LiveCD,粘性塑料和一个外部USB磁盘(如果您没有多个内部磁盘)。步骤:将磁盘转换为有用的磁盘

VMWare和VirtualBox(以及其他)都使用了无法很好地直接写入磁盘的磁盘格式。您可以,但我个人觉得先将其写入中间的标准图像会更方便。您可以从当前系统执行此操作,而不必启动到LiveCD。



加载终端并在以下位置启动:

cd /media/wherever-the-image-is/

# for VMWare
sudo apt-get install qemu-kvm
qemu-img convert your-vmware-disk.vmdk -O raw disk.img

# For VirtualBox
VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW


/media/wherever-the-image-is/disk.img移动到您不想写的地方。如果打算将其写入当前所在的磁盘,则需要将其粘贴在单独的内部磁盘上,或者最糟糕的外部磁盘上。
以下说明假设您已将其移至/media/dave/disk.imgdave是外部USB磁盘)
进行任何认真的写操作之前,请确保已备份。要说这是陈词滥调,但有一个错字,并且很有可能会破坏您的系统。假设事情会出错并且要做好准备。如果您有存储数据的地方,CloneZilla可以帮助您进行整个磁盘备份。

将映像写入其自己的磁盘中

做这样的事情。假设您要覆盖整个磁盘。如果要在Windows旁边安装,请不要遵循这些说明!跳到项目符号后。


启动到Ubuntu Live CD,然后单击“尝试Ubuntu”。如/media/dave)。不要将您想写的地方挂在上面。

然后我们开始工作:您要用到目标磁盘的正确路径替换sdXsudo密码为空,只需按回车即可。

然后您可以打开gparted或其他东西,您应该会看到Ubuntu分区位于磁盘上。您应该可以将其扩展。

将映像写入另一个操作系统旁边的磁盘中。这个想法非常相似,除了您要正确安装Ubuntu,然后仅同步disk.img中的文件。您的虚拟安装。引导到Live CD,然后再次单击“安装”。
按照安装程序进行操作,重新划分您认为合适的内容。大约10分钟后,将完成安装并要求您重新启动。不要重启。不管您是否意外执行,只要确保您已返回LiveCD即可获得下一条说明。它们放在nautilus中。)

将disk.img ISO装入终端: ,有时当您尝试将其挂载为循环设备时,可能会收到以下错误

“ NTFS签名丢失。
无法挂载'/ dev / loop0':无效参数
设备'/ dev / loop0'似乎没有有效的NTFS。“

.img文件有时在可能的实际分区之前包含一个主引导记录和一个分区表。要挂载。因此,您需要找出所需分区的偏移量。为此,可以使用分块工具。例如,在此链接中查看sisco311的答案http://ubuntuforums.org/archive/index.php/t-1576011.html

因此,如果您确定偏移量为'xxx',则可以使用

sudo dd if=/media/dave/disk.img of=/dev/sdX

挂载分区

从那里您可以选择文件,或者仅使用以下内容复制新Ubuntu安装之上的所有内容:重新启动,您应该会受到旧VMWare安装的欢迎,但要使用裸机。如果遇到令人讨厌的grub问题,可以通过返回Live CD,将其chroot和修复问题来进行修复。


评论


您是否知道可以自动执行此操作的工具?

–the_drow
2013年9月8日上午10:55

对于Windows / VirtualBox上的设置,VBoxManage内部命令converttoraw your-virtualbox-disk.vdi / dev / sdX命令仍然有效。在运行第一个命令之前,只需要将CD刻录到Program Files \ Oracle \ VirtualBox。

–澳
2014年12月18日在18:06

@Aust我怀疑/ dev / sdX在Windows中是否是有效的目标。 AFAIK将是\\ Device \ Harddisk0或类似的东西。

–达纳特拉
15年12月28日在4:31

VBoxManage内部命令converttoraw your-virtualbox-disk.vdi / dev / sdX不起作用。在Linux中,它给出错误:VBoxManage:错误:无法创建目标文件“ / dev / sdX”:VERR_ALREADY_EXISTS。必须先使用VBoxManage命令将其发送到图像。然后使用DD将映像放入物理磁盘。

– L. D. James
16年4月9日在15:18



我现在只是用Xubuntu 19.04做到了,还有更多需要执行的步骤:1)在实时cd上转到新的安装磁盘并编辑/ etc / fstab,将root的安装点更改并将交换驱动器更改为现有驱动器(sudo可以找到UUID) fdisk -l和ls -lA / dev / disk / by-uuid 2)在我的情况下,修复grub并不那么容易,最好的解决方法是使用工具进行修复-help.ubuntu.com/community/Boot-Repair将其修复

– MiroJanosik
19年11月1日在10:43



#2 楼

也许这并不是您所要的,但是它可以完成您想要的。

由于所有设置都存储在主目录中,因此您可以将其备份副本复制到另一个目录中。实际磁盘上的分区。在实际磁盘上安装了新的Ubuntu之后,只需再次运行备份程序即可恢复所有设置不变的主目录。

您可以使用名为DéjàDup的真正简洁的备份程序。

来自ubuntu软件中心的信息:它隐藏了备份正确方法(加密,异地和常规)的复杂性,并使用重复性作为后端。

功能:


支持适用于本地,远程或云备份位置,例如Amazon S3或Rackspace Cloud Files
安全地加密和压缩您的
数据
增量备份,让您
从任何特定位置还原备份
安排常规备份
很好地集成到您的GNOME桌面中


您将在两个小时内完成!

祝你好运!

评论


听起来很简单。 S / O可以确认它确实可以那样工作吗?

–Mateng
13年8月23日在14:53

除其他外.... UID(用户编号)在那个时候可能有所不同。

– Tomachi
18年11月16日在0:03

#3 楼

尝试使用UDPCast

,其想法是将整个vmdk从其虚拟机流式传输到物理机,然后将其写入物理硬盘。

过程概述如下。

由于您有一个vmdk文件,因此您可能会拥有一个VMWare工作站,甚至可以连接此vmdk的完整虚拟机。在连接了此特定vmdk的情况下运行您的虚拟机,但请使用PartedMagic liveCD进行引导,而不是使用常规引导。其对话框是不言自明的(请参见屏幕截图)。选择此虚拟机作为UDPCast Disk Cloning之后,您应该选择要广播的驱动器(使用Unix表示法,如/ dev / sda)。

启动sender之后,还需要启动sender。假设您有一个物理硬盘,那么您也将拥有一台完整的PC,并将其连接到该硬盘。同样的事情:您需要使用receiver来启动liveCD,并选择UDPCast Disk Cloning以及适当的物理硬盘。物理硬件。如果vmdk包含私有数据,则应采取必要的预防措施,因为其内容将通过网络有效地流式传输。另一件事是,目标硬盘的存储容量应不低于vmdk的容量。显而易见,但也值得注意的是,您的映像是一对一地放在目标硬盘上的,并且您需要使用gparted等执行适当的操作,以利用更大容量的新硬盘。

评论


我想指出的是,这种方法非常简单,而且相对容易执行。即,您唯一需要做的准备步骤就是准备带有UDPCast的LiveCD或任何其他LiveCD,这足以下载并运行UD​​PCast。如果您有一些虚拟高清图像,则肯定已在已设置并准备就绪的虚拟机中使用了它,另一方面,您已经准备好物理系统并且也已准备好执行任务。

–PF4Public
16年2月17日在13:05

还有更多:UDPCast可以直接从PXE运行。 udpcast.linux.lu/bootloader.html#pxe

–PF4Public
16年2月17日在13:15

#4 楼

如果已安装VirtualBox,则可以使用VBoxManage命令将VDI(VirtualBox驱动器映像)文件转换为IMG格式,然后复制到物理磁盘中,例如

VBoxManage clonehd --format RAW file.vdi file.img


然后您可以使用dd命令将文件复制到物理分区:

dd if=./file.img of=/dev/<partition_here>


注意:如果需要,请使用sudo。在/ dev中指定正确的设备时要小心。

评论


vdi文件是可以包含多个分区的虚拟磁盘,对吗?如果将其写入/ dev /中的特定分区而不是/ dev中的磁盘,它将如何工作?

–gtux
20-04-23在21:06

#5 楼

如果将新的物理磁盘连接到VM虚拟磁盘所在的计算机,则可以将VDI转换为物理磁盘,而无需进行中间转换,这可能节省了大量时间和磁盘空间。这是假设您的物理磁盘等于或大于虚拟磁盘的最大大小。在我的情况下,目标是将VDI转换为ZFS zvol,但这种方法对于任何块设备都应该相同。 >
VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX


然后(关闭VM!),您可以将VDI克隆到VMDK:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk


那会花点时间...完成后,您可以删除VMDK文件,因为该文件仅用作VirtualBox的指针来查找物理设备。与虚拟磁盘大小相同。鉴于您的物理磁盘可能有所不同,您需要采用某种分区大小调整机制来填充整个磁盘。 Gparted之类的东西。您应该可以将其指向物理/ dev / sdX设备,同时仍将其连接到VM计算机,因此您不必诉诸于引导CD的物理主机。

调整大小后,将驱动器弹出物理计算机,用手指交叉,然后打开电源。

如果要继续使用物理驱动器, VirtualBox,保留VMDK,然后使用VBoxManage storageattach将其连接到VM。

评论


看起来好像可以,但是数据以某种方式损坏了,操作系统无法正常启动。

–显示名称
18年6月14日在14:34

将.vdi或.vmdk转换为真实的物理磁盘是一回事,而使其可启动则是完全不同的事情,bootloader,/ etc / fstab等必须在使用前加以照顾

–xpt
20-5-24在23:18