將運行業務的 Linux 物理服務器遷移至 XenServer 虛擬化平台,Windows 有 XenConvert 工具,Linux 卻缺乏官方圖形化方案。本文分享**基於 Clonezilla Live CD + dd + SSH 管道**的純命令行 P2V 流程:無需中間存儲、直接網絡流式傳輸磁盤鏡像、目標虛擬機啟動即用,適合不想折騰文件級同步的運維人員。
物理機 (源) 虛擬機 (目標)
+----------------+ dd | gzip | ssh +----------------+
| Clonezilla Live| ──────────────────────▶ | Clonezilla Live|
| 啟動進 Shell | gzip -d | dd | 接收寫入磁盤 |
+----------------+ +----------------+
sudo bash 獲取 root。ifconfig eth0 passwd → /etc/init.d/ssh restartssh root@<源IP> 'dd if=/dev/sda | gzip -c' | gzip -d | dd of=/dev/sda
dd if=/dev/sda | gzip -c | ssh root@<目標IP> 'gzip -d | dd of=/dev/sda'
關鍵點:/dev/sda 需確認為整盤設備(含分區表、MBR/GPT),若有多盤依次傳輸 sdb、sdc...。
dracut -f --add-drivers "xen-blkfront xen-netfront"(RHEL/CentOS)update-initramfs -u(Debian/Ubuntu)/etc/fstab 若 UUID 變更(dd 逐扇區複製通常保持 UUID 不變)。/etc/udev/rules.d/70-persistent-net.rules)。| 優點 | 缺點 |
|---|---|
| 逐扇區完美複製,保留所有分區、引導、屬性 | 目標磁盤必須 ≥ 源磁盤,空間浪費(稀疏文件不支持) |
| 無需安裝 Agent、無文件系統級解析錯誤風險 | 傳輸時間 = 磁盤容量 / 網絡帶寬,大盤耗時久 |
| 單條命令、無中間存儲、極簡依賴 | 源磁盤有壞道會導致 dd 失敗/卡住 |
| 適用於任何 Linux 發行版、任何文件系統 | 運行中備份數據一致性無保障(建議維護窗口/單用戶模式) |
fsck -f /dev/sda* 修復文件系統錯誤。pv 顯示進度:dd if=/dev/sda | pv | gzip -c | ssh ...dmesg、systemctl status、應用連通性。Clonezilla + dd + SSH 管道是 Linux P2V **最通用、依賴最少、成功率最高**的「硬核」方案。掌握此流程,無需尋找廠商專用工具,即可將任意 Linux 物理機無縫遷移至 XenServer/KVM/VMware 等任意虛擬化平台。