ʻ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:
- ** MAI hoʻoponopono i nā hoʻonohonoho VM e hoʻomaka pololei mai ka Base Disk (
Server.vmdka i ʻoleServer.vhdx) ke kiʻi ʻia nā kiʻi delta (-000001.vmdka 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. - AOLE e holoi
.avhdx,-delta.vmdk, a i ʻole-sesparse.vmdknā 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,.avhdxa-delta.vmdknā 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..avhdxa i ʻole-delta.vmdkwaihona. ʻ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. - Kopi a clone i nā mea a pau
.vmdk,.vhdx/.avhdx, a i ʻole.qcow2waihona 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. - ** 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. - ** 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 ʻoleqemu-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 2mua. Inā hoʻololi ʻia kēlā poloka mai Iune 1, heluhelu mai ia maiSnapshot 2. Inā ʻaʻole, e nānā i ke kaulahao iSnapshot 1. Inā ʻaʻole i hoʻololi ʻia ma laila, heluhelu ia i ka poloka kumu mai kaBase 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 (
CIDma VMware) a i ʻole 128-bit Linkage GUID (ParentUniqueIdi 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/GUIDhoʻ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)"¶
- SSH i loko o ka ESXi host a hoʻokele i ka papa kuhikuhi hale kūʻai ʻikepili o VM:
- Pa'i i ka
CID,parentCID, aparentFileNameHintma nā mea wehewehe kikokikona a pau.vmdkfaila i ka manawa hoʻokahi: (mea nui: holo walecata i ʻolegrepma ka mea wehewehe kikokikona 500-byte.vmdkfaila, ʻAʻole ma ka multi-gigabyte-flat.vmdka i ʻole-sesparse.vmdkwaihona). - ** Hoʻohālikelike i ka
CIDo kela me keia makua kue i kaparentCIDo 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" - ** Hoʻoponopono i ka haki
parentCIDi ka wehewehe keiki a hōʻoia mevmkfstools -e:** - ʻO ka mea mua, e hoʻihoʻi i nā faila wehewehe kikokikona (
cp Server-000001.vmdk Server-000001.vmdk.bak). - Wehe
Server-000001.vmdki lokovia hoololiparentCID=55443322iparentCID=1a2b3c4d(kulikeServer.vmdk'o kēia manawaCID). - 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: - Inā paʻa ke kaulahao, hoʻopuka ʻo ESXi:
Disk chain is consistent. - Hoʻohui ʻAʻole Hoʻopōʻino (
vmkfstools -iKlone ma waho o kahi): - Ina
Server.vmdkua hoʻololi iki ʻia ma mua o kou hoʻoponopono ʻana i kaparentCID, mai hoʻohui i kahi ma luna o kāu kope hoʻokahi. Akā, kuhikuhivmkfstools -ima 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 -iheluhelu i kēlā me kēia poloka maiServer-000002.vmdkiho i laloServer-000001.vmdkaServer-flat.vmdkma ka **Read-Whenly Mode ** a kākau i kahi maʻemaʻe, kiʻi ʻoleServer_Merged.vmdkme 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:
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:
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:
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.qcow2faila 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):** Wehediskmgmt.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/
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.
.vmdkFile), 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, aMerge-VHDHoʻohui ʻokoʻa Disk hoʻopahemo *. - QEMU Project & Red Hat Enterprise Linux Virtualization Documentation: Opono
qemu-imgManual (info --backing-chain,check -r all,rebase -u,convert) alibguestfs(guestmount --ro) Heluhelu-wale Virtual Disk Inspection. - ʻO Oracle VirtualBox palapala ʻenehana:
VBoxManage showmediuminfoaclonemediumHoʻ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¶
- Ua hoʻohaʻahaʻa ʻia ka pūʻulu NAS a me RAID, ka hemahema o nā kaʻa he nui, a me ka hoʻihoʻi ʻana o ZFS/Btrfs
- Hoʻokomo koke ʻo NVMe a i ʻole SSD i ke ʻano heluhelu-wale nō a nalo paha mai BIOS
- ʻAʻole paʻakikī a me ka hoʻihoʻi ʻana i ka ʻikepili pilikia
- ʻO ka hemahema o ka boot system Linux a me ka hoʻoponopono GRUB
- ʻO ka Windows Blue Screen (BSOD) a me ka hoʻoponopono ʻana i ka pahu
- Kākoʻo kamepiula: 3-2-1 hoʻolālā a me ka hoʻōla pōʻino
- Nā helu ulia pōpilikia honua