Linux

將 Linux 伺服器轉移到虛擬機

  • October 24, 2011

我有一個執行某些服務(包括 Apache Web 伺服器、郵件列表等)的 OpenSuse 伺服器。現在我需要將所有這些服務移動到虛擬機(Virtualbox 可以在同一台物理機或其他地方執行)。

如果我可以將所有內容“複製”到虛擬機,那麼虛擬機將完全按照原始機器的執行方式工作,這是理想的。所有使用者的數據(/home/*)都儲存在 NFS 中,不應傳輸到 VM。然後我可以擁有一個相對較小(幾千兆字節)的 VM 映像,以便每隔幾天備份一次。

我需要將所有系統和應用程序設置移動到虛擬機,這樣我才能順利切換到使用虛擬機。

有什麼工具或東西可以簡單地做到這一點嗎?如果沒有,我該怎麼做?

你可以用 dd 非常直接地做到這一點。

dd if=/dev/you-root of=/mnt/temp/filesystem.raw bs=1M

現在您可以使用 qemu-img 將此原始文件轉換為任何需要的容器。甚至讓 VM 使用塊設備並將其複製到邏輯卷。對於 VirtualBox,它將是 vdi。

qemu-img convert -O vdi /mnt/temp/filesystem.raw /mnt/temp/filesystem.vdi

從技術上講,您可以為此使用Rsync :

在虛擬機上啟動一張 live CD,並對磁碟進行分區以品嚐,然後將“/”掛載為 /mnt/rootfs/,並從虛擬機執行以下命令:

rsync -aHAXz root@OLD-SERVER:/ --exclude=/sys/* --exclude=/proc/* --exclude=/dev/* /mnt/rootfs/

-a = archive mode; equals -rlptgoD (no -H,-A,-X)
-H = preserve hard links
-A = preserve ACLs (implies --perms)
-X = preserve extended attributes
-z = compress file data during the transfer

然後修復 GRUB、/etc/fstab 等…

假設您的“舊伺服器”具有 SSH 訪問權限,這將(大部分)工作……

我之前用過這個方法複製物理機…

引用自:https://serverfault.com/questions/324439