我该如何将 Ubuntu 14 盒子从 Digital Ocean 移动到物理硬件?
答案1
您需要下载 VPS 提供商提供的磁盘映像。这里的问题是,VPS 最常见的设置是一台服务器,服务器上只连接一个“硬盘”,如果没有专门的工具或流程,您无法在系统运行时可靠地制作磁盘映像。此外,磁盘映像会存放在哪里,因为在制作磁盘映像时尝试拍摄磁盘快照会产生问题。
如果您的 VPS 提供商允许您直接下载磁盘映像/快照/备份,那太好了,您可以直接这样做。但是,大多数提供商不直接提供该功能,您必须自己执行。为此,您需要创建一个新的卷/磁盘并将其连接到服务器,或者启动一个新的 VPS 并将您要映像的磁盘连接到该服务器。无论哪种情况,您都需要一个运行 Linux 的系统,该系统连接了两个磁盘,一个是您要映像的磁盘,另一个是用于存储映像的(较大)磁盘。
接下来获取要映像的磁盘的名称,在此示例中我们将其称为/dev/sdb
。您不必实际mount
尝试映像的磁盘,而是执行以下操作:
dd if=/dev/sdb of=/where/to/write.img status=progress
这status=progress
是为了便于您监控进度。如果您通过 SSH 执行此操作,您可能希望将其作为setsid
命令 ( setsid dd ...
) 运行,这样当您断开连接时它就不会被终止。
获得该.img
文件后,您可以通过将磁盘插入本地运行 Linux 的计算机来逆转该过程,在此示例中,我将调用我们插入的磁盘/dev/sdc
dd if=write.img of=/dev/sdc status=progress
如果您觉得时髦,您可以尝试在 VPS 上不使用中间存储磁盘的情况下完成所有这些操作,方法是启动到 Live CD 并通过 SSH 隧道复制文件,方法是在启动到 Live CD 时在 VPS 上运行以下命令:
dd if=/dev/sdb | ssh -C user@ip_of_home_pc dd of=disk.img
这利用了 SSH 实际上连接标准输入/输出流并dd
通过压缩(-C
)SSH 连接传递成像过程的输出这一事实。
答案2
一种解决方案是从您当前的 Ubuntu 14 盒创建一个 ISO 映像,然后将 ISO 映像安装到 USB 驱动器上,并使用 USB 驱动器在下次启动时进行安装。
参见类似内容问题/答案了解更多信息。