手動 P2V 遷移 Gentoo:避免常見陷阱

摘要

實體到虛擬 (P2V) 遷移是將實體伺服器的精確映像轉換為虛擬機器的過程 1。此過程能帶來資源最佳化、硬體成本降低、透過 vCenter 等平台進行集中管理和擴展、增強災難復原能力以及最大限度地減少停機時間等顯著優勢 2。然而,對於像 Gentoo Linux 這樣高度客製化的發行版,P2V 遷移面臨獨特的挑戰。與常見的發行版不同,Gentoo 的客製化核心配置、引導載入程式設定以及缺乏對 Synology Active Backup for Business 等工具的直接代理支援,往往導致自動化 P2V 解決方案出現複雜問題。使用者先前嘗試透過 DiskGenius 進行 VMDK 轉換和映像轉換,以及透過 Synology Active Backup for Business 進行備份均告失敗,這印證了 Gentoo 在自動化工具方面的根本不相容性。

鑑於這些挑戰和使用者先前的失敗經驗,最可靠的方法是採用手動、基於映像的遷移策略,例如使用 dd 或 Clonezilla,然後進行細緻的遷移後配置。成功的關鍵在於精確的磁碟映像、正確的 VMDK 建立,以及對 Gentoo 虛擬機器的核心、引導載入程式和磁碟識別 (fstab) 進行關鍵調整,以適應虛擬硬體環境。自動化工具的局限性,特別是 VMware vCenter Converter Standalone 不支援 Gentoo,使得手動方法成為唯一能確定成功的途徑。

了解實體到虛擬 (P2V) 遷移

P2V 遷移是指將實體電腦(包括其作業系統、應用程式和資料)轉換為在虛擬化平台(如 VMware)上運行的虛擬機器的過程 3。這是一種映像級別的複製,而非僅僅資料的遷移 1。這種轉換的目的是為了實現資源最佳化、降低硬體成本、透過 vCenter 等平台實現集中管理和擴展、增強災難復原能力(例如更快的備份、複製和恢復),以及透過即時遷移選項最大限度地減少停機時間 2

一般 P2V 考量與先決條件

成功的 P2V 遷移要求來源機器的資料保持一致性。雖然「熱複製」(即在系統運行時進行轉換)是可行的,但由於持續運行的程序,可能導致生成的虛擬機器並非實體機器的精確副本 1。對於關鍵系統或涉及資料庫活動的系統,通常建議採用「冷複製」(即離線轉換)以確保更高的安全性 4

在執行 P2V 操作之前,應確保來源機器有足夠的可用空間,如果使用 VMware Converter,至少需要 500MB 的可用空間 5。此外,應關閉來源機器上所有非必要的服務,例如 SQL、防毒軟體和防火牆,以避免在轉換過程中發生衝突並提高可靠性 5。在轉換前,對磁碟卷執行磁碟檢查(對於 Linux 系統使用

fsck)以解決任何檔案系統錯誤,是確保資料完整性的重要步驟 5。最後,驗證 DNS 和反向 DNS 查詢是否正常運作,並確保來源機器和目標機器位於同一子網中,如果可能的話,這有助於避免網路路由問題 5

確保 Gentoo 系統完整性:冷複製的重要性

雖然熱複製是 P2V 的常見選項,但對於 Gentoo 系統而言,採用「冷」複製(離線)過程不僅是一種最佳實踐,更是成功遷移的關鍵先決條件。Gentoo 作為一個基於原始碼的發行版,其許多核心元件都是針對特定硬體編譯的,這意味著作業系統與其實體環境之間存在更緊密的耦合。使用者先前透過 DiskGenius 和通用映像轉換的失敗嘗試,表明了生成的映像在啟動或完整性方面存在問題。

對於 Gentoo 系統,由於運行中的檔案和程序,直接複製運行中的安裝會導致問題 6。熱複製一個 Gentoo 系統,特別是那些具有複雜配置或活動服務的系統,極有可能導致虛擬機器不一致或無法啟動,因為存在未關閉的檔案、不斷變化的磁碟狀態以及 Gentoo 核心和模組的高度客製化性質。因此,冷複製能夠最大限度地降低資料損壞或啟動問題的風險,這些問題通常源於不一致的來源映像。

Gentoo 系統的初步評估與準備

在進行任何 P2V 遷移之前,對現有的 Gentoo 實體系統進行全面評估和準備至關重要。這將有助於預見潛在問題並確保遷移過程的順利進行。

檢查 Gentoo 的當前配置

  • 啟動模式 (BIOS vs. UEFI): 確定實體 Gentoo 機器是使用傳統 BIOS 還是 UEFI 啟動。這至關重要,因為目標 ESXi 虛擬機器必須與此模式匹配才能成功啟動 6。UEFI 系統通常使用 GPT 分割區,而 BIOS 系統通常使用 MBR 8
  • 分割區表 (MBR vs. GPT): 識別磁碟分割區方案。GPT 是 UEFI 的標準,MBR 則常用於 BIOS 6。需要注意的是,GPT 會保留兩個分割區表的副本,一個在磁碟開頭,一個在磁碟結尾。如果目標磁碟大小與原始磁碟不一致,磁碟結尾的副本可能會遺失,這可能導致核心發出警告 6
  • 軟體 RAID: 使用者提到實體機使用了「軟體 RAID 1」。VMware vCenter Converter Standalone 明確表示不支援 Linux 機器上的軟體 RAID 5。如果正在使用軟體 RAID,則必須採用手動方法,並且需要在虛擬機器內部重新組裝 RAID 6
  • 核心配置: 記錄當前 Gentoo 核心的配置,特別是儲存(SCSI/IDE 驅動程式)和網路介面卡相關的配置。這將為虛擬機器中所需的核心調整提供依據 11。務必注意任何客製化核心模組或
    initramfs 設定。
  • fstab 條目: 檢查 /etc/fstab 中的磁碟識別方式。如果使用 /dev/sdX 等裝置名稱,則在虛擬機器中必須將其更改為 UUID 或 PARTUUID,以確保一致的掛載 14

遷移前全面備份的重要性

在執行任何 P2V 操作之前,務必對關鍵資料執行全面備份 3。這是一個不可協商的步驟,因為 P2V 遷移本身就存在資料遺失或損壞的固有風險 17

確保來源機器有足夠的可用空間

雖然對於 dd 方法並非嚴格要求,但如果使用 VMware Converter,則至少需要 500MB 的可用空間 5。對於基於映像的方法,Clonezilla 建議來源磁碟使用率不超過 80% 3

Gentoo 客製化:P2V 中的雙刃劍

Gentoo 以其深度客製化而聞名,允許使用者編譯核心並選擇特定的 USE 旗標 18。然而,P2V 本質上會改變底層硬體(從實體到虛擬)。這就產生了一個衝突點:為特定實體硬體(例如,特定 SATA 控制器、網路卡)高度最佳化的 Gentoo 核心,很可能沒有啟用或編譯 VMware 虛擬硬體(例如,PVSCSI、VMXNET3)所需的驅動程式 12。這種不匹配是導致遷移後出現「找不到作業系統」或啟動掛起問題的主要原因 6

因此,Gentoo 的優勢(客製化)反而成為其 P2V 的最大挑戰。解決方案不僅僅是「轉換」,而是「適應」Gentoo 安裝到新的虛擬環境,這需要手動重新編譯核心和調整引導載入程式。這解釋了為什麼使用者先前嘗試的通用映像轉換失敗了。使用者過去的失敗(DiskGenius、通用 VMDK 轉換)很可能源於生成的 VMDK 是實體系統的「完美」副本,但實體系統的核心和引導載入程式並未針對虛擬硬體做好準備,從而導致啟動失敗。

Gentoo 遷移至 ESXi 的 P2V 方法

對於將實體 Gentoo 系統遷移至 VMware ESXi,存在幾種方法,但鑑於 Gentoo 的獨特特性,某些方法比其他方法更為可靠。

A. 方法 1: VMware vCenter Converter Standalone (考量與限制)

VMware vCenter Converter Standalone 是一款專為 P2V 和 V2V 遷移設計的工具,提供熱複製、集中管理以及對各種來源類型(包括運行中的本機或遠端機器)的廣泛支援 1

支援的 Linux 發行版與 Gentoo 的潛在問題:

儘管 Converter 支援 Linux,但其官方相容性列表僅限於特定版本的 Red Hat Enterprise Linux、CentOS 和 Ubuntu 23。

Gentoo 並未明確列為支援的作業系統。 這一點至關重要,它直接解釋了使用者所遇到的困難。

以下表格概述了 VMware Converter 對 Linux 作業系統的最新相容性,明確顯示了 Gentoo 的缺失:

Converter 版本Red Hat Enterprise LinuxCentOSSUSE Linux Enterprise ServerUbuntu
6.66.x, 7.x, 8.x, 9.x6.x, 7.0, 8.0(?)不支援14.04 LTS, 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS
6.3, 6.46.x, 7.x6.x, 7.0不支援14.04 LTS, 16.04 LTS
6.0.04.x, 5.x, 6.x, 7.x6.x, 7.09.x, 10.x, 11.x14.04.4 LTS
5.5.33.x, 4.x, 5.x, 6.x不支援9.x, 10.x, 11.x10.04 LTS, 12.x, 13.x
5.1.23.x, 4.x, 5.x, 6.x不支援9.x, 10.x, 11.x10.x, 11.x, 12.x
5.0.13.x, 4.x, 5.x不支援8.x, 9.x, 10.x, 11.x10.x
備註:此表格僅列出部分常見版本,詳細資訊請參考 VMware 官方文件 24

Linux P2V 與 Converter 的先決條件和一般步驟:

Converter Standalone 必須安裝在 Windows 機器上 23。對於遠端 Linux 機器,需要指定 IP 位址、使用者名稱(建議使用 root)和密碼 2。來源 Linux 機器必須啟用 SSH 連線 5。轉換過程包括選擇來源/目標、命名虛擬機器、選擇資料儲存區以及配置硬體選項 2。

Gentoo 與 Converter 的具體挑戰:

  • 不支援重新配置: VMware Converter Standalone 無法重新配置 Linux 發行版 23。這對於 Gentoo 來說是一個主要限制,因為遷移後幾乎總是需要調整核心和驅動程式。
  • 輔助虛擬機器要求: 對於 Linux P2V,Converter 需要與「輔助虛擬機器」互動以執行修補,這需要 vSphere 環境 23。這意味著直接轉換到 Workstation/Fusion(或未由 vCenter 管理的獨立 ESXi 主機)可能不支援修補步驟。
  • 軟體 RAID: Converter 不支援 Linux 機器上的軟體 RAID 5。如果使用者的 Gentoo 系統使用軟體 RAID,這將直接導致轉換失敗。
  • 轉換失敗的疑難排解: 轉換在 2% 處失敗通常表示網路/防火牆/權限問題。轉換在較高百分比(例如使用者遇到的 90% 以上)失敗通常指向引導載入程式重新配置問題 20

B. 方法 2: 使用 dd 或 Clonezilla 進行基於映像的 P2V (推薦用於 Gentoo)

鑑於 VMware Converter 對 Gentoo 的限制,基於映像的 P2V 方法是高度推薦的,因為它提供了手動控制並能繞過自動化工具的局限性。

1. 建立實體 Gentoo 機器磁碟映像

冷複製至關重要: 如前所述,由於開啟的檔案,複製運行中的 Gentoo 安裝會導致問題 6。因此,必須從 LiveCD(例如 SystemRescueCD、Gentoo LiveCD 或 Clonezilla LiveCD)啟動實體機器,以確保映像的一致性 3

使用 dd 建立原始磁碟映像: dd 是一個強大的低階工具,用於建立磁碟的精確逐扇區副本 17

  • 識別來源磁碟(例如,/dev/sda)。
  • 選擇輸出檔案位置(例如,外部 USB 磁碟或網路共享)。
  • 指令: sudo dd if=/dev/sda of=/path/to/your-disk-image.img bs=4M conv=sync,noerror,notrunc status=progress 17
  • if=/dev/sda:輸入檔案(來源磁碟)。
  • of=/path/to/your-disk-image.img:輸出檔案(原始映像)。
  • bs=4M:區塊大小(建議 4MB 以提高效能)。
  • conv=sync,noerror,notrunc:處理錯誤、填充區塊並防止截斷 17
  • status=progress:顯示即時進度 17
  • 考量: 這將複製所有扇區,包括未使用的空間 4。確保目標位置有足夠的空間。

表 2: dd 磁碟映像指令

項目指令/說明
指令sudo dd if=/dev/sda of=/path/to/your-disk-image.img bs=4M conv=sync,noerror,notrunc status=progress
說明將 dd 建立的原始映像轉換為 VMDK 格式。
if=/dev/sda指定輸入實體磁碟(請將 /dev/sda 替換為您的實際磁碟,例如 /dev/nvme0n1)。
of=/path/to/your-disk-image.img指定儲存原始磁碟映像的輸出檔案。請確保此路徑位於具有足夠可用空間的獨立儲存裝置上。
bs=4M將區塊大小設定為 4MB,以實現高效複製。
conv=sync,noerror,notruncsync:將輸入區塊用零填充至 bs 大小,確保一致的區塊讀取。noerror:即使發生讀取錯誤也繼續複製。notrunc:防止截斷輸出檔案。
status=progress在操作過程中顯示進度條。

使用 Clonezilla 進行磁碟映像: Clonezilla 是一個免費、開源的磁碟複製工具,可以將實體機器映像化並還原到虛擬機器中 3

  • 準備: 下載 Clonezilla Live ISO,建立可啟動 USB(Windows 使用 Rufus/Etcher,Linux 使用 dd) 3
  • 備份過程: 從 Clonezilla Live USB 啟動實體機器。選擇 device-image 模式。選擇映像目的地(本機磁碟或網路)。選擇來源磁碟(例如 /dev/sda)。配置壓縮和映像名稱。開始備份 3
  • 優勢: 與原始 dd 相比,使用者介面更友好,支援多種檔案系統 3

2. 將映像轉換為 VMDK 格式

為何選擇 VMDK? ESXi 使用 VMDK(虛擬機器磁碟)檔案作為其虛擬機器 1

使用 qemu-img 進行轉換: qemu-img 是一個多功能的磁碟映像工具,可以在各種格式之間轉換,包括原始映像到 VMDK 26

  • 安裝: sudo apt-get install qemu-utils (Debian/Ubuntu) 或 sudo dnf install qemu (RHEL/Fedora) 26
  • 指令: qemu-img convert -O vmdk /path/to/your-disk-image.img /path/to/output.vmdk 26
  • 考量: 對於 VMware Fusion,請確保磁碟大小精確到兆字節 26。這對於 ESXi 可能不那麼關鍵,但仍是良好實踐。

使用 VBoxManage (如果適用於中間步驟): 雖然主要用於 VirtualBox,但 VBoxManage convertfromraw 也可以從原始映像建立 VMDK 檔案 26。如果工作站上已安裝 VirtualBox,這可能會很有用。

  • 指令: VBoxManage convertfromraw /path/to/your-disk-image.img /path/to/output.vmdk –format VMDK 26

為原始映像建立 VMDK 描述符檔案: 透過 dd 建立的原始映像或 qemu-img 轉換通常會產生一個「扁平」的 VMDK 檔案(例如 diskname-flat.vmdk)。此檔案需要一個對應的「描述符」.vmdk 檔案(一個小型文字檔),其中包含磁碟幾何形狀、ID 和虛擬硬體版本等中繼資料 25

表 3: qemu-img 和 vmkfstools 用於 VMDK 轉換與描述符建立

步驟指令/說明
A. 將原始映像轉換為 VMDK (在 Linux/Windows 工作站上使用 qemu-img)
指令qemu-img convert -O vmdk /path/to/your-disk-image.img /path/to/output.vmdk
說明將透過 dd 建立的原始映像轉換為 VMDK 格式。
B. 建立 VMDK 描述符檔案 (如果僅有 -flat.vmdk 檔案,通常在 dd 或 qemu-img 轉換後)
1. 上傳檔案將您的 output.vmdk (即扁平檔案) 上傳到 ESXi 資料儲存區。將其重新命名為 yourvmname-flat.vmdk。
2. 導航至目錄SSH 進入您的 ESXi 主機並導航至虛擬機器目錄:cd /vmfs/volumes/DATASTORE_NAME/yourvmname
3. 取得扁平檔案大小取得您的扁平檔案的確切大小:ls -l yourvmname-flat.vmdk (記下位元組大小)。
4. 確定控制器類型確定所需的虛擬磁碟控制器 (例如,lsilogic 或 pvscsi – 推薦 PVSCSI 以獲得最佳效能)。
5. 建立虛擬 VMDK 描述符建立一個虛擬 VMDK 描述符檔案:vmkfstools -c <size_in_bytes> -d thin -a <controller_type> temp.vmdk。例如:vmkfstools -c 10737418240 -d thin -a lsilogic temp.vmdk (對於 10GB 磁碟)。
6. 移除臨時檔案移除 vmkfstools 建立的 temp-flat.vmdk 檔案:rm -i temp-flat.vmdk。
7. 重新命名描述符檔案將描述符檔案重新命名:mv -i temp.vmdk yourvmname.vmdk。
8. 編輯描述符檔案使用 vi 或 nano 編輯 yourvmname.vmdk (描述符檔案):- 將 Extent Description 行更改為指向您的實際扁平檔案。 原始:RW <size> FLAT “temp-flat.vmdk” 0 更改為:RW <size> FLAT “yourvmname-flat.vmdk” 0- 如果您的扁平檔案是厚佈建的,請移除 ddb.thinProvisioned = “1” 這行。

3. 建立和配置 ESXi 虛擬機器

在 ESXi 主機用戶端或 vCenter 中,建立一個新的虛擬機器:

  • 選擇客體作業系統: 選擇「Other Linux (64-bit)」或「Gentoo Linux (64-bit)」(如果可用)。
  • 關鍵: 選擇與您的實體 Gentoo 系統相符的正確啟動模式(BIOS 或 UEFI)6
  • 磁碟大小: 配置虛擬磁碟大小等於或大於原始實體磁碟 3
  • 磁碟控制器: 為獲得最佳效能,將虛擬磁碟控制器配置為 VMware Paravirtual SCSI (PVSCSI) 12。如果原始系統使用 IDE,您可能需要先將虛擬機器配置為 IDE 控制器,然後在核心調整後再切換到 PVSCSI。
  • 網路介面卡: 選擇 VMXNET3 以獲得高效能 12

上傳 VMDK: 將轉換後的 yourvmname-flat.vmdk 及其對應的 yourvmname.vmdk 描述符檔案上傳到 ESXi 資料儲存區中新建立的虛擬機器目錄。

附加 VMDK: 編輯虛擬機器設定,移除預設的虛擬硬碟,然後新增一個現有的硬碟,指向 yourvmname.vmdk 描述符檔案。

遷移後 Gentoo 虛擬機器的配置與疑難排解

成功遷移 Gentoo 實體機到 ESXi 虛擬機後,通常需要進行關鍵的配置調整和潛在的疑難排解,以確保系統能夠正常啟動並高效運行。

A. 解決啟動問題

首次啟動嘗試: 啟動虛擬機器。如果成功啟動,請繼續安裝 VMware Tools。如果沒有,請繼續進行疑難排解。常見的錯誤包括「找不到作業系統」或啟動掛起 20

ESXi 中的 BIOS 與 UEFI 啟動模式:

  • 確保虛擬機器的啟動模式(在虛擬機器建立期間配置)與原始實體系統的啟動模式相符 6。不匹配是導致「找不到可啟動裝置」的常見原因 7
  • 如果實體系統是 UEFI,則虛擬機器也必須是 UEFI。如果實體系統是 BIOS,則虛擬機器也必須是 BIOS。

在虛擬機器設定中禁用安全啟動: 許多 Linux 發行版,特別是較舊或客製化的發行版(如 Gentoo),可能與虛擬機器環境中的安全啟動不相容。如果虛擬機器配置為 UEFI,請在虛擬機器的 BIOS/UEFI 設定中禁用「安全啟動」7。這是解決 Linux 虛擬機器在 ESXi 上無法啟動的常見方法。

修復 GRUB 引導載入程式: 這是在 Linux 系統(尤其是 Gentoo)P2V 後非常常見的步驟 20

  • 從 LiveCD 啟動: 將 Gentoo LiveCD 或 SystemRescueCD ISO 掛載到虛擬機器並從中啟動。
  • chroot 進入已安裝的系統:
  • 識別您的根分割區(例如,/dev/sda1 或 /dev/vda1)。
  • 掛載根分割區:mount /dev/vda1 /mnt/gentoo
  • 如果 /boot 是獨立的:mount /dev/vdaX /mnt/gentoo/boot
  • 綁定必要目錄:mount –rbind /dev /mnt/gentoo/dev、mount –rbind /sys /mnt/gentoo/sys、mount –rbind /proc /mnt/gentoo/proc
  • chroot /mnt/gentoo 32
  • 重新安裝 GRUB 並重新生成配置:

表 4: Gentoo 的常見 GRUB 修復指令 (UEFI/BIOS)

啟動模式 (VM 設定)GRUB 安裝指令配置指令備註
UEFI with GPTgrub-install –efi-directory=/boot –target=x86_64-efi –removable /dev/vdagrub-mkconfig -o /boot/grub/grub.cfg假設 /boot 是您的 EFI 系統分割區掛載點,並將 /dev/vda 調整為您的虛擬機器磁碟。此指令將 GRUB 的 PE32+ 可執行檔安裝到 ESP 中的 \EFI\BOOT\BOOTX64.efi。
BIOS with MBRgrub-install /dev/vdagrub-mkconfig -o /boot/grub/grub.cfg將 /dev/vda 調整為您的虛擬機器磁碟。此指令將相關檔案複製到 /boot/grub 並將引導映像安裝到主引導記錄 (MBR)。
  • 退出 chroot 並重新啟動。

B. 核心配置以適應虛擬硬體

Gentoo 的客製化核心意味著虛擬機器可能缺少必要的驅動程式來識別其新的虛擬硬體。因此,必須在 Gentoo 核心中啟用和編譯 VMware 特定驅動程式,例如 VMware Paravirtual SCSI (PVSCSI) 和 VMXNET3 網路驅動程式 12

關鍵核心選項:

透過 make menuconfig 進入核心配置介面,確保以下選項被啟用:

  • Device Drivers (裝置驅動程式)
  • Fusion MPT device support -> Fusion MPT ScsiHost drivers for SPI 13
  • Misc devices (其他裝置) -> VMware Balloon Driver (需先啟用 VMware VMCI Driver) 13
  • Misc devices (其他裝置) -> VMware VMCI Driver 13
  • SCSI device support (SCSI 裝置支援) -> SCSI low-level drivers (SCSI 低階驅動程式) -> VMware PVSCSI driver support 12
  • Network device support (網路裝置支援) -> Ethernet driver support (乙太網驅動程式支援) -> VMware VMXNET3 ethernet driver 12
  • Input device support (輸入裝置支援) -> Mice (滑鼠) -> Virtual mouse (vmmouse) 13
  • Graphics support (圖形支援) -> DRM driver for VMware Virtual GPU 13
  • File systems (檔案系統)
  • FUSE (Filesystem in Userspace) support 13

重新編譯核心和 initramfs:

在 chroot 環境中,完成核心配置後,重新編譯核心並生成 initramfs。

  • 使用 genkernel: 如果使用 genkernel,請編輯 /etc/genkernel.conf 以包含必要的模組,例如:
    AMODULES_SCSI=”vmw_pvscsi” 12

    確保 LVM 支援也已啟用:
    LVM=”yes” 12

    然後,執行 genkernel 指令來建立核心和 initramfs 映像:
    genkernel –kernel-config=/usr/src/config –clean –menuconfig –microcode=intel –no-splash –module-rebuild all 34

    如果核心的根分割區位於軟體 RAID 上,則 initramfs 對於自動組裝是必要的。使用 –mdadm 選項生成 initramfs,或在生成前在 /etc/genkernel.conf 中設定 MDADM=”yes” 9。
  • 手動編譯: 如果手動編譯核心,請確保所有必要的 VMware 驅動程式都已編譯為核心模組或直接編譯到核心中。

C. 更新 /etc/fstab

在 P2V 遷移後,磁碟裝置名稱(例如 /dev/sda1)可能會發生變化,導致系統無法正確掛載分割區 14。為了解決這個問題,強烈建議在

/etc/fstab 中使用 UUID (Universally Unique Identifier) 或 PARTUUID 來識別磁碟分割區 14

  • 取得 UUID/PARTUUID: 在 chroot 環境中,使用 blkid 指令來查詢所有分割區的 UUID 和 PARTUUID:
    blkid
  • 編輯 /etc/fstab: 使用 vi 或 nano 編輯 /etc/fstab 檔案,將所有裝置名稱替換為對應的 UUID 或 PARTUUID。
    例如,將 /dev/sda1 / ext4 defaults 0 1 更改為 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults 0 1 14。
  • 重新掛載: 儲存並退出 /etc/fstab 後,嘗試重新掛載所有檔案系統以驗證更改:
    mount -a
    如果沒有錯誤,則表示 fstab 配置正確。

D. 安裝 open-vm-tools

open-vm-tools 是 VMware 建議用於 Gentoo 客體系統的工具,它提供了與虛擬機器管理程式更好的互動,並提升虛擬機器的效能 13。務必在虛擬機器成功啟動並運行後再安裝

open-vm-tools,而不是在轉換過程中 5

  • 安裝 open-vm-tools:
    emerge –ask app-emulation/open-vm-tools 13
  • 配置服務:
  • 啟動 vmware-tools 服務:rc-service vmware-tools start 13
  • 將 vmware-tools 服務新增到預設運行級別,使其在每次啟動時自動運行:rc-update add vmware-tools default 13
  • 執行 VMware Tools 配置腳本:/usr/bin/vmware-config-tools.pl 36
  • 驗證: 重新啟動虛擬機器,並在 ESXi 主控台或 vCenter 中驗證 VMware Tools 是否報告為正在運行。

E. 調整 SATA 模式 (疑難排解)

如果虛擬機器在啟動時仍然遇到問題,特別是停在「RAM disk loading」階段,這可能與實體機器和虛擬機器之間的 SATA 模式不匹配有關 6。如果實體機器的 SATA 模式設定為「IDE」模式,而虛擬機器預期為「AHCI」,則可能會出現此問題。在這種情況下,可能需要調整虛擬機器的虛擬硬體設定,使其 SATA 控制器模式與原始實體機器的設定相符,或者確保核心已編譯以支援新的 AHCI 模式。

結論與建議

將實體 Gentoo Linux 系統遷移至 VMware ESXi 是一個複雜的過程,尤其對於像 Gentoo 這樣高度客製化的發行版。使用者先前的失敗經驗突顯了自動化 P2V 工具(如 Synology Active Backup for Business 和 DiskGenius)的局限性,這些工具通常不具備對 Gentoo 獨特核心配置和引導載入程式結構的內建支援。VMware vCenter Converter Standalone 雖然是官方工具,但其明確不支援 Gentoo Linux 的重新配置功能,且不支援軟體 RAID,這進一步證實了自動化方法的不足。

基於本報告的分析,對於 Gentoo 系統的 P2V 遷移,手動的、基於映像的方法被證明是最可靠且確定成功的方式。這包括:

  1. 冷複製: 始終從 LiveCD 環境中對實體機器進行冷複製,以確保磁碟映像的一致性,避免運行中系統的檔案鎖定和資料不一致問題。
  2. 精確映像建立: 使用 dd 等低階工具建立磁碟的逐扇區精確副本,或使用 Clonezilla 等工具進行全面磁碟映像。
  3. VMDK 轉換與描述符建立: 將原始映像轉換為 ESXi 所需的 VMDK 格式,並手動建立或修改 VMDK 描述符檔案,以確保虛擬磁碟的正確識別和配置。
  4. 虛擬機器硬體配置: 在 ESXi 中建立虛擬機器時,精確匹配原始實體機器的啟動模式(BIOS/UEFI),並為儲存和網路選擇高效能的 VMware 準虛擬化驅動程式(PVSCSI 和 VMXNET3)。
  5. 遷移後核心與引導載入程式調整: 這是 Gentoo 遷移成功的關鍵。由於硬體環境的變化,必須在虛擬機器內部重新編譯 Gentoo 核心以包含 VMware 虛擬硬體驅動程式,並重新安裝和配置 GRUB 引導載入程式。同時,將 /etc/fstab 中的磁碟識別方式從裝置名稱更改為 UUID 或 PARTUUID,以確保掛載的一致性。
  6. 安裝 open-vm-tools: 在虛擬機器成功啟動後,安裝 open-vm-tools 以最佳化虛擬機器效能和管理功能。

建議:

對於未來的 Gentoo P2V 任務,建議採取以下步驟:

  • 詳細規劃: 在開始遷移之前,全面記錄實體 Gentoo 系統的所有關鍵配置,包括啟動模式、分割區表、核心配置和軟體 RAID 狀態。
  • 優先選擇手動映像: 避免依賴不支援 Gentoo 的自動化 P2V 工具。優先使用 dd 或 Clonezilla 進行冷映像。
  • 預期並準備遷移後工作: 了解 Gentoo 的客製化特性意味著遷移後幾乎總是需要手動調整核心、引導載入程式和 fstab。提前準備好 LiveCD 和相關指令。
  • 測試與驗證: 遷移完成後,務必進行徹底的測試,確保所有服務正常運行且系統穩定。

透過遵循這些詳細的步驟和建議,可以顯著提高將實體 Gentoo Linux 系統成功遷移至 VMware ESXi 的機率,並克服自動化工具所帶來的挑戰。

引用的著作

  1. How to use VMware Converter for P2V (Physical to Virtual …, 檢索日期:7月 8, 2025, https://www.altaro.com/vmware/vmware-converter-p2v/
  2. How to Perform VMware Converter Linux P2V Migration? – Vinchin Backup & Recovery, 檢索日期:7月 8, 2025, https://www.vinchin.com/vm-migration/convert-linux-to-vmware.html
  3. How to Convert Physical Machines to VMware VMs Using Clonezilla …, 檢索日期:7月 8, 2025, https://www.vinchin.com/vm-migration/clonezilla-vmware.html
  4. ESXi Physical to Virtual Migration Unused Hard Drive Space – Server Fault, 檢索日期:7月 8, 2025, https://serverfault.com/questions/566764/esxi-physical-to-virtual-migration-unused-hard-drive-space
  5. P2V Best practices | vmware – Wix.com, 檢索日期:7月 8, 2025, https://vinayakpmdk.wixsite.com/vmware/p2v-best-practices
  6. Move gentoo on new hardware. – Gentoo Forums :: View topic, 檢索日期:7月 8, 2025, https://forums.gentoo.org/viewtopic-t-1093268-start-0.html
  7. How to Fix ESXi Boot Failure in UEFI Configuration? | DiskInternals, 檢索日期:7月 8, 2025, https://www.diskinternals.com/vmfs-recovery/fix-esxi-boot-failure-uefi-configuration/
  8. GRUB – Gentoo wiki, 檢索日期:7月 8, 2025, https://wiki.gentoo.org/wiki/GRUB
  9. User:SwifT/Complete Handbook/Software RAID – Gentoo Wiki, 檢索日期:7月 8, 2025, https://wiki.gentoo.org/wiki/User:SwifT/Complete_Handbook/Software_RAID
  10. View topic – Move gentoo on new hardware., 檢索日期:7月 8, 2025, https://forums.gentoo.org/viewtopic-p-8310720.html?sid=ad9d78f561b651531961893574843301
  11. Kernel/Configuration – Gentoo Wiki, 檢索日期:7月 8, 2025, https://wiki.gentoo.org/wiki/Kernel/Configuration
  12. View topic – Getting Gentoo to boot on VMware ESXi, 檢索日期:7月 8, 2025, https://forums.gentoo.org/viewtopic-t-1116502-start-0.html
  13. VMware – Gentoo Wiki, 檢索日期:7月 8, 2025, https://wiki.gentoo.org/wiki/VMware
  14. /etc/fstab – Gentoo wiki, 檢索日期:7月 8, 2025, https://wiki.gentoo.org/wiki//etc/fstab
  15. Elastic Compute Service:Configure UUIDs in the fstab file to automatically mount data disks – Alibaba Cloud, 檢索日期:7月 8, 2025, https://www.alibabacloud.com/help/en/ecs/use-cases/configure-uuids-in-the-fstab-file-to-automatically-attach-data-disks
  16. [Help/Information] Move bare metal Ubuntu linux server to ESXi. : r/homelab – Reddit, 檢索日期:7月 8, 2025, https://www.reddit.com/r/homelab/comments/1k8znz/helpinformation_move_bare_metal_ubuntu_linux/
  17. To create a VMDK file from a disk using the dd command, you first need to create a raw disk, 檢索日期:7月 8, 2025, http://www.popular-hifi.com/server/proxmox/dd_copy_convert_process.pdf
  18. Fun Gentoo Challenges – Reddit, 檢索日期:7月 8, 2025, https://www.reddit.com/r/Gentoo/comments/ef3wmw/fun_gentoo_challenges/
  19. Gentoo has been the Distro with the Least Problems for me – Reddit, 檢索日期:7月 8, 2025, https://www.reddit.com/r/Gentoo/comments/10alfrx/gentoo_has_been_the_distro_with_the_least/
  20. P2V Process Fails Operating System Not Found | VMware vSphere – Broadcom Community, 檢索日期:7月 8, 2025, https://community.broadcom.com/vmware-cloud-foundation/discussion/p2v-process-fails-operating-system-not-found
  21. Can you create Virtual Machines, in VMWare Workstation from a …, 檢索日期:7月 8, 2025, https://serverfault.com/questions/98898/can-you-create-virtual-machines-in-vmware-workstation-from-a-clonezilla-image
  22. vCenter Converter: P2V Virtual Machine Converter | VMware, 檢索日期:7月 8, 2025, https://www.vmware.com/products/cloud-infrastructure/converter
  23. Supported Operating Systems – Broadcom TechDocs – Broadcom Inc., 檢索日期:7月 8, 2025, https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vcenter-converter/6-6/vmware-vcenter-converter-standalone-documenation/system-requirements-and-limitations/supported-operating-systems.html
  24. VMware Standalone Converter guest OS support (2024 …, 檢索日期:7月 8, 2025, https://vinfrastructure.it/2024/07/vmware-standalone-converter-guest-os-support-2024/
  25. How to convert a Linux machine with VMware vConverter …, 檢索日期:7月 8, 2025, https://communities.vmware.com/t5/VMware-Fusion-Discussions/How-to-convert-a-Linux-machine-with-VMware-vConverter-Standalone/td-p/2245972
  26. How to convert flat raw disk image to vmdk for virtualbox or vmplayer? – Stack Overflow, 檢索日期:7月 8, 2025, https://stackoverflow.com/questions/454899/how-to-convert-flat-raw-disk-image-to-vmdk-for-virtualbox-or-vmplayer
  27. Converting between image formats – OpenStack Documentation, 檢索日期:7月 8, 2025, https://docs.openstack.org/image-guide/convert-images.html
  28. Convert raw to vmdk – Digital Forensics & Incident Response, 檢索日期:7月 8, 2025, https://www.iblue.team/general-notes-1/convert-raw-to-vmdk-for-virtual-machine
  29. How to create VMware Disk Descriptor files – Domalab, 檢索日期:7月 8, 2025, https://domalab.com/create-vmware-disk-descriptor-files/
  30. VMware missing VMDK file | DiskInternals, 檢索日期:7月 8, 2025, https://www.diskinternals.com/vmfs-recovery/vmware-vmdk-file-missing/
  31. Rocky Linux 8 ISO won’t boot on ESXi – SOLVED, 檢索日期:7月 8, 2025, https://forums.rockylinux.org/t/rocky-linux-8-iso-wont-boot-on-esxi-solved/3236
  32. [SOLVED] How do I re-install grub? – Gentoo Forums :: View topic, 檢索日期:7月 8, 2025, https://forums.gentoo.org/viewtopic-p-8812077.html?sid=242f668d94222bafe243f0197d79e08c
  33. Notes on fixing a broken Gentoo grub install… – 41J Blog, 檢索日期:7月 8, 2025, https://41j.com/blog/2020/01/notes-on-fixing-a-broken-gentoo-grub-install/
  34. Gentoo Linux: Building/rebuilding a kernel and Intel CPU microcode in an installation with initramfs | Fitzcarraldo’s Blog, 檢索日期:7月 8, 2025, https://fitzcarraldoblog.wordpress.com/2022/01/19/gentoo-linux-building-rebuilding-a-kernel-and-intel-cpu-microcode-in-an-installation-with-initramfs/
  35. View topic – VMware Tools needs mkinitrd or update-initramfs – Gentoo Forums, 檢索日期:7月 8, 2025, https://forums.gentoo.org/viewtopic-p-6963616.html
  36. Install VMware Tools on a Gentoo Guest · UnixSherpa, 檢索日期:7月 8, 2025, https://www.unixsherpa.com/solution/install-vmware-tools-on-a-gentoo-guest/

在〈手動 P2V 遷移 Gentoo:避免常見陷阱〉中有 1 則留言

  1. 自動引用通知: 從VMware轉換至Proxmox VE的步驟與指南 - The KE Factor

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端