为了将其移动到云端位置?
我确实记得为客户做过这件事,将它们移植到 Azure,但我不记得他们是如何创建映像的。 Azure 只是有一个界面,可以根据我们提供的映像创建操作系统。
Windows 10、Windows Server 甚至 Windows 7——每个选项都很有趣。
编辑:我创建的上传不适用于 Azure,而适用于较小的云提供商
答案1
VHD
微软对于如何迁移到 Azure有一些详细的说明:https://docs.microsoft.com/en-us/azure/virtual-machines/windows/prepare-for-upload-vhd-image
WIM
另一种方法是通过从 Windows 安装 ISO 启动来创建文件:https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/capture-and-apply-windows-using-a-single-wim?view=windows-11
你应该知道微软其实并不想让这变得容易,因为这也会让盗版变得更容易。当然在 Azure 上这不是问题。
我个人会从 USB 启动任何 Linux,并使用dd
、gz
和rsync
:
$ lsblk # will show the block devices
$ mount -o ro /dev/sdb2 /mnt
$ cd /mnt
$ ls # to confirm that it's the right partition / installation
$ umount /mnt
$ dd if=/dev/sdb2 | gzip -9 > image.raw.gz
$ rsync image.raw.gz my.newhost.com:/
这种方法的缺点是您需要双倍的空间,因为您只是复制一个文件,然后仍然需要解压缩该文件,并且根据您的目的,将其写入目标上的块设备:
# dd if=image.raw.gz | gunzip | dd of=/dev/sdg1
也许比 dd 更好:
$ qemu-img convert -f raw -O vhd /dev/sdb2 image.vhd
$ rsync image.vhd my.remote.host:~
您可以使用 QEMU/KVM 在远程主机上虚拟运行:
$ qemu-system-x86_64 -m 2G -hda image.vhd
这种方法的好处是您可以使用任何格式,例如qcow2
。只需将vhd
上面的替换为qcow2
。您可以阅读更多有关的信息qemu
,并virt-manager
在其官方文档中,有一些有用的 GUI 工具可用。
或者,如果您在同一个 LAN 上或不需要能够恢复复制 - 您可以通过重复运行 rsync 命令直到整个复制完成来执行上述操作,然后您可以直接复制到目标计算机上的新块设备。
首先允许dd
在目标机器上以 root 身份运行,如果您没有以用户身份登录,则需要直接写入块设备root
:
$ ssh 192.168.1.2
$ visudo
# Add:
myuser ALL = NOPASSWD: /bin/dd
# then type :w ENTER and :q ENTER
然后您可以简单地发出:
$ sudo dd if=/dev/sdb2 | gzip -9 - | ssh 192.168.1.2 "gunzip - | sudo dd of=/dev/sdg1"
另一个选项是这个 Python 脚本,其工作原理与 rsync 类似,因此如果复制中断,可以恢复,因此两者兼而有之。它使用ssh
远程主机上的 root 帐户,默认情况下不允许密码登录,因此您必须添加ssh
key
。有几种方法可以做到这一点,下面是其中一种:
$ ssh my.remotehost.com "echo `~/.ssh/id_rsa.pub` | sudo tee -a /root/.ssh/id_rsa.pub" # add your user ssh key to the remote root account
然后只需获取脚本并运行它:
$ git clone https://github.com/bscp-tool/bscp-tool.github.io.git
$ bscp /dev/sda1 my.remotehost.com:/dev/sdg1