我是 Linux 新手。我通过 SSH 从 Mac 连接到机器。有人能告诉我将已经运行的 Linux 机器转换为虚拟机以在 ESXI 中使用的最佳流程吗?运行 Ubuntu Server 16.04.2 LTS 并连接 RAID,如下所示:
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 393M 23M 371M 6% /run
/dev/sdg2 1.8T 12G 1.7T 1% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop0 161M 161M 0 100% /snap/nextcloud/1337
/dev/loop1 80M 80M 0 100% /snap/core/1689
/dev/md0 8.2T 6.5T 1.3T 84% /mnt/raid/samba
/dev/sdg1 512M 3.4M 509M 1% /boot/efi
/dev/loop2 179M 179M 0 100% /snap/nextcloud/1474
tmpfs 393M 0 393M 0% /run/user/1000
tmpfs 393M 0 393M 0% /run/user/1001
我是否需要单独转换每个磁盘?或者是否有我未看到的更简单的方法?
谢谢你!
答案1
是的,这是可能的,而且并不困难。您可以利用 UNIX 文件系统具有单个根目录的优势,因此您无需在副本中复制挂载、RAID 等结构 - 系统将以相同的方式运行,所有文件都位于单个挂载中。
我之前已经成功完成了该程序,我的方法是基于https://wiki.archlinux.org/index.php/full_system_backup_with_rsync。
先决条件
- 服务器上主目录中有足够的可用空间来存储整个服务器内容(压缩)
- 本地硬盘上有足够的可用空间来存储未压缩和压缩的服务器内容
- 服务器上的 root 访问权限
- 两台机器必须使用兼容的架构(否则您将无法运行传输的二进制文件)
指示
备份完整的服务器内容。您可以使用
rsync
链接指南中的备份,然后压缩或一步完成。您需要sudo
访问所有文件。sudo tar --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","~/server-backup.tar.xz"} -cJvf ~/server-backup.tar.xz /
使用 SCP 或其他合适的方法下载创建的文件。
创建一个具有足够容量的新虚拟硬盘的虚拟机。启动实时发行版。
格式化并安装空白硬盘。
将压缩的备份文件的内容解压到已安装的驱动器。(您需要使该文件可供虚拟机使用,例如使用共享文件夹或连接到虚拟机的其他驱动器。)
如果有必要,编辑配置文件(特别是
/etc/fstab
)/etc/network/interfaces
。关闭虚拟机,分离实时发行版媒体并启动服务器克隆。