Skip to content

ʻO ke kaulahao kiʻi paʻi kiʻi mīkini virtual i haki (.VMDK / .VHDX / .QCOW2) a me ka hoʻopakele disk

He ʻokoʻa nā helu ulia pōpilikia ma ka ʻāina. Hoʻohana kēia ʻaoʻao i ka 911, ka helu no ʻAmelika a me Kanada. Nui nā ʻāina ʻē aʻe i hoʻohana i ka 112, 999, a i ʻole ka helu ʻē aʻe. E huli i ka helu no kou ʻāina.

Ke hōʻole koke ʻia kahi mīkini Virtual (VM) ma VMware ESXi / Workstation, Microsoft Hyper-V, Proxmox VE / QEMU-KVM, a i ʻole Oracle VirtualBox i ka hoʻā ʻana ma hope o ka pau ʻana o kahi hana hoʻihoʻi, holo ka hale kūʻai ʻikepili i waho o kahi disk (0 bytes free), a i ʻole kekahi luna hoʻoponopono i hoʻopā i kahi faila snapshot, hiki i kahi kaomi panicked hoʻokahi ke holoi i nā mahina a i ʻole mau makahiki o ka ʻikepili ʻoihana ola. ʻO nā kiʻi paʻi kiʻi mīkini maʻemaʻe ** ʻaʻole nā ​​​​kākoʻo kūʻokoʻa piha**; he palupalu lākou Copy-on-Write (CoW) delta differencing kaulahao (*-000001-delta.vmdk, *.avhdx, a i ʻole waihona kākoʻo .qcow2 overlays) kahi i kākau ʻia ai kēlā me kēia poloka i kākau ʻia mai ka wā i lawe ʻia ai ke kiʻi paʻi i loko o nā faila delta keiki, ʻoiai ʻo ka disk kumu kumu i noho hau i ka wā ma mua.

Inā ʻike ʻoe i nā hewa like "The parent virtual disk has been modified since the child was created (Parent CID does not match)" ma VMware, "Cannot boot: The chain of virtual hard disks is broken" ma Hyper-V, a i ʻole "Could not open backing file: L1/L2 table corrupted" ma QEMU/Proxmox, ** kuhikuhi hou i ka VM pololei ma ka Base Disk (flat.vmdk a kumu paha .vhdx) a ʻo ka hoʻouka ʻana he mea make**. ʻO ka hana ʻana pēlā e hoʻopaʻa ai i ke kikowaena e like me 6 mau mahina aku nei i ka wā i hana ʻia ai ka paʻi kiʻi mua, ** hoʻopau koke i ka loulou GUID/CID makua-keiki cryptographic a hoʻolilo i kēlā me kēia kiʻi delta mai ia lā i makua ʻole a hiki ʻole ke hoʻohui ʻia**.

Hāʻawi kēia alakaʻi i ka hana hou ʻana i ke kaulahao paʻi paʻi ʻole, ka hoʻoponopono poʻo wehewehe wehewehe, a me nā kaʻina hoʻoneʻe waihona malihini ma waho o ka hui ma muli o VMware e Broadcom Knowledge Base Articles (KB 1007969 / 316578 a me KB 1002511), Microsoft Hyper-V Merge-VHD a Set-VHD ʻenehana kikoʻī, QEMU qemu-img a libguestfs (guestmount) nā kūlana forensic, a me NIST Special Publication 800-86.

E hana i kēia i kēia manawa

Inā hōʻole ka mīkini maʻemaʻe e hoʻomaka a hoʻolei paha i kahi kaulahao kiʻi paʻi kiʻi ʻia / hewa disk virtual hewa:

  1. ** MAI hoʻoponopono i nā hoʻonohonoho VM e hoʻomaka pololei mai ka Base Disk (Server.vmdk a i ʻole Server.vhdx) ke kiʻi ʻia nā kiʻi delta (-000001.vmdk a i ʻole .avhdx) aia i loko o ka waihona.** ʻO ka manawa e holo pololei ai ka ʻōnaehana lawelawe malihini mai ka disk makua kumu no 2 kekona, kākau ka OS malihini i nā kaha manawa boot a me NTFS/ext4 hōʻano hou puke puke i loko o ka disk kumu, e hoʻololi ana i ka disc makua Content ID (CID) ma VMware a i ʻole ** Linkage GUID / Timestamp** ma Hyper-V. Na kēlā kāmaʻa hoʻokahi e uhaki i ke kaulahao holoʻokoʻa o nā kiʻi paʻi keiki e hilinaʻi ana i ka disk base e noho maloʻo bit-for-bit. Inā ʻike ʻia kāu lumi kikowaena i ke ahi ʻā, ʻaʻole hoʻomaha, a i ʻole pōʻino kino, e haʻalele a kāhea i kāu helu pilikia kūloko (911 ma United States a me Kanada, 112 ma waena o ka European Union, 999 ma United Kingdom) a i ʻole e nānā helu pilikia.
  2. AOLE e holoi .avhdx, -delta.vmdk, a i ʻole -sesparse.vmdk nā faila ma Windows Explorer a i ʻole ka ESXi Datastore Browser e "hoʻokuʻu i ka hakahaka disk." ʻAʻole like me nā faila manawa maʻamau, .avhdx a -delta.vmdk nā faila ** ʻO kāu pahu paʻakikī ola i kēia manawa **. Inā hoʻokumu ʻia kahi kiʻi paʻi ma 8 mau mahina i hala aku nei e kahi hana kākoʻo Veeam/CommVault paʻa a haʻalele i ka holo ʻana, mālama ʻia ka 100 pakeneka o kēlā me kēia hana waihona waihona, invoice, a me ka faila i hana ʻia i nā mahina 8 i hala. .avhdx a i ʻole -delta.vmdk waihona. ʻO ka holoi ʻana iā lākou e holoi i nā ʻikepili a pau i hana ʻia mai ka hoʻomaka ʻana o ke kiʻi.
  3. Kopi a clone i nā mea a pau .vmdk, .vhdx/.avhdx, a i ʻole .qcow2 waihona i ka waihona waho / lua ma mua o ka holo ʻana i kekahi kauoha hoʻohui, hana, a hoʻoponopono paha. ʻO ka hoʻohui ʻana i kahi kaulahao snapshot e kākau i nā poloka delta āpau i hope i loko o ka disk makua ma kahi. Inā hāʻule ka hoʻohui ʻana ma muli o kahi ʻāpana disk maikaʻi ʻole a i ʻole ka ʻikepili piha i ka hewa, hewa nā disks makua a me nā keiki ke ʻole ʻoe e lawe mua i kahi kope faila.
  4. ** Inā hāʻule ka hypervisor no ka mea ua pā ka mea hoʻokipa Datastore / Volume i 100% piha (No space left on device), MAI ho'āʻo e "Delete / Consolidate Snapshots" a hiki i kou hoʻohui ʻana i kahi kaʻawale a i ʻole clone i kahi hale kūʻai ʻikepili nui aʻe. ʻO ka hoʻāʻo ʻana e hoʻohui i kahi hale kūʻai ʻikepili piha 99% e hāʻule i ka hypervisor mid-commit.
  5. ** Palapala ʻāina i ka makua pololei -> kaulahao hilinaʻi keiki e hoʻohana ana i nā kauoha nānā heluhelu wale nō (vmkfstools -e, Get-VHD, a i ʻole qemu-img info --backing-chain) ma mua o ka hoʻopā ʻana i hoʻokahi byte.** Hoʻopaʻa inoa ʻia kēlā me kēia poʻomanaʻo waihona kiʻi i ka inoa faila makua pololei a me ka ID cryptographic makua e manaʻo nei e noho pololei ma luna.
flowchart TD
    A["Hōʻole ʻo VM i ka hoʻopaʻa ʻana: ʻO ke kaulahao paʻi kiʻi i haki ʻia, ʻaʻole kūpono ʻole CID makua, a i ʻole VMDK/VHDX/QCOW2 hewa."] --> B["HOʻOPI: MAI hoʻopaʻa pololei i ka disk base, a mai holoi i nā faila -delta.vmdk a i ʻole .avhdx."]
    B --> C["KaʻAnuʻu Hana 1: E nānā i ka Host Datastore / Volume Free Space (`df -h` / `esxcli storage filesystem list`)"]
    C --> D["KaʻAnuʻu Hana 2: E kope i nā waihona kumu a me nā kiʻi paʻi kiʻi i kahi kaʻa lua NAS/SAN/USB ma mua o ka hoʻololi ʻana"]
    D --> E{"ʻO wai ka Hypervisor / Virtual Disk Format i pili?"}
    E -->|"1. VMware ESXi / Hale Hana (.vmdk / -flat.vmdk / -delta.vmdk / -sesparse.vmdk)"| F["E nānā i nā mea wehewehe kikokikona (`cat *.vmdk`) a nānā i ke kaulahao (`vmkfstools -e Server-000002.vmdk`)"]
    F --> G{"He aha ka hewa VMware VMDK?"}
    G -->|"Kūlike CID makua (`parentCID .= CID o ka makua`)"| H["Hoʻoponopono i ka mea wehewehe kikokikona keiki `.vmdk` no laila ʻo `parentCID` e pili ana i ka `CID` o ka makua, A i ʻole clone leaf disk i kahi VMDK hoʻohui hou (`vmkfstools -i`)"]
    G -->|"Nalo ka mea wehewehe kikokikona 1-KB `.vmdk` ('-flat.vmdk` nui wale no)"| I["E helu i ka nui byte pololei / 512 mau ʻāpana a hana hou i ka wehewehe kikoʻī `.vmdk` me `vmkfstools -c`"]
    E -->|"2. Microsoft Hyper-V (.vhdx a me .avhdx kaulahao)"| J["E nānā i ke kaulahao mai ka `.avhdx` hou loa i luna: `Get-VHD -Path *.avhdx | E koho i ke ala,ParentPath`"]
    J --> K["Hoʻopili hou i ka ʻōkuhi makua i haki (`Set-VHD -Path child.avhdx -ParentPath parent.vhdx -IgnoreIdMismatch`) a i ʻole hui pūnaewele (`Merge-VHD`)"]
    E -->|"3. Proxmox / KVM / QEMU (.qcow2) a i ʻole VirtualBox (.vdi)"| L["E nānā i ka 'qemu-img info --backing-chain`; hoʻoponopono i nā papa helu helu hou/L2 (`qemu-img check -r all`) a i ʻole rebase (`qemu-img rebase -u`)"]
    H --> M["Hoʻopakele Fallback File Out-of-Band: E kau pololei i kekahi kaulahao ma ke ʻano Heluhelu wale nō ma o `guestmount --ro` a i ʻole `7-Zip` / `UFS Explorer`"]
    I --> M
    K --> M
    L --> M

E hoʻomaopopo i ka hana maoli ʻana o nā kaulahao snapshot mīkini virtual

Inā ʻoe e holo i ka VMware ESXi, Microsoft Hyper-V, Proxmox/KVM, a i ʻole VirtualBox, hoʻohana kēlā me kēia hypervisor i nā kiʻi paʻi me ka hoʻohana ʻana i ka hoʻolālā kumu like: kahi papa inoa i hoʻohui ʻia o nā Disks Heluhelu-Only a me kahi Heluhelu-Write Child Leaf Delta Disk.

[Base Disk: Server.vmdk / Server.vhdx]  <-- Frozen Read-Only at Snapshot 1 (e.g., Jan 1)
         ^
         | (Points to Parent Path + Parent CID/GUID: 1234abcd)
[Snapshot 1: Server-000001.vmdk / Server_A.avhdx]  <-- Frozen Read-Only at Snapshot 2 (e.g., June 1)
         ^
         | (Points to Parent Path + Parent CID/GUID: 5678ef01)
[Snapshot 2 (Active Leaf): Server-000002.vmdk / Server_B.avhdx]  <-- Active Read/Write Today (Oct 31)
  • Ke makemake ka VM e kākau i kahi poloka hou i kēia lā, kākau ʻo ia WALE i ka faila lau lalo (Snapshot 2).
  • Ke makemake ka VM e heluhelu i kahi poloka i kēia lā, nānā ka hypervisor Snapshot 2 mua. Inā hoʻololi ʻia kēlā poloka mai Iune 1, heluhelu mai ia mai Snapshot 2. Inā ʻaʻole, e nānā i ke kaulahao i Snapshot 1. Inā ʻaʻole i hoʻololi ʻia ma laila, heluhelu ia i ka poloka kumu mai ka Base Disk.
  • No ke aha e haki ai nā kaulahao: Hoʻopaʻa ʻia kēlā me kēia keiki paʻi kiʻi i ʻelua mau kuhikuhi koʻikoʻi ma kona poʻo: (1) ʻO ke ala faila o kona makua ponoʻī, a me (2) He 32-bit Content ID (CID ma VMware) a i ʻole 128-bit Linkage GUID (ParentUniqueId i Hyper-V) e hana hou ʻia i kēlā me kēia manawa e wehe ʻia kahi disk makua no ke kākau ʻana. Inā hoʻoneʻe kekahi i kahi faila, kapa hou i kahi waihona, a i ʻole e kau pōkole i ka disk makua ma ke ʻano heluhelu-kākau, CID / GUID hoʻololi, a hōʻole koke ka hypervisor i ke kau ʻana i ke kiʻi kiʻi keiki e pale i ka palaho palaka.
Pākuʻi Hypervisor Nā waihona waihona kumu Snapshot / Delta Files Mea Hana CLI Nānā Chain Mea Hoʻohui Palekana / Hoʻohui CLI
VMware ESXi (VMFS-5 / VMFS-6) & Keena Hana VM.vmdk (500-byte wehewehe kikokikona maʻamau) + VM-flat.vmdk (ʻikepili disk binary makaʻala) VM-000001.vmdk (mea wehewehe kikokikona) + VM-000001-sesparse.vmdk (VMFS-6) a i ʻole VM-000001-delta.vmdk (VMFS-5) vmkfstools -e VM-000002.vmdk a cat VM*.vmdk vmkfstools -i VM-000002.vmdk /vmfs/volumes/NewDS/Merged.vmdk (Klone/hui ʻole i waho o ka wahi)
Microsoft Hyper-V (Windows Server) VM.vhdx (a i ʻole hoʻoilina .vhd) VM_<GUID>.avhdx (a i ʻole .avhd) PowerShell: Loaʻa-VHD -Path *.avhdx \ | Koho i ke ala,ParentPath,VhdType PowerShell: Set-VHD -Path child.avhdx -ParentPath parent.vhdx a Merge-VHD -Path child.avhdx -DestinationPath parent.vhdx
Proxmox VE / QEMU / KVM (Linux) vm-100-disk-0.qcow2 (a i ʻole ka nui LVM/ZFS maka) Ka uhi waho .qcow2 me ke poʻo waihona kākoʻo (a i ʻole ka papa kiʻi kiʻi QCOW2) qemu-img info --backing-chain top_overlay.qcow2 qemu-img convert -O qcow2 top_overlay.qcow2 flattened_rescue.qcow2 (Ka palekana ma waho o ka wahi palahalaha) a i ʻole qemu-img commit
Oracle VirtualBox Disk.vdi (i loko o ka waihona VM) {UUID}.vdi i loko Snapshots/ waihona waihona + .vbox Kakau palapala XML VBoxManage showmediuminfo disk "{UUID}.vdi" VBoxManage clonemedium disk "{Newest_Snapshot_UUID}.vdi" Flattened_Rescue.vdi

Track 1: Hoʻopakele iā VMware ESXi & Workstation .vmdk nā kaulahao paʻi kiʻi

I loko o VMware ESXi, aia i loko o kahi disk virtual he ʻelua faila kaʻawale no ka disk base a me ʻelua faila kaʻawale no kēlā me kēia kiʻi paʻi: 1. He faila wehewehe kikokikona liʻiliʻi (-500-byte) (Server.vmdk a Server-000001.vmdk) e paa ana i ka CID, parentCID, geometry disk, a me ka inoa file pololei o ka nui binary. (E hoʻomaopopo: Hūnā ka waihona ESXi Datastore Browser pūnaewele GUI i ka paʻa -flat.vmdk a -sesparse.vmdk nā waihona binary a hōʻike wale i hoʻokahi ikona i hui ʻia, pono ʻoe e hoʻohana i kahi SSH terminal session ma ka ESXi host e ʻike i nā faila ʻoiaʻiʻo). 2. He File Extent Data Nui-gigabyte binary (Server-flat.vmdk no ka diski kumu, a Server-000001-sesparse.vmdk a i ʻole Server-000001-delta.vmdk no kēlā me kēia paʻi kiʻi).

Nānā 1A: Hoʻoponopono "The parent virtual disk has been modified since the child was created (Parent CID mismatch)"

  1. SSH i loko o ka ESXi host a hoʻokele i ka papa kuhikuhi hale kūʻai ʻikepili o VM:
    cd /vmfs/volumes/<Datastore_Name>/<VM_Folder_Name>/
    ls -la *.vmdk
    
  2. Pa'i i ka CID, parentCID, a parentFileNameHint ma nā mea wehewehe kikokikona a pau .vmdk faila i ka manawa hoʻokahi: (mea nui: holo wale cat a i ʻole grep ma ka mea wehewehe kikokikona 500-byte .vmdk faila, ʻAʻole ma ka multi-gigabyte -flat.vmdk a i ʻole -sesparse.vmdk waihona).
    grep -E "CID|parentFileNameHint|Extent description" -A 2 Server.vmdk Server-00000*.vmdk
    
  3. ** Hoʻohālikelike i ka CID o kela me keia makua kue i ka parentCID o kana keiki ponoi:** E nānā i ka hopena:
    Server.vmdk:           CID=1a2b3c4d
                           parentCID=ffffffff   (ffffffff means this is the root Base Disk)
    
    Server-000001.vmdk:    CID=99887766
                           parentCID=55443322   <-- ERROR: Should equal Server.vmdk's CID (1a2b3c4d)
                           parentFileNameHint="Server.vmdk"
    
    Server-000002.vmdk:    CID=aabbccdd
                           parentCID=99887766   <-- OK: Matches Server-000001.vmdk's CID (99887766)
                           parentFileNameHint="Server-000001.vmdk"
    
  4. ** Hoʻoponopono i ka haki parentCID i ka wehewehe keiki a hōʻoia me vmkfstools -e:**
  5. ʻO ka mea mua, e hoʻihoʻi i nā faila wehewehe kikokikona (cp Server-000001.vmdk Server-000001.vmdk.bak).
  6. Wehe Server-000001.vmdk i loko vi a hoololi parentCID=55443322 i parentCID=1a2b3c4d (kulike Server.vmdk'o kēia manawa CID).
  7. E hoʻāʻo i ka pololei o ke kaulahao mai ka paʻi kiʻi hou loa (helu helu kiʻekiʻe) me ka hoʻohana ʻana vmkfstools -e:
    vmkfstools -e Server-000002.vmdk
    
  8. Inā paʻa ke kaulahao, hoʻopuka ʻo ESXi: Disk chain is consistent.
  9. Hoʻohui ʻAʻole Hoʻopōʻino (vmkfstools -i Klone ma waho o kahi):
  10. Ina Server.vmdk ua hoʻololi iki ʻia ma mua o kou hoʻoponopono ʻana i ka parentCID, mai hoʻohui i kahi ma luna o kāu kope hoʻokahi. Akā, kuhikuhi vmkfstools -i ma ka ** kiʻi lau hou loa (Server-000002.vmdk)** a hoʻopaʻa i ke kaulahao holoʻokoʻa i loko o kahi VMDK palahalaha hoʻokahi hou ma kahi hale kūʻai ʻikepili me kahi kaʻawale:
    vmkfstools -i Server-000002.vmdk /vmfs/volumes/<Target_Datastore>/Server_Rescue/Server_Merged.vmdk -d thin
    
  11. vmkfstools -i heluhelu i kēlā me kēia poloka mai Server-000002.vmdk iho i lalo Server-000001.vmdk a Server-flat.vmdk ma ka **Read-Whenly Mode ** a kākau i kahi maʻemaʻe, kiʻi ʻole Server_Merged.vmdk me ka hoʻopā ʻole i kāu mau faila kumu.

Hōʻike 1B: Hana hou i kahi 500-byte i nalo a holoi ʻia .vmdk mea wehewehe kikokikona i ka wa Server-flat.vmdk paʻa mau

I kekahi manawa hoʻopau ka luna hoʻomalu a i ʻole ka palapala haki Server.vmdk (a i ʻole e pōʻino i 0 bytes), e ho'ōki i ka hōʻike ʻana i ka Pūnaewele Pūnaewele, ʻoiai ʻo ka 500-gigabyte nui Server-flat.vmdk waihona i loaʻa ka 100 pakeneka o kāu ʻikepili maoli e noho mau ana ma laila ma SSH (ls -la *-flat.vmdk).

Hiki iā ʻoe ke hana hou i ka kikokikona maʻamau i nalowale Server.vmdk descriptor file ma 60 kekona me ka nalowale ʻole o hoʻokahi byte o ka ʻikepili i loko Server-flat.vmdk:

# 1. Check the exact byte size of your existing Server-flat.vmdk:
ls -l Server-flat.vmdk
# Example output: -rw------- 1 root root 107374182400 Oct 31 12:00 Server-flat.vmdk  (Exactly 107,374,182,400 bytes)

# 2. Create a temporary dummy VMDK of that EXACT byte size in /tmp or the datastore:
vmkfstools -c 107374182400 -d thin temp_dummy.vmdk

# 3. Delete the dummy binary file (temp_dummy-flat.vmdk) and rename the 500-byte descriptor to Server.vmdk:
rm -f temp_dummy-flat.vmdk
mv temp_dummy.vmdk Server.vmdk

# 4. Edit Server.vmdk in 'vi' and change the filename inside quotes from "temp_dummy-flat.vmdk" to "Server-flat.vmdk":
sed -i 's/temp_dummy-flat.vmdk/Server-flat.vmdk/g' Server.vmdk
# (Also delete the line 'ddb.thinProvisioned = "1"' if the original disk was thick-provisioned)

Nānā 1C: Wehe a .vmdk laka ʻia e kahi mea hoʻokipa ESXi i hoʻopaʻa ʻia a i ʻole ka mea hoʻopio kākoʻo i hāʻule (Cannot open the disk: Failed to lock the file)

Inā hōʻole ka VM i ka mana me Failed to lock the file a i ʻole Cannot open disk: Resource busy, kekahi mea hoʻokipa ESXi i loko o ka pūʻulu (a i ʻole kahi mea Veeam/backup HotAdd i hāʻule i ka wā hoʻihoʻi) e paʻa mau ana i kahi laka faila SCSI / VMFS ma. -flat.vmdk a i ʻole -sesparse.vmdk: 1. E nānā inā loaʻa i kahi VM mea hoʻohana i hoʻokuʻu ʻia i kāu hana VM .vmdk i hoʻopili ʻia i kāna mea hoʻoponopono SCSI virtual: Hoʻoponopono i nā hoʻonohonoho o kāu Veeam/CommVault proxy VMs a wehe i nā disks hana i hoʻopili ʻia (koho "Wehe mai ka Mīkini Virtual," ʻAʻole "Holo i nā faila mai ka hale kūʻai data"). 2. E ʻimi i ka helu MAC host ESXi a me ke kaʻina hana honua e paʻa i ka laka VMFS:

vmfsfilelockinfo -p /vmfs/volumes/<Datastore>/<VM_Folder>/Server-flat.vmdk
SSH i loko o ka pūʻali ESXi kikoʻī e paʻa ana i ka laka, e ʻimi i ke kau ʻia vmx ID honua (esxcli vm process list), a hoʻopau i ka honua hung (esxcli vm process kill --type=force --world-id=<WorldID>).

Track 2: Hoʻopakele iā Microsoft Hyper-V .vhdx a .avhdx nā kaulahao paʻi kiʻi

Ma Microsoft Hyper-V, hana kēlā me kēia wahi mākaʻikaʻi (paʻi kiʻi) i kahi diski paʻakikī virtual like ʻole me ka hoʻonui .avhdx (a i ʻole .avhd ma ka palapala VHD kahiko) i hāʻawi ʻia i kahi inoa faila GUID lōʻihi e like me ProdSQL_A1B2C3D4-E5F6-7890-ABCD-1234567890AB.avhdx.

KaʻAnuʻu Hana 1: Palapala ʻāina i ka chronological pololei .avhdx lāʻau makua-keiki ma PowerShell

Ma mua o ka hoʻohui ʻana a i ʻole ka hoʻopili hou ʻana i kekahi mea ma Hyper-V Manager, wehe i kahi Elevated Administrator PowerShell pukaaniani ma ka Hyper-V host, hoʻokele i ka waihona i loaʻa kāu .vhdx a .avhdx faila, a holo i kēia laina hoʻokahi e hōʻike i ke kaulahao makua-keiki mai ka mea hou a i ka mea kahiko:

# Inspect every .vhdx and .avhdx in the directory, sorted by LastWriteTime:
Get-ChildItem -Filter "*.*vhd*" | ForEach-Object {
    Get-VHD -Path $_.FullName -ErrorAction SilentlyContinue |
    Select-Object Path, ParentPath, VhdType, FileSize, Size
} | Format-List

E nana i ka Path a ParentPath nā māla. E hōʻike lākou i ke kauoha kaulahao pololei: - ProdSQL.vhdx -> ParentPath: (blank) (Root Base Disk, Kahiko loa) - ProdSQL_1111.avhdx -> ParentPath: D:\VMs\ProdSQL.vhdx (Keiki 1) - ProdSQL_2222.avhdx -> ParentPath: D:\VMs\ProdSQL_1111.avhdx (Keiki 2) - ProdSQL_3333.avhdx -> ParentPath: D:\VMs\ProdSQL_2222.avhdx (Kōpae Leaf Active Hou loa)

KaʻAnuʻu 2: Hoʻoponopono "The chain of virtual hard disks is broken" a i ʻole "Differencing disk parent ID mismatch" (Set-VHD -IgnoreIdMismatch)

Pehea inā hoʻoneʻe kekahi i ka waihona VM mai C:\VMs\ i E:\VMs\, a i ʻole i hoʻopaʻa ʻia ProdSQL.vhdx no 5 kekona, hana ProdSQL_1111.avhdx e hāʻule me: The chain of virtual hard disks is broken. The system cannot locate the parent virtual hard disk for the differencing disk a i ʻole There is a mismatch in the virtual disk identifiers?

E hoʻohana i ka mana Hyper-V PowerShell cmdlet Set-VHD me ka -IgnoreIdMismatch hae (ma hope o ke kākoʻo mua ʻana i nā faila):

# Relink a child .avhdx to its parent .vhdx/.avhdx (adding -IgnoreIdMismatch if the parent timestamp/GUID shifted):
Set-VHD -Path "E:\VMs\ProdSQL_1111.avhdx" -ParentPath "E:\VMs\ProdSQL.vhdx" -IgnoreIdMismatch

KaʻAnuʻu Hana 3: Hoʻohui lima i kahi keiki makua ʻole .avhdx kaulahao mai NEWEST a OLDEST (Merge-VHD)

Ke waiho ʻia e kahi mea hoʻihoʻi 15 makua ʻole .avhdx waihona i loko o kāu waihona i ʻike ʻole ʻia i loko o ka lāʻau "Checkpoints" Hyper-V Manager GUI, pono ʻoe e hoʻohui lima iā lākou ma PowerShell oiai ua pio ka VM.

Danger

Ka Rula Hao o Hyper-V .avhdx Hoʻohui: Pono ʻoe e hoʻohui mau mai ka NEWEST (lau ʻōpio) .avhdx i loko o kona makua ponoʻī, e hana ana i kou ala i kēlā me kēia ʻanuʻu i hope i ke kaulahao a hiki i ke kumu wale nō. .vhdx koe. Eia kekahi laʻana, ma kahi kaulahao Base.vhdx <- Child1.avhdx <- Child2.avhdx <- Child3_Newest.avhdx: 1. Hoʻohui Child3_Newest.avhdx -> i loko Child2.avhdx. 2. Hoʻohui Child2.avhdx -> i loko Child1.avhdx. 3. Hoʻohui Child1.avhdx -> i loko Base.vhdx. 4. E kuhikuhi i nā hoʻonohonoho VM ma Base.vhdx a kāmaʻa.

E holo i kēia mau kauoha PowerShell ma kahi ** kope hana ** o ka waihona:

# Step 1: Merge Child 3 (Newest) into Child 2:
Merge-VHD -Path "E:\VMs\ProdSQL_3333.avhdx" -DestinationPath "E:\VMs\ProdSQL_2222.avhdx"

# Step 2: Merge Child 2 into Child 1:
Merge-VHD -Path "E:\VMs\ProdSQL_2222.avhdx" -DestinationPath "E:\VMs\ProdSQL_1111.avhdx"

# Step 3: Merge Child 1 into the Base .vhdx:
Merge-VHD -Path "E:\VMs\ProdSQL_1111.avhdx" -DestinationPath "E:\VMs\ProdSQL.vhdx"

Track 3: Hoʻopakele iā Proxmox VE / QEMU / KVM .qcow2 a me VirtualBox .vdi kaulahao

1. Ke nānā ʻana a hoʻoponopono ʻana i nā papa QCOW2 L1/L2 Cluster & Refcount Tables (qemu-img check)

I ka wā e loaʻa ai i kahi pūʻali Linux KVM a i ʻole Proxmox ka hoʻopau ʻana o ka mana me ka ʻole o ka cache i kākoʻo ʻia i ka pākaukau, a .qcow2 ʻAʻole hiki ke hoʻopaʻa pinepine ʻia ka disk virtual qcow2: Marking image as corrupt: L2 table offset unaligned a i ʻole Refcount block corrupted. 1. Kopi mua i ka .qcow2 waihona (cp vm-100-disk-0.qcow2 vm-100-disk-0.qcow2.bak) 2. E nānā i ke kaulahao hope a me ka papa inoa paʻi kiʻi i loko:

qemu-img info --backing-chain vm-100-disk-0.qcow2
qemu-img snapshot -l vm-100-disk-0.qcow2
3. Hoʻoponopono i nā puʻupuʻu leʻa a me nā papa helu helu ʻino ma kāu kope hana:
qemu-img check -r all vm-100-disk-0.qcow2

2. Hoʻoponopono ʻana i kahi ala ala waihona kākoʻo QCOW2 i haki (qemu-img rebase -u)

Inā he paʻi kiʻi QCOW2 waho (overlay.qcow2) ʻaʻole hiki ke wehe ʻia no ka mea kona waihona kākoʻo makua (base.qcow2) ua hoʻoneʻe ʻia i kahi papa kuhikuhi hou a i ʻole ka waihona waihona, e hoʻohou i ka kuhikuhi faila hope i ka palekana (-u, poʻomanaʻo-wale) me ke kākau hou ʻana i nā poloka ʻikepili:

qemu-img rebase -u -b /new/path/to/base.qcow2 -F qcow2 overlay.qcow2

3. Hoʻopalapala i kahi kaulahao QCOW2 a i ʻole VMDK a i ʻole VHDX palupalu i kahi kiʻi kūʻokoʻa hou (qemu-img convert)

ʻO kekahi o nā mea hana maʻalahi loa i ka hoʻopakele mīkini virtual ʻo qemu-img convert (e heluhelu maoli ana .qcow2, .vmdk, .vhdx, .vhd, a .vdi). Ke kuhikuhi ʻoe qemu-img convert ma ka paʻi paʻi lau hou o kahi kaulahao kūpono, heluhelu ʻo ia i ka hierarchy makua-keiki holoʻokoʻa ma ** ʻano Heluhelu wale nō ** a kākau i kahi disk virtual hou, paʻa ponoʻī, kiʻi kiʻi ʻole ma kāu waihona hoʻopakele:

# Non-destructively flatten an entire QCOW2, VMDK, or VHDX chain into a single clean image:
qemu-img convert -p -O qcow2 top_snapshot_leaf.qcow2 /mnt/rescue_storage/flattened_clean.qcow2

Track 4: Hoʻopakele i nā faila ma waho o ka hui (E unuhi ana i nā faila inā ʻaʻole hoʻomaka ka VM)

He aha inā inā ʻaʻole hiki ke hoʻopaʻa ʻia ka ʻōnaehana lawelawe malihini i loko o ka disk virtual, a i ʻole kahi kiʻi waena o ke kaulahao i hōʻino ʻia a pono ʻoe e huki i nā ʻikepili SQL (.mdf/.ldf), nā faila QuickBooks, /var/lib/mysql, a i ʻole nā palapala ʻoihana i loko o nā minuke 30 e hiki mai ana?

** ʻAʻole pono ʻoe e hoʻopaʻa i ka Mīkini Kūikawā no ka unuhi ʻana i nā faila i loko o kāna kīkī koʻikoʻi.

Hanana 1: E kau i kekahi .vmdk, .vhdx, .qcow2, a i ʻole .vdi ma ke ʻano Heluhelu wale nō ma Linux me ka hoʻohana ʻana libguestfs (guestmount / qemu-nbd)

Hoʻokomo libguestfs-tools (sudo apt install libguestfs-tools qemu-utils ma Ubuntu / Debian / Proxmox) a kau i ka ** paʻi kiʻi lau hou loa ** i ka ** Read-Only Mode (--ro)**:

# Option A: Using guestmount (Automatically detects internal guest LVM/partitions and mounts read-only):
sudo mkdir -p /mnt/vm_rescue
sudo guestmount -a /path/to/Newest_Leaf_Snapshot.vmdk -i --ro /mnt/vm_rescue
# (If guest OS partitions fail auto-inspection due to dirty NTFS journal, list partitions with 'virt-filesystems -a disk.vmdk -l'
# and mount the specific partition directly with '-m /dev/sda2 --ro -o norecover')

# Option B: Attaching the virtual disk chain as a Read-Only Network Block Device (/dev/nbd0):
sudo modprobe nbd max_part=16
sudo qemu-nbd --read-only --connect=/dev/nbd0 /path/to/Newest_Leaf_Snapshot.qcow2
sudo partprobe /dev/nbd0
lsblk /dev/nbd0
# Now mount /dev/nbd0p2 read-only (with -o ro,norecover for NTFS or -o ro,noload for ext4):
sudo mount -o ro,norecover /dev/nbd0p2 /mnt/vm_rescue

Ke Kaʻina 2: Hoʻoiho koke i ka heluhelu-wale ma ka hoʻohana ʻana iā Windows 7-Zip a i ʻole Disk Management -> Attach VHD (Read-Only)

  • ** Ke hoʻohana nei i ka 7-Zip (Ke hana nei ma .vmdk, .vhdx, .vhd, .qcow2, a .vdi):** E kaomi ʻākau i kahi kūʻokoʻa a i hoʻopalahalaha ʻia .vmdk, .vhdx, a i ʻole .qcow2 faila ma Windows a koho iā 7-Zip -> Open Archive. Hoʻopau maoli ʻo 7-Zip i nā papa ʻāpana GPT/MBR a me nā ʻōnaehana faila NTFS/ext4 i loko o nā disks virtual ma 100% mode heluhelu-wale nō, e ʻae iā ʻoe e kauo a hoʻokuʻu pololei i nā waihona malihini ma kāu pākaukau i kekona.
  • ** Ke hoʻohana nei i ka Windows Disk Management (No .vhdx / .avhdx):** Wehe diskmgmt.msc -> Action -> Hoʻopili iā VHD -> E nānā i ka lau hou loa .avhdx (a i ʻole .vhdx), E NANA I KA PAHU NO [X] Read-only (CRITICAL: Mai poina e nānā i ka heluhelu wale nō, a i ʻole e hoʻololi ʻo Windows i ke poʻo disk), a kaomi iā OK. Hōʻike koke ʻia kāu mau drive C: a me D: ma Windows File Explorer.

Hanana 3: Hana hou i na kaulahao i poino loa me UFS Explorer Professional Recovery

Inā ua hoʻopaʻa ʻia a hoʻololi ʻia kahi disk makua i loko o kahi kaulahao VMDK a i ʻole VHDX, a i ʻole inā ʻoki ʻia kahi ʻāpana o ka hale kūʻai ʻikepili VMFS/NTFS. -sesparse.vmdk a i ʻole .avhdx No laila, hōʻole nā mea hana hypervisor iā ia, ʻo UFS Explorer Professional Recovery (a i ʻole R-Studio Technician) hiki iā ʻoe ke hōʻuluʻulu lima i ka disk base maka a me kēlā me kēia kiʻi delta keiki i loko o kahi ** Virtual Delta Stack ** i loko o ka polokalamu RAM, e kāpae ana i ka hypervisor. CID/GUID nānā ke poʻo e kālai a wehe i nā faila malihini.

Track 5: Hoʻihoʻi i kahi faila hoʻonohonoho VM makua ʻole (.vmx, .xml, a i ʻole <vmid>.conf)

I kekahi manawa, ʻo ke kaulahao hard disk virtual ponoʻī (*.vmdk, *.vhdx, a i ʻole *.qcow2) he 100 pakeneka paʻa ma ka waihona waihona, akā ʻo ka faila hoʻonohonoho liʻiliʻi e wehewehe ana i ka hoʻonohonoho lako lako o ka Virtual Machine (.vmx ma VMware ESXi, <GUID>.vmcx / .xml ma Hyper-V, a i ʻole /etc/pve/qemu-server/<vmid>.conf i Proxmox VE) i hewa, holoi ʻia, a i ʻole i hoʻokuʻu ʻia i ka wā o kahi ulia pōpilikia.

Inā ʻoe e hana hou i kahi pūpū VM pani me ka mea hoʻokele mālama mālama virtual hewa a i ʻole ke ʻano firmware, e hāʻule koke ka ʻōnaehana lawelawe malihini ma ka pahu me INACCESSIBLE_BOOT_DEVICE (Windows) a hāʻule paha i kahi dracut / initramfs pūpū pilikia (Linux). E hoʻohālikelike i kēia mau hoʻonohonoho hāmeʻa ʻehā i kāu hoʻonohonoho malihini mua ma mua o ka hoʻopili ʻana i kāu disk virtual i hoʻopakele ʻia:

Hoʻonohonoho Lako Pilikino ʻO ka hōʻailona inā hoʻonohonoho hewa ʻia ma ka VM Hoʻololi Pehea e hoʻoholo ai i ka hoʻonohonoho pololei me ka ʻole o ka kahiko .vmx / .vmcx
1. ʻO ke ʻano hoʻokele waiwai (UEFI / OVMF vs Legacy BIOS / SeaBIOS) Hōʻike VM "Operating System Not Found" a hāʻule pololei i loko o ka UEFI Interactive Shell (Shell>). E nānā i ka pākaukau ʻāpana o ka disk virtual (fdisk -l a i ʻole virt-filesystems -a disk.vmdk --partitions --long). Inā he 100 MB a hiki i ka 512 MB FAT32 EFI System Partition (ESP) ka diski a hoʻohana i kahi papa ʻāpana GPT, pono ʻoe e hoʻonohonoho i ka firmware VM i UEFI. Inā hoʻohana ka disk i ka pākaukau ʻāpana MBR (dos) me ka ʻole o ka pā EFI, e hoʻonoho i ka firmware iā Legacy BIOS.
2. Ke ʻano mea hoʻomalu mālama mālama pono (VMware Paravirtual SCSI - PVSCSI vs LSI Logic SAS vs NVMe vs VirtIO SCSI) Kiola ʻo Windows a 0x0000007B / INACCESSIBLE_BOOT_DEVICE Pale Blue; Hāʻule ka Linux i loko initramfs: /dev/mapper/root does not exist. Ma VMware ESXi, e nānā i ka kikokikona .vmdk waihona wehewehe no ka laina ddb.adapterType = "lsilogic" a i ʻole "buslogic" a nānā paha vmware.log i loko o ka waihona VM (grep -i "scsi0.virtualDev" vmware.log), nāna e paʻi i ka mōʻaukala pololei .vmx puke wehewehe ʻōlelo mai ka pahu lanakila hope loa.
3. Mea hoʻopili pūnaewele ʻo MAC Address & Driver (VMXNET3 vs E1000e vs VirtIO-Net) ʻO nā kāmaʻa OS malihini, akā nalowale kona IP IP a i ʻole ka laka laikini no ka mea ʻike ia i kahi kāleka pūnaewele "hou" (eth1 ma kahi o eth0). Huli i ka mea kahiko vmware.log i loko o ka waihona waihona waihona VM (grep -i "ethernet0.generatedAddress" vmware.log) e hoʻihoʻi i ka helu helu MAC 6-byte pololei (00:50:56:xx:xx:xx) a hoʻopili iā ia i loko o nā hoʻonohonoho pūnaewele o VM.
4. TPM 2.0 (vTPM) & BitLocker / Moku'āina LUKS Koi ʻo Windows BitLocker i ke kī hoʻihoʻi 48-helu ma ka boot inā ʻo ka .nvram / vTPM Ua nalowale ka mokuʻāina. Ma VMware ESXi, mālama mau i ka <VM_Name>.nvram a me .vmsd faila ma ka ʻaoʻao o ka .vmdk waihona; ma Hyper-V, mālama i ka Virtual Machines\<GUID>.vmgs (Guest State) no laila e hoʻomau ʻia nā kī TPM virtual.

Nīnau pinepine

He aha ka hopena inā kuhikuhi wau i kaʻu VM i ka kumu kumu `.vmdk` a i ʻole `.vhdx` faila a hoʻopaʻa i luna e ʻike i ka mea i loko?

Mai hana i kēia me ka ʻole o ka hoʻihoʻi mua ʻana i nā faila, a ʻaʻole hoʻi e hoʻopaʻa i ka base disk ma ke ʻano heluhelu-kākau i ka wā e paʻi ai nā kiʻi (`-000001.vmdk` a i ʻole `.avhdx`) noho. ʻO ka mea mua, ua maloʻo ka base disk i ka lā pololei a me ka minuke i hana ʻia ai ka snapshot mua loa, inā e holo ana kahi kiʻi no nā mahina 6, e hoʻopaʻa ana i ka base disk boots i kāu kikowaena e like me 6 mau mahina i hala aku nei, e nalowale ana kēlā me kēia faila i hana ʻia i ka hapalua makahiki i hala. ʻO ka lua, a ʻoi aku ka maikaʻi loa, i ka wā e hoʻomaka ai ka ʻōnaehana lawelawe malihini mai ka base disk, kākau ia i nā log boot a me nā hoʻololi o ka puke pai i ka base disk, hoʻololi i kāna mau ʻāpana a hoʻololi i kāna Content ID (`CID`) a i ʻole GUID loulou. Hoʻopau mau ia i ka palapala ʻāina poloka delta e pono ai nā kiʻi paʻi kiʻi a pau o kāu keiki.

No ke aha i hōʻike ʻia ai kaʻu hale kūʻai ʻikepili VMware ESXi `Server-000001.vmdk` e like me ka nui o 500 GB piha me `Server.vmdk` i ka polokalamu kele pūnaewele?

He hōʻike hōʻike kēia o ka VMware ESXi Web Client Datastore Browser. Ma ka polokalamu kele pūnaewele UI, hūnā ʻo ESXi i ke kumu `-flat.vmdk`, `-delta.vmdk`, a `-sesparse.vmdk` nā waihona binary a hōʻike i ka * mana kūpono i hoʻolako ʻia o ka disk ma mua o ka wahi kino maoli i hoʻopau ʻia e ka faila delta. No ka ʻike ʻana i nā filenames kino maoli, nā nui byte pololei, a me nā faila wehewehe kikokikona, hiki iā SSH ma ka host ESXi, e komo ma o Terminal/PuTTY, hoʻokele i ka `/vmfs/volumes///`, a holo `ls -lh *.vmdk`.

Pehea e hiki ai iaʻu ke hoʻohui i nā kiʻi paʻi kiʻi VMware a i ʻole Hyper-V inā 100% piha ka hale kūʻai data host (0 bytes manuahi)?

Ke loaʻa ka hale kūʻai ʻikepili i 0 byte manuahi, ʻaʻole hiki ke "Delete All Snapshots / Consolidate" ma kahi maʻamau no ka hoʻohui ʻana i ka Snapshot 2 i ka Snapshot 1 e hoʻonui i ka nui o ka Snapshot 1 ma mua o ka hiki ke holoi ʻia ʻo Snapshot 2. Loaʻa iā ʻoe ʻekolu mau ala palekana: (1) E ʻimi a holoi a hoʻoneʻe i nā faila ISO koʻikoʻi ʻē aʻe, nā faila log kahiko, a i ʻole nā ​​VM hoʻāʻo i hoʻopau ʻia ma kēlā hale kūʻai ʻikepili no ka hoʻokuʻu ʻana i ka 15 a 20 pakeneka headroom; (2) Inā he SAN/NAS (iSCSI/NFS/FC) ka waihona waihona, e hoʻonui i ka LUN a hoʻonui i ka leo VMFS/NTFS ma ka pūnaewele e 100 GB; a i ʻole (3) E hoʻopili i kahi drive USB waho a i ʻole kaʻana NFS i ka mea hoʻokipa a hoʻohana `vmkfstools -i Server-000002.vmdk /vmfs/volumes/New_NFS_Share/Merged.vmdk` (a i ʻole `qemu-img convert` / `Merge-VHD` i kekahi leka hoʻokele ʻē aʻe) e hoʻohui i ke kaulahao *out-of-place* ma ka lua o ka waihona waihona me ka hoʻohana ʻana i nā paita ʻole o ka wahi kākau ma ka hale kūʻai ʻikepili piha.

Pehea wau e pale ai i nā polokalamu hoʻihoʻi e like me Veeam, CommVault, a i ʻole Nakivo mai ka waiho ʻana i nā "paʻi kiʻi makua ʻole" huna e hoʻopiha i kaʻu mau mahina ma hope?

Hoʻokumu nā palapala hoʻihoʻi i kahi kiʻi hypervisor pōkole i ka hoʻomaka ʻana o kēlā me kēia hana hoʻihoʻi i kēlā me kēia pō i hiki iā lākou ke heluhelu i ka disk base paʻa, a laila e aʻo iā ESXi a i ʻole Hyper-V e holoi / hoʻohui i kēlā kiʻi i ka pau ʻana o ka waihona. I kekahi manawa, ʻaʻole haʻahaʻa ka hana hoʻoneʻe kiʻi paʻi kiʻi i kekahi manawa, me ka waiho ʻana i kahi huna `-000001.vmdk` a i ʻole `.avhdx` e ulu ana no nā mahina a hiki i ka 100 pakeneka o ka waihona data. E hoʻonohonoho i ʻelua mau pale ʻokoʻa: (1) E hoʻā i ka vCenter i kūkulu ʻia / Hyper-V / Proxmox alarm no `"Virtual Machine Snapshot Size > 20 GB or Age > 72 Hours"`, a me (2) E hoʻonohonoho i ka loiloi PowerCLI a i ʻole PowerShell no ka hebedoma heluhelu-wale (`Get-VM | Get-Snapshot` a i ʻole `Get-ChildItem -Recurse -Filter *.avhdx`) e leka uila ana i kāu hui admin i kēlā me kēia manawa i loaʻa kekahi faila kiʻi paʻi ma mua o 3 mau lā ma ka waiho ʻana.

Nānā ʻia nā kumu

  • VMware na Broadcom Technical Knowledge Base: KB 1007969 / 316578 (E hoʻoholo ana "Ua hoʻololi ʻia ka disk virtual makua mai ka wā i hana ʻia ai ke keiki" CID Mismatch Errors), KB 1002511 (Ke hana hou ʻana i kahi Descriptor Disk Mīkini Nalo. .vmdk File), a me KB 10051 (Hoʻomaopopo i nā Kiʻi Paʻi Mīkini Virtual ma ESXi).
  • Microsoft Learn / Windows Server Hyper-V Engineering Documentation: *Hyper-V PowerShell Reference no Get-VHD, Set-VHD -IgnoreIdMismatch, a Merge-VHD Hoʻohui ʻokoʻa Disk hoʻopahemo *.
  • QEMU Project & Red Hat Enterprise Linux Virtualization Documentation: Opono qemu-img Manual (info --backing-chain, check -r all, rebase -u, convert) a libguestfs (guestmount --ro) Heluhelu-wale Virtual Disk Inspection.
  • ʻO Oracle VirtualBox palapala ʻenehana: VBoxManage showmediuminfo a clonemedium Hoʻokohu Kiʻi ʻokoʻa.
  • National Institute of Standards and Technology (NIST, United States): NIST Special Publication 800-86: Guide to Integrating Forensic Techniques into Incident Response (Virtual Machine Image Preservation).

Nā alakaʻi pili