Umxokelelwane wesnapshot womatshini wenyani owaphukileyo (.VMDK / .VHDX / .QCOW2) kunye nokuhlangula idisk¶
Amanani kaxakeka ayohluka ngokwamazwe. Eli phepha lisebenzisa u-911, inani laseMelika naseKhanada. Amanye amazwe amaninzi asebenzisa i-112, 999, okanye elinye inani. Fumana inombolo yelizwe lakho.
Xa imveliso Virtual Machine (VM) on VMware ESXi / Workstation, Microsoft Hyper-V, Proxmox VE / QEMU-KVM, okanye Oracle VirtualBox ngequbuliso ukwala umbane emva kokuba umsebenzi wogcino ungaphumeleli, idatastore iphuma kwindawo yedisk.0 bytes free), okanye umlawuli uchukumisa ifayile ye-snapshot, ukucofa okukodwa koloyiko kunokucima iinyanga okanye iminyaka yedatha yeshishini eliphilayo. Iifoto zoomatshini obonakalayo ** azikho i-backups epheleleyo ezimeleyo **; ziethe-ethe Khuphela-ngoBhala (CoW) idelta differencing chain (*-000001-delta.vmdk, *.avhdx, okanye ifayile exhasayo .qcow2 izinto ezingaphaya) apho ibhloko nganye ebhaliweyo ukusukela oko kwathathwa umfanekiso okhawulezayo uhlala ngaphakathi komntwana iifayile zedelta, ngelixa isiseko sediski soqobo sihleli emkhenkceni kwixesha elidlulileyo.
Ukuba ubona iimpazamo ezifana "The parent virtual disk has been modified since the child was created (Parent CID does not match)" kwiVMware, "Cannot boot: The chain of virtual hard disks is broken" kwi-Hyper-V, okanye "Could not open backing file: L1/L2 table corrupted" kwiQEMU/Proxmox, ukwalatha kwakhona iVM ngokuthe ngqo kwiBase Disk (flat.vmdk okanye isiseko .vhdx) kwaye ukuyivula kuyingozi. Ukwenza oko kuqalisa iseva njengoko ibikhona kwiinyanga ezi-6 ezidlulileyo xa umfanekiso wokuqala wawusenziwa, ingasebenzi ngoko nangoko ikhonkco lomzali-omntwana we-GUID/CID kunye nokunikezela ngesnapshot nganye ye-delta ukusukela ngaloo mhla iyinkedama kwaye ayidityaniswa.
Esi sikhokelo sibonelela ngenyathelo ngenyathelo lokwakhiwa ngokutsha kwetsheyini elikhawulezayo elingonakalisiyo, ukulungiswa kweheader-descriptor-file, kunye neeprothokholi zokutsalwa kwefayile yeendwendwe eziphuma ngaphandle kwebhendi ezisekwe kwiVMware nguBroadcom Knowledge Base Articles (KB 1007969 / 316578 kunye ne KB 1002511), Microsoft Hyper-V Merge-VHD kwaye Set-VHD iinkcukacha zobunjineli, QEMU qemu-img kwaye libguestfs (guestmount) imigangatho yomthetho, kunye ne-NIST Special Publication 800-86.
Yenza oku ngoku¶
Ukuba umatshini wenyani uyala ukuqalisa okanye uphosa ikhonkco elikhawulezayo elaphukileyo / eyonakeleyo yempazamo yedisk yenyani:
- UNGAZE uhlele izicwangciso zeVM ukuqala ngqo kwiBase Disk (
Server.vmdkokanyeServer.vhdx) xa idelta ithatha umfanekiso (-000001.vmdkokanye.avhdx) ikhona kulawulo. Lo mzuzu inkqubo yokusebenza yondwendwe iqala ngokuthe ngqo kwisiseko somzali kwidiski nokuba yimizuzwana emi-2, undwendwe lweOS lubhala izitampu zexesha lokuqalisa kunye neNTFS/ext4 uhlaziyo lwejenali kwisiseko sediski, ilungisa umzali diski ID yomxholo (CID) kwiVMware okanye I-GUID yoQhagamshelwano/Isitampu sexesha kwi-Hyper-V. Laa buti inye yophula lonke ikhonkco leefoto zomntwana ezixhomekeke kwisiseko sediski ehlala isuntswana-kumkhenkce. Ukuba igumbi lakho leseva lifumana umlilo osebenzayo, ukusilela kokupholisa, okanye ingozi yomzimba, phuma kwaye utsalele umnxeba kwinombolo yakho yexesha likaxakeka (911 eUnited States naseKhanada, 112 ngaphesheya kweEuropean Union, 999 eUnited Kingdom) okanye khangela amanani kaxakeka. - UNGAZE ucime
.avhdx,-delta.vmdk, okanye-sesparse.vmdkiifayile kwiWindows Explorer okanye kwi-ESXi Datastore Browser ukuze "ukhulule isithuba sedisk." Ngokungafaniyo neefayile zexeshana eziqhelekileyo,.avhdxkwaye-delta.vmdkiifayile ** NGABA eyakho yangoku ephilayo hard drive **. Ukuba i-snapshot yenziwe kwiinyanga ze-8 ezidlulileyo ngumsebenzi ogciniweyo weVeeam / CommVault kwaye ushiye uqhuba, i-100 ipesenti yentengiselwano nganye yedatha, i-invoyisi, kunye nefayile eyenziwe ngexesha leenyanga ze-8 zokugqibela zigcinwa ngaphakathi kwezo.avhdxokanye-delta.vmdkiifayile. Ukuzicima kususa yonke idatha eyenziwe ukusukela oko kuqale umfanekiso okhawulezayo. - ** Khuphela okanye ulinganise zonke
.vmdk,.vhdx/.avhdx, okanye.qcow2iifayile kumthamo wangaphandle / wesibini wogcino NGAPHAMBI kokusebenzisa naluphi na udibaniso, ukuzinikela, okanye umyalelo wokulungisa.** Ukudibanisa ikhonkco elikhawulezayo kubhala zonke iibhloko zedelta ngasemva kwidiski yomzali kwindawo. Ukuba udibaniso aluphumeleli phakathi ngenxa yecandelo elibi lediski okanye ugcino lwedatha impazamo epheleleyo, zombini umzali kunye nomntwana iidiski zonakele ngaphandle kokuba uthathe ifayile ekrwada kuqala. - Ukuba i-hypervisor ayiphumelelanga ngenxa yokuba umphathi weDatastore / uMqulu ubethe i-100% igcwele (
No space left on device), UNGAZE uzame uku "Cima / Hlanganisa ii-Snapshots" ude wongeze isithuba esikhululekileyo okanye uthelekise ugcino lwedatha enkulu. Ukuhlanganisa ikhonkco leefoto ezininzi kufuna isithuba sokukrola okwexeshana esilingana nobukhulu bedelta yediski enkulu. Ukuzama ukudibanisa kwi-99% yedatha egcweleyo iya kutshabalalisa i-hypervisor mid-commit. - Imephu oyena Mzali -> Ikhonkco lokuxhomekeka komntwana usebenzisa imiyalelo yokuhlola ukufunda kuphela (
vmkfstools -e,Get-VHD, okanyeqemu-img info --backing-chain) phambi kokubamba i-byte enye. Wonke umfanekiso okhawulezayo weheader ubiza ngokuthe ngqo igama lefayile yomzali kunye ne-ID ye-cryptographic yomzali elindele ukuhlala ngqo phezu kwayo.
flowchart TD
A["I-VM Yala UkuQalisa: Itsheyini le-Snapshot elaphukileyo, Ukungafani kwe-CID yoMzali, okanye i-VMDK/VHDX/QCOW2 eyonakeleyo"] --> B["YIMISA: Sukuvula idisk esisiseko ngokuthe ngqo, kwaye Sukucima naziphi na iifayile ze-delta.vmdk okanye .avhdx"]
B --> C["Inyathelo 1: Jonga iNdawo yogcino lweNdawo / iNdawo yaMahala yeVolumu (`df -h` / `esxcli uluhlu lwenkqubo yokugcina iifayile`)"]
C --> D["Inyathelo lesi-2: Khuphela zonke iziseko kunye neefayile ze-snapshot kwi-backup yesibini ye-NAS/SAN/USB drive ngaphambi kokuguqula"]
D --> E{"Yeyiphi iHypervisor / iFamathi yeDiskhi ebonakalayo echaphazelekayo?"}
E -->|"1. VMware ESXi / Indawo yokusebenzela (.vmdk / -flat.vmdk / -delta.vmdk / -sesparse.vmdk)"| F["Jonga izichazi zesicatshulwa (`ikati *.vmdk`) & khangela ikhonkco (`vmkfstools -e Server-000002.vmdk`)"]
F --> G{"Yintoni impazamo yeVMware VMDK?"}
G -->|"Ukungafani kweCID yomzali (`umzaliCID .= iCID yomzali`)"| H["Hlela inkcazo yombhalo womntwana `.vmdk` ukuze `umzaliCID` ingqinelane ne `CID` yomzali, OKANYE thelekisa idiski yegqabi elisebenzayo kwiVMDK entsha edityanisiweyo (`vmkfstools -i`)"]
G -->|"Akukho 1-KB inkcazo yokubhaliweyo `.vmdk` (Kuphela `-flat.vmdk` enkulu kakhulu ekhoyo)"| I["Bala ubungakanani bebhayithi echanekileyo / amacandelo angama-512 kwaye uphinda wenze isicatshulwa esicacileyo `.vmdk` nge `vmkfstools -c`"]
E -->|"2. Microsoft Hyper-V (.vhdx kunye .avhdx chain)"| J["Jonga ikhonkco ukusuka kwentsha `.avhdx` ukuya phezulu: `Fumana-VHD -Indlela *.avhdx | Khetha iNdlela, iNdlela yoMzali`"]
J --> K["Phinda uqhagamshele isalathi somzali esaphukileyo (`Set-VHD -Path child.avhdx -ParentPath parent.vhdx -IgnoreIdMismatch`) okanye ukudibanisa ngaphandle kweintanethi (`Dibanisa-VHD`)"]
E -->|"3. Proxmox / KVM / QEMU (.qcow2) okanye VirtualBox (.vdi)"| L["Khangela `ulwazi lweqemu-img --backing-chain`; lungisa i-refcount/L2 tables (`qemu-img khangela -r all`) okanye buyisela kwakhona (`qemu-img rebase -u`)"]
H --> M["I-Out-of-Band File Rescue Fallback: Nyusa naliphi na ikhonkco ngqo kwimowudi yokufunda-Kuphela nge `guestmount --ro` okanye `7-Zip` / `UFS Explorer`"]
I --> M
K --> M
L --> M
Ukuqonda indlela amakhonkco esnapshot oomatshini asebenza ngayo ngokwenene¶
Nokuba usebenzisa i-VMware ESXi, iMicrosoft Hyper-V, iProxmox/KVM, okanye i-VirtualBox, yonke i-hypervisor isebenzisa i-snapshots isebenzisa ulwakhiwo olusisiseko olufanayo: uluhlu oludityanisiweyo oludityanisiweyo lweeDiski zoMzali-Kuphela kunye neDiski yokuFunda-Bhala yoMntwana yeDelta.
[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)
- Xa iVM ifuna ukubhala ibhloko entsha namhlanje, ibhala KUPHELA kwifayile yegqabi elisezantsi (
Snapshot 2). - Xa iVM ifuna ukufunda ibhloko namhlanje, i-hypervisor iyahlola
Snapshot 2Ekuqaleni. Ukuba loo bloko yatshintshwa ukususela ngoJuni 1, ifundeka kuyoSnapshot 2. Ukuba akunjalo, ijonge phezulu ikhonkcoSnapshot 1. Ukuba ayilungiswanga nalapho, ifunda ibhloko yokuqala ukusuka kwiBase Disk. - Kutheni amatyathanga eqhawuka: Wonke umfanekiso okhawulezayo womntwana ugcina amanqaku amabini angqongqo kwiheda yawo: **(1) Indlela yefayile yomzali wayo osondeleyo **, kunye (2) ne-32-bit Content ID (
CIDkwi-VMware) okanye i-128-bit yoQhagamshelwano lwe-GUID (ParentUniqueIdin Hyper-V) eyenziwa ngokutsha ngalo lonke ixesha idiski yomzali ivulelwa ukubhala. Ukuba nabani na ususa ifayile, athiya ngokutsha incwadi eneenkcukacha, okanye anyuse ngokufutshane idiski yomzali kwindlela yokufunda-bhala, umzaliCID/GUIDutshintsho, kwaye i-hypervisor ngokukhawuleza iyala ukukhwela i-snapshot yomntwana ukuthintela ukonakala kwebhloko ethe cwaka.
| Iqonga le-Hypervisor | Iifayile zeDiski ezisisiseko | Umfanekiso / iiFayile zeDelta | Isixhobo sokuhlola i-CLI yekhonkco | UkuManyaniswa okuKhuselekileyo / Dibanisa isixhobo se-CLI |
|---|---|---|---|---|
| VMware ESXi (VMFS-5 / VMFS-6) & neSikhululo sokuSebenza | VM.vmdk (i-500-byte inkcazo yombhalo ongenanto) + VM-flat.vmdk (idata yediski yokubini ekrwada) |
VM-000001.vmdk (inkcazo yokubhaliweyo) + VM-000001-sesparse.vmdk (VMFS-6) okanye VM-000001-delta.vmdk (VMFS-5) |
vmkfstools -e VM-000002.vmdk kwaye cat VM*.vmdk |
vmkfstools -i VM-000002.vmdk /vmfs/volumes/NewDS/Merged.vmdk (I-clone/ukudibanisa engonakalisiyo) |
| IMicrosoft Hyper-V (Iseva yeWindows) | VM.vhdx (okanye ilifa .vhd) |
VM_<GUID>.avhdx (okanye .avhd) |
I-PowerShell: Fumana-VHD -Indlela *.avhdx \ | Khetha iNdlela, iNdlela yoMzali, iVhdType |
I-PowerShell: Set-VHD -Path child.avhdx -ParentPath parent.vhdx kwaye Merge-VHD -Path child.avhdx -DestinationPath parent.vhdx |
| Proxmox VE / QEMU / KVM (Linux) | vm-100-disk-0.qcow2 (okanye umthamo weLVM/ZFS okrwada) |
Ukwaleka kwangaphandle .qcow2 ngeheader yefayile exhasayo (okanye yangaphakathi QCOW2 umfanekiso wetafile) |
qemu-img info --backing-chain top_overlay.qcow2 |
qemu-img convert -O qcow2 top_overlay.qcow2 flattened_rescue.qcow2 (Eyona ndawo ikhuselekileyo ngaphandle kwendawo) okanye qemu-img commit |
| Oracle VirtualBox | Disk.vdi (ngaphakathi kwefolda yeVM) |
{UUID}.vdi ngaphakathi Snapshots/ isiqulathi seefayili esisezantsi + .vbox Ubhaliso lwemidiya ye-XML |
VBoxManage showmediuminfo disk "{UUID}.vdi" |
VBoxManage clonemedium disk "{Newest_Snapshot_UUID}.vdi" Flattened_Rescue.vdi |
Track 1: Rescuing VMware ESXi & Workstation .vmdk amatyathanga esnapshot¶
Kwi-VMware ESXi, idiski enye enenyani eneneni iqulathe iifayile ezimbini ezahlukeneyo ezahlukileyo zesiseko sediski kwaye iifayile ezimbini ezahlukeneyo kumfanekiso okhawulezayo:
1. Encinci (-500-byte) iFayile yokuchaza umbhalo ongenanto (Server.vmdk kwaye Server-000001.vmdk) ebamba i CID, parentCID, ijiyometri yedisk, kunye nelona gama lefayile yobungakanani bokubini. (Qaphela: Isitokhwe se-ESXi Datastore Browser web GUI ifihla izibini -flat.vmdk kwaye -sesparse.vmdk iifayile zokubini kwaye ibonisa kuphela i icon enye edityanisiweyo, KUFUNEKA usebenzise i SSH iseshoni yesiphelo sendlela kumamkeli we ESXi ukubona iifayile eziyinyani).
2. IFayile yoKwandiswa kweDatha yokubini yeegigabhayithi ezininzi (Server-flat.vmdk kwidiski yesiseko, kunye Server-000001-sesparse.vmdk okanye Server-000001-delta.vmdk kumfanekiso okhawulezayo ngamnye).
Imeko 1A: Ukulungisa "The parent virtual disk has been modified since the child was created (Parent CID mismatch)"¶
- SSH kwinginginya ye-ESXi kwaye ujonge kuvimba wedatha weVM:
- Shicilela i
CID,parentCID, kwayeparentFileNameHintkuyo yonke inkcazo yokubhaliweyo.vmdkiifayile kanye: (Okubalulekileyo: Baleka kuphelacatokanyegrepkwingcaciso yombhalo omncinci we-500-byte.vmdkiifayile, HAYI kwi-multi-gigabyte-flat.vmdkokanye-sesparse.vmdkiifayile). - Thelekisa i
CIDyomzali ngamnye ngokuchasene neparentCIDngomntwana wakhe wangoku: Jonga imveliso: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" - Lungisa ezaphukileyo
parentCIDkwisichazi somntwana kwaye uqinisekise ngevmkfstools -e: - Okokuqala, gcina ifayile yenkcazo yokubhaliweyo (
cp Server-000001.vmdk Server-000001.vmdk.bak). - Vula
Server-000001.vmdkkwivikwaye utshintsheparentCID=55443322ukuyaparentCID=1a2b3c4d(ukudibanisaServer.vmdkyangokuCID). - Vavanya imfezeko yetsheyini ukusuka entsha (elona nani liphezulu) umfanekiso okhawulezayo usebenzisa
vmkfstools -e: - Ukuba ikhonkco lilungile, iziphumo ze-ESXi:
Disk chain is consistent. - UHLANGANISO OLUNGANGONALI (
vmkfstools -iI-Clone yangaphandle kweNdawo): - Ukuba
Server.vmdkyalungiswa kancinane phambi kokuba ulungise iparentCID, ungadibanisi endaweni phezu kwekopi yakho ekuphela kwayo. Kunoko, yalathavmkfstools -ikowona mfanekiso mtsha wegqabi (Server-000002.vmdk)** kwaye udibanise lonke ikhonkco kwi-VMDK entsha, ethe tyaba enye kwindawo yokugcina idatha enendawo esimahla: vmkfstools -iufunda ibhloko nganye ukusukaServer-000002.vmdkphantsi ngeServer-000001.vmdkkwayeServer-flat.vmdkngokungqongqo Imo Yokufunda-Kuphela kwaye ubhale ecocekileyo, engena-snapshotServer_Merged.vmdkngaphandle kokuchukumisa iifayile zakho zoqobo.
Imeko 1B: Ukudala kwakhona engekhoyo okanye ecinyiweyo 500-byte .vmdk isichazi sokubhaliweyo xa Server-flat.vmdk isaphelele¶
Ngamanye amaxesha umlawuli okanye iskripthi esaphukileyo siyacima Server.vmdk (okanye iyonakala ukuze 0 bytes), ibangela ukuba iSikhangeli seDatastore siyeke ukubonisa idisk enenyani, nangona ubukhulu be-500-gigabyte Server-flat.vmdk ifayile equlethe i-100 yepesenti yedatha yakho yokwenyani isahleli kanye apho kwi-SSH (ls -la *-flat.vmdk).
Ungaphinda wenze okubhaliweyo okungenanto okushiyiweyo Server.vmdk ifayile yokuchaza kwimizuzwana engama-60 ngaphandle kokulahlekelwa yi-byte enye yedatha ngaphakathi 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)
Imeko 1C: Ukuvula a .vmdk itshixiwe yinginginya ye-ESXi exhonyiweyo okanye i-proxy eyaphukileyo egcinayo (Cannot open the disk: Failed to lock the file)¶
Ukuba i-VM iyala ukuqalisa nge Failed to lock the file okanye Cannot open disk: Resource busy, enye inginginya ye-ESXi kwiqela (okanye isixhobo seVeeam/backup HotAdd esantlitheka ngexesha logcino) isabambe i SCSI / VMFS yokutshixa ifayile -flat.vmdk okanye -sesparse.vmdk:
1. Jonga ukuba i-VM ye-proxy eyaphukileyo isenayo i-VM yemveliso yakho .vmdk encanyathiselwe kwisilawuli sayo se-SCSI esinenyani: Hlela useto lweVeeam/CommVault proxy VMs kwaye ususe naziphi na iidiski ezidala ezincanyathiselweyo zokuvelisa (khetha u-"Susa kuMatshini weVirtual," UNGAZE "Cima iifayile kwi-datastore").
2. Fumana ukuba yeyiphi idilesi ye-MAC yokusingatha i-ESXi kunye nenkqubo yehlabathi ebambe iqhaga le-VMFS:
vmx isazisi sehlabathi (esxcli vm process list), kwaye aphelise ihlabathi elijingayo (esxcli vm process kill --type=force --world-id=<WorldID>).
Umkhondo 2: Ukuhlangula iMicrosoft Hyper-V .vhdx kwaye .avhdx amatyathanga esnapshot¶
KwiMicrosoft Hyper-V, yonke indawo yokukhangela (umfanekiso okhawulezayo) yenza umahluko wenyani wehard disk ngolwandiso .avhdx (okanye .avhd kwifomati endala yeVHD) yabelwe igama lefayile ende ye GUID njenge ProdSQL_A1B2C3D4-E5F6-7890-ABCD-1234567890AB.avhdx.
Inyathelo 1: Imephu yolandelelwano lwamaxesha .avhdx umthi womzali-umntwana kwi-PowerShell¶
Ngaphambi kokudibanisa okanye ukudibanisa nantoni na kuMphathi we-Hyper-V, vula i-Elevated Administrator PowerShell* window kwi-Hyper-V host host, yiya kwifolda equlethe yakho. .vhdx kwaye .avhdx iifayile, kwaye usebenzise le liner ukubonisa eyona khonkco lomzali-lomntwana ukusuka kwentsha ukuya komdala:
# 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
Jonga kwi Path kwaye ParentPath amasimi. Baza kutyhila ulandelelwano lwekhonkco oluchanekileyo:
- ProdSQL.vhdx -> ParentPath: (blank) (** Root Base Disk, endala **)
- ProdSQL_1111.avhdx -> ParentPath: D:\VMs\ProdSQL.vhdx (Umntwana 1)
- ProdSQL_2222.avhdx -> ParentPath: D:\VMs\ProdSQL_1111.avhdx (Umntwana 2)
- ProdSQL_3333.avhdx -> ParentPath: D:\VMs\ProdSQL_2222.avhdx (Eyona Diski yegqabi esebenzayo)
Inyathelo lesi-2: Ukulungisa "The chain of virtual hard disks is broken" okanye "Differencing disk parent ID mismatch" (Set-VHD -IgnoreIdMismatch)¶
Kuthekani ukuba umntu uye wasusa ifolda yeVM ukusuka C:\VMs\ ukuya E:\VMs\, okanye iqalwe ngempazamo ProdSQL.vhdx imizuzwana emi-5, kubangela ProdSQL_1111.avhdx ukusilela nge:
The chain of virtual hard disks is broken. The system cannot locate the parent virtual hard disk for the differencing disk okanye There is a mismatch in the virtual disk identifiers?
Sebenzisa esemthethweni Hyper-V PowerShell cmdlet Set-VHD ne -IgnoreIdMismatch iflegi (emva kokuxhasa iifayile kuqala):
# 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
Inyathelo 3: Ukudibanisa inkedama ngezandla .avhdx ikhonkco ukusuka ENTSHA ukuya ku-OLDEST (Merge-VHD)¶
Xa i-arhente yokugcina ishiya i-15 iinkedama .avhdx iifayile kwifolda yakho ezingasabonakaliyo ngaphakathi koMphathi we-Hyper-V GUI "Iindawo zokuHlola", kufuneka uzidibanise ngesandla kwi-PowerShell ngelixa i-VM icinyiwe.
Danger
Umthetho wentsimbi we-Hyper-V .avhdx Ukudibanisa: Kufuneka USOLOKO udibane ukusuka kwe-Elona gqabi lincinci (igqabi elincinane) .avhdx kumzali walo osondeleyo, usebenza inyathelo ngenyathelo ngasemva ubuya umva ikhonkco kude kube sisiseko kuphela .vhdx uhlala.
Umzekelo, kwikhonkco Base.vhdx <- Child1.avhdx <- Child2.avhdx <- Child3_Newest.avhdx:
1. Hlanganisa Child3_Newest.avhdx -> kwi Child2.avhdx.
2. Hlanganisa Child2.avhdx -> kwi Child1.avhdx.
3. Hlanganisa Child1.avhdx -> kwi Base.vhdx.
4. Yalatha useto lweVM apha Base.vhdx kunye ne-boot.
Yenza le miyalelo kanye ye-PowerShell kwi-ikopi esebenzayo yesiqulathi seefayili:
# 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"
Umkhondo 3: Ukuhlangula i-Proxmox VE / QEMU / KVM .qcow2 kunye neVirtualBox .vdi imixokelelwane¶
1. Ukujonga kunye nokulungisa eyonakeleyo QCOW2 L1/L2 Cluster & Refcount Tables (qemu-img check)¶
Xa i-Linux KVM okanye i-Proxmox host inengxaki yokucima kombane ngequbuliso ngaphandle kwe-cache exhaswa yibhetri, .qcow2 idiski enenyani ihlala isilela ukuqalisa nge qcow2: Marking image as corrupt: L2 table offset unaligned okanye Refcount block corrupted.
1. Qala ukhuphele ifayile .qcow2 ifayile (cp vm-100-disk-0.qcow2 vm-100-disk-0.qcow2.bak).
2. Hlola ikhonkco lokuxhasa kunye noluhlu lwangaphakathi olukhawulezayo:
2. Ukulungisa i-QCOW2 eyaphukileyo yeFayile yokuxhasa iFayile (qemu-img rebase -u)¶
Ukuba umfanekiso weQCOW2 wangaphandle (overlay.qcow2) iyasilela ukuvula ngenxa yokuba ifayile yokuxhasa umzali wayo (base.qcow2) yasiwa kulawulo olutsha okanye indawo yokugcina, hlaziya isalathisi sefayile exhasayo ngokungakhuselekanga (-u, i-header-kuphela) indlela ngaphandle kokuphinda ubhale iibhloko zedatha:
3. Ukwenza ityathanga le-QCOW2 eethe-ethe okanye iVMDK okanye iVHDX ibe ngumfanekiso ozimelayo omtsha kraca (qemu-img convert)¶
Esinye sezixhobo eziguquguqukayo ekuhlanguleni koomatshini yi qemu-img convert (efundeka ngokomthonyama .qcow2, .vmdk, .vhdx, .vhd, kwaye .vdi). Xa ukhomba qemu-img convert ku umfanekiso wegqabi elitsha wekhonkco elisebenzayo, ifunda lonke ulawulo lomzali nomntwana kwi- imowudi engqongqo yokufunda-Kuphela kwaye ibhala idiski entsha kraca, ezimeleyo, engenasifinyezo kwindawo yokugcina yokuhlangula:
# 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
Umkhondo 4: Ukuhlangulwa kwefayile engaphandle kwebhendi (Ukukhupha iifayile xa iVM ingasayi kuqalisa)¶
Kuthekani ukuba inkqubo yokusebenza yeendwendwe ngaphakathi kwediski enenyani ayivulekiyo, okanye umfanekiso ophakathi kwitsheyini wonakaliswe ngokuyinxenye kwaye kufuneka ukhuphe idatabase yeSQL (.mdf/.ldf), iifayile ze-QuickBooks, /var/lib/mysql, okanye amaxwebhu enkampani kwimizuzu engama-30 ezayo?
**Akukho mfuneko yokuba uvule uMtshini weVirtual ukukhupha iifayile ngaphakathi kwihard drive yayo.
Indlela yoku-1: nyusa nayiphi na .vmdk, .vhdx, .qcow2, okanye .vdi kwiNdlela yokuFunda-Kuphela kwiLinux usebenzisa libguestfs (guestmount / qemu-nbd)¶
Faka libguestfs-tools (sudo apt install libguestfs-tools qemu-utils ku-Ubuntu/Debian/Proxmox) kwaye unyuse iumfanekiso wegqabi elitsha ngokungqongqo Imo Yokufunda-Kuphela (--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
Indlela yesi-2: Utsalo olukhawulezayo lokufunda-kuphela kwiWindows usebenzisa 7-Zip okanye Disk Management -> Attach VHD (Read-Only)¶
- Usebenzisa i-7-Zip (Iyasebenza
.vmdk,.vhdx,.vhd,.qcow2, kwaye.vdi): Cofa ekunene kwindawo ezimeleyo okanye yasicaba.vmdk,.vhdx, okanye.qcow2ifayile kwiWindows kwaye ukhethe ** 7-Zip -> Vula i-Archive **. I-7-Zip iyacalula i-GPT/MBR iitafile zezahlulo kunye ne-NTFS/ext4 iinkqubo zefayile ngaphakathi kweediski ezinenyani kwimowudi yokufunda kuphela eyi-100%, ikuvumela ukuba utsale kwaye uwise iifolda zeendwendwe ngqo kwi-desktop yakho ngemizuzwana. - ** Ukusebenzisa iWindows Disk Management (Ye
.vhdx/.avhdx):** Vuladiskmgmt.msc-> Isenzo -> Qhoboshela i-VHD -> Khangela kwelona phepha litsha.avhdx** (okanye.vhdx), KHANGELA IBHOKISI[X] Read-only( KUBALULEKILEYO: Ungaze ulibale ukujonga Funda-kuphela, okanye iWindows iya kuyilungisa iheader yediski), kwaye ucofe u-OK*. I-VM yakho C: kunye no-D: iidrive zivela ngoko nangoko kwi-Windows File Explorer.
Indlela yesi-3: Ukwakha kwakhona amatyathanga awonakele kakhulu nge UFS Explorer Professional Recovery¶
Ukuba umzali diski kwi VMDK okanye VHDX tyathanga iqalwe ngempazamo kwaye yalungiswa, okanye ukuba VMFS/NTFS ugcino lwedatha urhwaphilizo yahlulwe inxalenye ye -sesparse.vmdk okanye .avhdx ifayile ukuze izixhobo ze-hypervisor ziyala, UFS Explorer yoBuyiselo loBuchule (okanye R-Studio Technician) ikuvumela ukuba uhlanganisele ngesandla isiseko sediski ekrwada kunye nomfanekiso ngamnye wedelta yomntwana kwisiko Isitaki seDelta seVirtual kwisoftware ye-RAM, ugqitha i-hypervisor. CID/GUID iheader ijonga ukukrola kunye nokukhupha iifayile zendwendwe ezingaguqukiyo.
Umkhondo 5: Ukufumana kwakhona ifayile yoqwalaselo yenkedama yeVM (.vmx, .xml, okanye <vmid>.conf)¶
Ngamanye amaxesha ikhonkco lediski yenyani ngokwayo (*.vmdk, *.vhdx, okanye *.qcow2) yi 100 yepesenti engaguqukiyo kuluhlu logcino, kodwa ifayile yoqwalaselo encinci echaza ubeko lwehardware lukaMatshini Obonakalayo (.vmx kwi VMware ESXi, <GUID>.vmcx / .xml kwi-Hyper-V, okanye /etc/pve/qemu-server/<vmid>.conf in Proxmox VE) yonakele, icinywe ngempazamo, okanye ikhutshwe ngaphandle ngexesha lentlitheko yenginginya.
Ukuba uphinda ubuyisele iqokobhe le-VM ngomlawuli ongalunganga wogcino olunenyani okanye imowudi ye-firmware, inkqubo yokusebenza yeendwendwe iya kuntlitheka kwangoko kwi-boot nge INACCESSIBLE_BOOT_DEVICE (IiWindows) okanye yehla kwi-a dracut / initramfs iqokobhe likaxakeka (Linux). Tshatisa ezi zicwangciso ezine zehardware kuqwalaselo lwakho loqobo lweendwendwe phambi kokuba uncamathele kwidiski yakho enenyani ehlangulweyo:
| Isetingi seHardware Ebonakalayo | Uphawu Ukuba icwangciswe ngokuchanekileyo kwi-Replacement VM | Ungasibona njani isiSeko esiLungileyo ngaphandle kweNdala .vmx / .vmcx |
|---|---|---|
1. Indlela yokuQalisa iFirmware (UEFI / OVMF vs Legacy BIOS / SeaBIOS) |
Imiboniso ye-VM "Operating System Not Found" okanye yehla ngqo kwi-UEFI Interactive Shell (Shell>). |
Jonga itafile yesahlulelo sediski enenyani (fdisk -l okanye virt-filesystems -a disk.vmdk --partitions --long). Ukuba idiski ine 100 MB ukuya kwi-512 MB FAT32 EFI System Partition (ESP) kwaye isebenzisa GPT itafile yokwahlula, KUFANELE ubeke iVM firmware ku UEFI. Ukuba idisk isebenzisa MBR (dos) itafile yokwahlula ngaphandle kwesahlulelo se-EFI, misela i-firmware ku- Legacy BIOS. |
2. IsiLawuli soGcino lweSigcino esibonakalayo (VMware Paravirtual SCSI - PVSCSI vs LSI Logic SAS vs NVMe vs VirtIO SCSI) |
Iifestile ziphosa a 0x0000007B / INACCESSIBLE_BOOT_DEVICE Isikrini esiBlue; I-Linux ingena kwi initramfs: /dev/mapper/root does not exist. |
Kwi-VMware ESXi, hlola okubhaliweyo okucacileyo .vmdk ifayile yesichazi somgca ddb.adapterType = "lsilogic" okanye "buslogic" okanye khangela vmware.log ngaphakathi kweVM incwadi (grep -i "scsi0.virtualDev" vmware.log), eprinta eyona mbali .vmx isichazi-magama esisuka kwisiqalo esiphumeleleyo sokugqibela. |
3. Idilesi ye-MAC ye-Adaptha yoThungelwano oluQhelekileyo kunye nomqhubi (VMXNET3 vs E1000e vs VirtIO-Net) |
Iibhutsi ze-OS yeeNdwendwe, kodwa ilahlekelwa yidilesi yayo ye-IP engatshintshiyo okanye itshixiwe yelayisensi kuba ibhaqa ikhadi "elitsha" lenethiwekhi (eth1 endaweni ye eth0). |
Khangela endala vmware.log ngaphakathi kovimba wedatha weVM (grep -i "ethernet0.generatedAddress" vmware.log) ukubuyisela eyona dilesi ye-MAC ye-6-byte (00:50:56:xx:xx:xx) kwaye uyincamathisele kwisethingi yenethiwekhi yeVM yokutshintsha. |
4. TPM ebonakalayo 2.0 (vTPM) kunye neBitLocker / LUKS State |
I-BitLocker yeWindows ikhuthaza iqhosha le-48-digit lokubuyisela kwi-boot ukuba i .nvram / vTPM imeko ilahlekile. |
Kwi-VMware ESXi, hlala ugcine i <VM_Name>.nvram kwaye .vmsd iifayile ecaleni kwe .vmdk iifayile; in Hyper-V, gcina i Virtual Machines\<GUID>.vmgs (Ilizwe loNdwendwe) ukuze izitshixo zeTPM zihlale ziqhagamshelwe. |
Imibuzo edla ngokubuzwa¶
Kwenzeka ntoni ukuba ndikhomba nje iVM yam kwisiseko sokuqala `.vmdk` okanye `.vhdx` ifayile kwaye uyivule ukuze ubone ukuba yintoni engaphakathi?
UNGAZE wenze oku ngaphandle kokuxhasa iifayile kuqala, kwaye UNGAZE uqalise isiseko sediski kwindlela yokufunda-bhala xa ufoto olukhawulezayo (`-000001.vmdk` okanye `.avhdx`) zikhona. Okokuqala, isiseko sediski sakhenkcezwa ngosuku oluchanekileyo kunye nomzuzu umfanekiso wokuqala owenziweyo, ukuba i-snapshot ibisebenza kangangeenyanga ezi-6, ukuqala i-base disk boots iseva yakho njengoko ibikhona kwiinyanga ezi-6 ezidlulileyo, ilahlekile yonke ifayile enye eyenziwe kwisiqingatha sonyaka wokugqibela. Okwesibini, kwaye kubi kakhulu, ngoko nangoko indlela yokusebenza yondwendwe iqala kwisiseko sediski, ibhala iilog zesiqalo kunye notshintsho lwejenali kwisiseko sediski, ilungisa amacandelo ayo kwaye itshintsha uMxholo we-ID.`CID`) okanye Unxulumano GUID. Oko kophula ngokusisigxina imephu yebhlokhi yedelta efunwa zizo zonke izifinyezo zomntwana wakho.
Kutheni iVMware yam ESXi datastore show `Server-000001.vmdk` njengokuba nobukhulu obupheleleyo be-500 GB njenge `Server.vmdk` kwibhrawuza yewebhu?
Lo ngumboniso quirk we VMware ESXi Web Client Datastore Browser. Kwi-web browser UI, i-ESXi ifihla isiseko `-flat.vmdk`, `-delta.vmdk`, kwaye `-sesparse.vmdk` iifayile zokubini kwaye ibonisa *umthamo onikiweyo wobuchule* wediski kuneyona ndawo ibonakalayo edliwe yifayile yedelta. Ukubona amagama efayile enyani, ubukhulu be-byte, kunye neefayile zokuchaza umbhalo, yenza ukuba i-SSH isebenze kumamkeli we-ESXi, ngena nge-terminal/PuTTY, jonga ku `/vmfs/volumes/
Ndingenza njani ukudibanisa i-VMware okanye i-Hyper-V snapshots xa ugcino lwedatha lugcwele i-100% (i-bytes eyi-0 simahla)?
Xa i-datastore ibetha i-0 bytes simahla, kwindawo eqhelekileyo "Cima zonke ii-Snapshots / Consolidate" iyasilela kuba ukudibanisa i-Snapshot 2 kwi-Snapshot 1 kwandisa okwethutyana ubungakanani be-Snapshot 1 phambi kokuba i-Snapshot 2 ingacinywa. Uneendlela ezintathu ezikhuselekileyo zokuphuma: (1) Fumana kwaye ucime okanye uhambise * ezinye * iifayile ze-ISO ezingabalulekanga, iifayile ze-log ezindala, okanye ii-VM zovavanyo olunikwe amandla kwi-datastore efanayo ukukhulula i-15 ukuya kwi-20 ekhulwini lentloko; (2) Ukuba uluhlu lokugcina luyi-SAN/NAS (iSCSI/NFS/FC), yandisa iLUN kwaye ikhulise umthamo weVMFS/NTFS kwi-intanethi nge-100 GB; okanye (3) Qhoboshela idrayivu ye-USB yangaphandle okanye isabelo se-NFS kumamkeli kunye nokusetyenziswa `vmkfstools -i Server-000002.vmdk /vmfs/volumes/New_NFS_Share/Merged.vmdk` (okanye `qemu-img convert` / `Merge-VHD` kwenye idrive letter) ukudibanisa ikhonkco *ngaphandle-kwendawo* kumthamo wokugcina wesibini usebenzisa iibyte zero zesithuba sokubhala kwidatastore epheleleyo.
Ndiyithintela njani isoftware yogcino njengeVeeam, iCommVault, okanye iNakivo ekushiyeni "imifanekiso yenkedama" efihliweyo egcwalisa iseva yam kwiinyanga kamva?
Ugcino lwezicelo lwenza umfanekiso okhawulezayo wexeshana wehypervisor ekuqaleni komsebenzi ngamnye wogcino wasebusuku ukuze bafunde isiseko esinomkhenkce kwidiski, kwaye emva koko bayalele ESXi okanye Hyper-V ukucima/ukudibanisa loo mfanekiso xa ugcino lugqityiwe. Ngamanye amaxesha, ukuphelelwa kwexesha logcino kubangela ukuba inyathelo lokususa umfanekiso lisilele buthule, kushiyeke okufihliweyo. `-000001.vmdk` okanye `.avhdx` ikhula ngeenyanga ide ifike kwi-100 yepesenti yedatastore. Cwangcisa izikhuselo ezimbini ezizenzekelayo: (1) Yenza i-alamu eyakhelwe-ngaphakathi ye-vCenter / Hyper-V / Proxmox ye `"Virtual Machine Snapshot Size > 20 GB or Age > 72 Hours"`, kunye (2) Cwangcisa uphicotho lweveki kuphela lwePowerCLI okanye lwePowerShell (`Get-VM | Get-Snapshot` okanye `Get-ChildItem -Recurse -Filter *.avhdx`) ethumela i-imeyile kwiqela lakho lomlawuli nanini na xa kukho nayiphi na ifayile ekhawulezayo engaphezulu kweentsuku ezi-3 ikhona ekugcinweni kwemveliso.
Imithombo ijongiwe¶
- VMware nguBroadcom Technical Knowledge Base: KB 1007969 / 316578 (Ukusombulula "I-virtual disk yomzali ilungisiwe ukususela oko umntwana wadalwa" CID Mismatch Errors), KB 1002511 (Recreating a Missing Virtual Machine Disk Descriptor
.vmdkIfayile), kunye KB 10051 (Ukuqonda Izifinyezo zoomatshini kwi-ESXi). - IMicrosoft Learn / Windows Server Hyper-V Engineering Documentation: Hyper-V PowerShell Reference for
Get-VHD,Set-VHD -IgnoreIdMismatch, kwayeMerge-VHDUdibaniso lweDiski ngaphandle kweintanethi. - Iprojekthi yeQEMU kunye neRed Hat Enterprise Linux Virtualization Documentation: Esemthethweni
qemu-imgIncwadi (info --backing-chain,check -r all,rebase -u,convert) kunyelibguestfs(guestmount --ro) Funda-Kuphela Uhlolo lweDiski ebonakalayo. - Uxwebhu lobuGcisa lweOracle VirtualBox:
VBoxManage showmediuminfokwayeclonemediumUmahluko kuYilo loMfanekiso. - Iziko leSizwe leMigangatho kunye neTekhnoloji (NIST, eUnited States): NIST Special Publication 800-86: Isikhokelo sokuHlanganisa ubuChwepheshe boBuchule kwiMpendulo yeSiganeko (UkuGcinwa koMfanekiso weMifanekiso eVirtual).
Izikhokelo ezinxulumeneyo¶
- I-NAS kunye ne-RAID i-array ithotywe, ukungaphumeleli kwe-drive ezininzi, kunye ne-ZFS / Btrfs recovery
- I-NVMe okanye i-SSD ngokukhawuleza ingena kwimodi yokufunda kuphela okanye iyanyamalala kwi-BIOS
- Ukungaphumeleli kwe-hard drive kunye nokubuyisela idatha kaxakeka
- Ukusilela kwenkqubo yeLinux kunye nokulungiswa kweGRUB
- Windows Blue Screen (BSOD) kunye nokulungiswa kwe-boot
- Ukugcinwa kwekhompyuter: isicwangciso se-3-2-1 kunye nokubuyiswa kweentlekele
- Iinombolo zikaxakeka zehlabathi