Prerušený reťazec snímok virtuálneho počítača (.VMDK / .VHDX / .QCOW2) a záchrana disku¶
Tiesňové čísla sa v jednotlivých krajinách líšia. Táto stránka používa 911, číslo pre USA a Kanadu. Mnoho iných krajín používa 112, 999 alebo iné číslo. Nájdite číslo pre vašu krajinu.
Keď sa produkčný virtuálny stroj (VM) na VMware ESXi / Workstation, Microsoft Hyper-V, Proxmox VE / QEMU-KVM alebo Oracle VirtualBox náhle odmietne zapnúť po zlyhaní úlohy zálohovania, v úložisku údajov sa minie miesto na disku (0 bytes free), alebo sa správca dotkne súboru snímky, jediné kliknutie v panike môže vymazať mesiace alebo roky aktuálnych obchodných údajov. Snímky virtuálneho počítača nie sú úplné nezávislé zálohy; sú krehké Copy-on-Write (CoW) delta rozlišovacie reťazce (*-000001-delta.vmdk, *.avhdxalebo záložný súbor .qcow2 overlays), kde každý jeden blok zapísaný od vytvorenia snímky žije výlučne v podriadených delta súboroch, zatiaľ čo pôvodný základný disk je v minulosti zmrazený.
Ak vidíte chyby ako napr "The parent virtual disk has been modified since the child was created (Parent CID does not match)" vo VMware, "Cannot boot: The chain of virtual hard disks is broken" v Hyper-V, príp "Could not open backing file: L1/L2 table corrupted" in QEMU/Proxmox, re-pointing the VM Directly at the Base Disk (flat.vmdk alebo základňu .vhdx) and booting it up is fatal. Doing so boots the server as it existed 6 months ago when the first snapshot was created, instantly invalidating the cryptographic parent-child GUID/CID link and rendering every delta snapshot since that date orphaned and unmergeable.
This guide provides step-by-step non-destructive snapshot chain reconstruction, descriptor-file header repair, and out-of-band guest file extraction protocols based on VMware by Broadcom Knowledge Base Articles (KB 1007969 / 316578 and KB 1002511), Microsoft Hyper-V Merge-VHD a Set-VHD engineering specifications, QEMU qemu-img a libguestfs (guestmount) forensic standards, and NIST Special Publication 800-86.
Urobte to teraz¶
If a virtual machine refuses to start or throws a broken snapshot chain / corrupted virtual disk error:
- NEVER edit the VM settings to boot directly from the Base Disk (
Server.vmdkaleboServer.vhdx) when delta snapshots (-000001.vmdkalebo.avhdx) exist in the folder. The moment a guest operating system boots directly off the base parent disk for even 2 seconds, the guest OS writes boot timestamps and NTFS/ext4 journal updates into the base disk, modifying the parent disk's Content ID (CID) in VMware or Linkage GUID / Timestamp in Hyper-V. That single boot breaks the entire chain of child snapshots that depend on the base disk staying bit-for-bit frozen. If your server room is experiencing an active fire, cooling failure, or physical hazard, evacuate and call your local emergency number (911 in the United States and Canada, 112 across the European Union, 999 in the United Kingdom) or check tiesňové čísla. - NEVER delete
.avhdx,-delta.vmdk, alebo-sesparse.vmdkfiles in Windows Explorer or the ESXi Datastore Browser to "free up disk space." Unlike normal temporary files,.avhdxa-delta.vmdkfiles ARE your current live hard drive. If a snapshot was created 8 months ago by a stuck Veeam/CommVault backup job and left running, 100 percent of every database transaction, invoice, and file created during the last 8 months is stored inside those.avhdxalebo-delta.vmdkfiles. Deleting them deletes all data created since the snapshot started. - Copy or clone all
.vmdk,.vhdx/.avhdx, alebo.qcow2files to an external / secondary storage volume BEFORE running any merge, commit, or repair command. Merging a snapshot chain writes all delta blocks backward into the parent disk in-place. If a merge fails halfway through due to a bad disk sector or datastore full error, both the parent and child disks are corrupted unless you took a raw file copy first. - If the hypervisor failed because the host Datastore / Volume hit 100% Full (
No space left on device), NEVER try to "Delete / Consolidate Snapshots" until you add free space or clone to a larger datastore. Consolidating a multi-snapshot chain requires temporary scratch space equal to the size of the largest delta disk. Attempting to consolidate on a 99% full datastore will crash the hypervisor mid-commit. - Namapujte presný reťazec závislosti rodič -> dieťa pomocou kontrolných príkazov iba na čítanie (
vmkfstools -e,Get-VHD, aleboqemu-img info --backing-chain) predtým, než sa dotknete jedného bajtu. Každá hlavička súboru so snímkou explicitne pomenúva presný nadradený názov súboru a nadradené kryptografické ID, od ktorého sa očakáva, že bude priamo nad ním.
flowchart TD
A["VM odmieta zaviesť systém: Prerušený reťazec snímok, nesúlad rodičovského CID alebo poškodený VMDK/VHDX/QCOW2"] --> B["STOP: NEZAVÁDZAJTE priamo základný disk a NEODSTRAŇUJTE žiadne súbory -delta.vmdk alebo .avhdx"]
B --> C["Krok 1: Skontrolujte úložisko dát hostiteľa / voľné miesto na zväzku (`df -h` / `zoznam úložných súborových systémov esxcli`)"]
C --> D["Krok 2: Pred úpravou skopírujte všetky základné a snímky na sekundárny záložný disk NAS/SAN/USB"]
D --> E{"Ktorý hypervízor / formát virtuálneho disku je ovplyvnený?"}
E -->|"1. VMware ESXi / Workstation (.vmdk / -flat.vmdk / -delta.vmdk / -sesparse.vmdk)"| F["Skontrolujte textové deskriptory (`cat *.vmdk`) a kontrolný reťazec (`vmkfstools -e Server-000002.vmdk`)"]
F --> G{"Čo je chyba VMware VMDK?"}
G -->|"Nesúlad CID rodiča (`parentCID .= CID rodiča`)"| H["Upravte podradený textový deskriptor `.vmdk` tak, aby sa `parentCID` zhodovalo s `CID` rodiča, ALEBO klonujte aktívny listový disk do nového konsolidovaného VMDK (`vmkfstools -i`)"]
G -->|"Chýba 1-kB textový deskriptor `.vmdk` (existuje len veľký `-flat.vmdk`)"| I["Vypočítajte presnú veľkosť bajtu / 512 sektorov a znova vytvorte deskriptor `.vmdk` s obyčajným textom pomocou `vmkfstools -c`"]
E -->|"2. Microsoft Hyper-V (reťazec .vhdx a .avhdx)"| J["Skontrolujte reťazec od najnovšieho `.avhdx` vyššie: `Get-VHD -Path *.avhdx | Vyberte Cesta, ParentPath`"]
J --> K["Relink broken parent pointer (`Set-VHD -Path child.avhdx -ParentPath parent.vhdx -IgnoreIdMismatch`) or offline merge (`Merge-VHD`)"]
E -->|"3. Proxmox / KVM / QEMU (.qcow2) or VirtualBox (.vdi)"| L["Check `qemu-img info --backing-chain`; repair refcount/L2 tables (`qemu-img check -r all`) or rebase (`qemu-img rebase -u`)"]
H --> M["Out-of-Band File Rescue Fallback: Mount any chain directly in Read-Only mode via `guestmount --ro` or `7-Zip` / `UFS Explorer`"]
I --> M
K --> M
L --> M
Pochopenie toho, ako vlastne fungujú reťazce snímok virtuálnych strojov¶
Či už používate VMware ESXi, Microsoft Hyper-V, Proxmox/KVM alebo VirtualBox, každý hypervízor implementuje snímky pomocou presne tej istej základnej architektúry: jednosmerne prepojený zoznam rodičovských diskov iba na čítanie a delta diskov s podriadeným listom na čítanie a zápis.
[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ď chce VM dnes zapísať nový blok, zapíše LEN do spodného listového súboru (
Snapshot 2). - Keď chce VM dnes prečítať blok, hypervízor to skontroluje
Snapshot 2najprv. Ak bol tento blok upravený od 1. júna, číta ho odSnapshot 2. Ak nie, hľadá sa v reťazciSnapshot 1. If it wasn't modified there either, it reads the original block from theBase Disk. - Why chains break: Every child snapshot stores two strict pointers in its header: (1) The file path of its immediate parent, and (2) A 32-bit Content ID (
CIDin VMware) or 128-bit Linkage GUID (ParentUniqueIdin Hyper-V) that gets regenerated every time a parent disk is opened for writing. If anyone moves a file, renames a folder, or briefly mounts the parent disk in read-write mode, the parent'sCID/GUIDzmeny a hypervízor okamžite odmietne pripojiť podriadenú snímku, aby zabránil poškodeniu tichého bloku.
| Platforma hypervízora | Súbory základného disku | Snímka / Delta súbory | Nástroj CLI na kontrolu reťaze | Bezpečná konsolidácia / nástroj CLI na zlúčenie |
|---|---|---|---|---|
| VMware ESXi (VMFS-5 / VMFS-6) & Workstation | VM.vmdk (500-byte plain-text descriptor) + VM-flat.vmdk (nespracované binárne údaje na disku) |
VM-000001.vmdk (text descriptor) + VM-000001-sesparse.vmdk (VMFS-6) or 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 (Non-destructive out-of-place clone/merge) |
| Microsoft Hyper-V (Windows Server) | VM.vhdx (or legacy .vhd) |
VM_<GUID>.avhdx (alebo .avhd) |
PowerShell: Get-VHD -Path *.avhdx \ | Select Path,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 (or raw LVM/ZFS volume) |
External overlay .qcow2 s hlavičkou podporného súboru (alebo internou tabuľkou snímok QCOW2) |
qemu-img info --backing-chain top_overlay.qcow2 |
qemu-img convert -O qcow2 top_overlay.qcow2 flattened_rescue.qcow2 (Najbezpečnejšie sploštenie mimo miesta) príp qemu-img commit |
| Oracle VirtualBox | Disk.vdi (v priečinku VM) |
{UUID}.vdi vnútri Snapshots/ podpriečinok + .vbox Register médií XML |
VBoxManage showmediuminfo disk "{UUID}.vdi" |
VBoxManage clonemedium disk "{Newest_Snapshot_UUID}.vdi" Flattened_Rescue.vdi |
Stopa 1: Záchrana VMware ESXi & Workstation .vmdk snapshot reťaze¶
Vo VMware ESXi sa jeden virtuálny disk v skutočnosti skladá z dvoch samostatných súborov pre základný disk a dvoch samostatných súborov pre každú snímku:
1. Malý (-500-bajtový) súbor deskriptora obyčajného textu (Server.vmdk a Server-000001.vmdk) ktorá drží CID, parentCID, geometriu disku a presný názov súboru binárneho rozsahu. (Poznámka: Webové grafické používateľské rozhranie prehliadača ESXi Datastore Browser skryje spárované -flat.vmdk a -sesparse.vmdk binárne súbory a zobrazuje iba jednu zlúčenú ikonu, na zobrazenie skutočných súborov MUSÍTE použiť reláciu terminálu SSH na hostiteľovi ESXi).
2. Binárny multigigabajtový súbor dátového rozsahu (Server-flat.vmdk pre základný disk a Server-000001-sesparse.vmdk alebo Server-000001-delta.vmdk pre každú snímku).
Scenár 1A: Oprava "The parent virtual disk has been modified since the child was created (Parent CID mismatch)"¶
- SSH do hostiteľa ESXi a prejdite do adresára úložiska údajov virtuálneho počítača:
- Vytlačte
CID,parentCID, aparentFileNameHintcez všetky textové deskriptory.vmdksúbory naraz: (Dôležité: Len spustiťcatalebogrepna malom 500-bajtovom textovom deskriptore.vmdksúbory, NIE na multi-gigabajt-flat.vmdkalebo-sesparse.vmdksúbory). - Porovnaj
CIDkaždého rodiča protiparentCIDsvojho bezprostredného dieťaťa: Pozrite sa na výstup: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" - ** Opravte poškodené
parentCIDv detskom deskriptore a overte pomocouvmkfstools -e:** - Najprv si zálohujte súbory textových deskriptorov (
cp Server-000001.vmdk Server-000001.vmdk.bak). - Otvorte
Server-000001.vmdkvvia zmeniťparentCID=55443322doparentCID=1a2b3c4d(zhodaServer.vmdkaktuálnyCID). - Otestujte integritu reťaze z najnovšej (najvyššie očíslovanej) snímky pomocou
vmkfstools -e: - Ak je reťaz neporušená, výstup ESXi:
Disk chain is consistent. - NEDESTRUKTÍVNA KONSOLIDÁCIA (
vmkfstools -iKlon mimo miesto): - Ak
Server.vmdkbol mierne upravený predtým, ako ste ho opraviliparentCID,nekonsolidujte na mieste cez svoju jedinú kópiu. Namiesto toho bodvmkfstools -ina najnovšej snímke listu (Server-000002.vmdk) a naklonujte celý reťazec do úplne nového, jediného splošteného VMDK na dátovom úložisku s voľným priestorom: vmkfstools -ičíta každý blok zServer-000002.vmdkdole cezServer-000001.vmdkaServer-flat.vmdkv prísnom režime iba na čítanie a zapisuje čistý záznam bez snímokServer_Merged.vmdkbez toho, aby ste sa dotkli pôvodných súborov.
Scenár 1B: Obnovenie chýbajúcich alebo odstránených 500-bajtov .vmdk textový deskriptor kedy Server-flat.vmdk je stále neporušený¶
Niekedy sa vymaže správca alebo poškodený skript Server.vmdk (alebo sa poškodí 0 bytes), čo spôsobí, že prehliadač Datastore Browser prestane zobrazovať virtuálny disk, aj keď má obrovský 500-gigabajt Server-flat.vmdk súbor obsahujúci 100 percent vašich skutočných údajov sa stále nachádza priamo tam v SSH (ls -la *-flat.vmdk).
Chýbajúci obyčajný text môžete vytvoriť znova Server.vmdk súbor deskriptora za 60 sekúnd bez straty jediného bajtu údajov vo vnútri 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)
Scenario 1C: Unlocking a .vmdk uzamknutý zaveseným hostiteľom ESXi alebo zlyhaným záložným serverom proxy (Cannot open the disk: Failed to lock the file)¶
Ak sa VM odmietne zapnúť pomocou Failed to lock the file alebo Cannot open disk: Resource busy, iný hostiteľ ESXi v klastri (alebo zariadenie Veeam/backup HotAdd, ktoré zlyhalo počas zálohovania) stále drží uzamknutie súboru SCSI / VMFS -flat.vmdk alebo -sesparse.vmdk:
1. Skontrolujte, či havarovaný záložný proxy virtuálny počítač stále obsahuje vaše produkčné virtuálne počítače .vmdk pripojené k jeho virtuálnemu radiču SCSI: Upravte nastavenia svojich virtuálnych počítačov proxy Veeam/CommVault a odstráňte všetky zastarané pripojené produkčné disky (vyberte možnosť „Odstrániť z virtuálneho počítača“, NIKDY „Odstrániť súbory z úložiska údajov“).
2. Nájdite, ktorá MAC adresa hostiteľa ESXi a svetový proces obsahuje zámok VMFS:
vmx ID sveta (esxcli vm process list) a ukončiť visiaci svet (esxcli vm process kill --type=force --world-id=<WorldID>).
Track 2: Rescuing Microsoft Hyper-V .vhdx a .avhdx snapshot reťaze¶
V Microsoft Hyper-V každý kontrolný bod (snímka) vytvára odlišný virtuálny pevný disk s príponou .avhdx (príp .avhd na staršom formáte VHD) priradený dlhý názov súboru GUID, napr ProdSQL_A1B2C3D4-E5F6-7890-ABCD-1234567890AB.avhdx.
Krok 1: Mapujte presne chronologicky .avhdx strom rodič-dieťa v PowerShell¶
Pred zlúčením alebo opätovným prepojením čohokoľvek v Hyper-V Manager otvorte okno Elevated Administrator PowerShell na hostiteľovi Hyper-V, prejdite do priečinka obsahujúceho vaše .vhdx a .avhdx súbory a spustite tento jednoduchý riadok, aby ste zobrazili presný reťazec rodič-dieťa od najnovšieho po najstarší:
# 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
Pozrite sa na Path a ParentPath poliach. Odhalia presné poradie reťaze:
- ProdSQL.vhdx -> ParentPath: (blank) (Root Base Disk, Oldest)
- ProdSQL_1111.avhdx -> ParentPath: D:\VMs\ProdSQL.vhdx (Child 1)
- ProdSQL_2222.avhdx -> ParentPath: D:\VMs\ProdSQL_1111.avhdx (Child 2)
- ProdSQL_3333.avhdx -> ParentPath: D:\VMs\ProdSQL_2222.avhdx (Newest Active Leaf Disk)
Step 2: Fixing "The chain of virtual hard disks is broken" alebo "Differencing disk parent ID mismatch" (Set-VHD -IgnoreIdMismatch)¶
What if someone moved the VM folder from C:\VMs\ do E:\VMs\, or accidentally booted ProdSQL.vhdx for 5 seconds, causing ProdSQL_1111.avhdx to fail with:
The chain of virtual hard disks is broken. The system cannot locate the parent virtual hard disk for the differencing disk alebo There is a mismatch in the virtual disk identifiers?
Použite oficiálnu rutinu cmdlet Hyper-V PowerShell Set-VHD s -IgnoreIdMismatch príznak (najskôr po zálohovaní súborov):
# 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
Krok 3: Manuálne zlúčenie osiroteného .avhdx reťaz od NAJNOVŠÍCH po NAJSTARŠIE (Merge-VHD)¶
Keď záložný agent opustí 15 siroty .avhdx súbory vo vašom priečinku, ktoré sa už nezobrazujú v strome kontrolných bodov GUI Hyper-V Manager, musíte ich zlúčiť ručne v prostredí PowerShell, keď je VM vypnutý.
Danger
** Železné pravidlo Hyper-V .avhdx Zlúčenie:** VŽDY sa musíte zlúčiť od NAJNOVŠIEHO (najmladší list) .avhdx do svojho bezprostredného rodiča, postupujúc krok za krokom smerom dozadu po reťazci až po základňu .vhdx zostáva.
Napríklad v reťazci Base.vhdx <- Child1.avhdx <- Child2.avhdx <- Child3_Newest.avhdx:
1. Zlúčiť Child3_Newest.avhdx -> do Child2.avhdx.
2. Zlúčiť Child2.avhdx -> do Child1.avhdx.
3. Zlúčiť Child1.avhdx -> do Base.vhdx.
4. Nasmerujte nastavenia VM na Base.vhdx a naštartovať.
Spustite tieto presné príkazy PowerShell na pracovnej kópii priečinka:
# 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"
Skladba 3: Záchrana Proxmox VE / QEMU / KVM .qcow2 a VirtualBox .vdi reťaze¶
1. Kontrola a oprava poškodených QCOW2 L1/L2 Cluster & Refcount Tables (qemu-img check)¶
Keď hostiteľ Linux KVM alebo Proxmox utrpí náhly výpadok napájania bez vyrovnávacej pamäte zálohovanej batériou, a .qcow2 virtuálny disk sa často nepodarí spustiť qcow2: Marking image as corrupt: L2 table offset unaligned alebo Refcount block corrupted.
1. ** Najprv skopírujte súbor .qcow2 súbor (cp vm-100-disk-0.qcow2 vm-100-disk-0.qcow2.bak).**
2. Audit podporného reťazca a zoznamu interných snímok:
2. Oprava poškodenej cesty k záložnému súboru QCOW2 (qemu-img rebase -u)¶
Ak externý snímok QCOW2 (overlay.qcow2) sa nepodarilo otvoriť, pretože jeho nadradený podporný súbor (base.qcow2) bol presunutý do nového adresára alebo úložnej oblasti, aktualizujte ukazovateľ záložného súboru v nebezpečnom (-u, iba hlavička) režim bez prepisovania dátových blokov:
3. Sploštenie krehkého reťazca QCOW2 alebo VMDK alebo VHDX do úplne nového samostatného obrazu (qemu-img convert)¶
Jedným z najuniverzálnejších nástrojov na záchranu virtuálnych strojov je qemu-img convert (ktorý natívne znie .qcow2, .vmdk, .vhdx, .vhd, a .vdi). Keď ukážeš qemu-img convert na najnovšej snímke listu platného reťazca načíta celú hierarchiu rodič-dieťa v prísnom režime iba na čítanie a zapíše úplne nový, samostatný virtuálny disk bez snímok na vaše záchranné úložisko:
# 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
Stopa 4: Záchrana súboru mimo pásma (Extrahovanie súborov, keď sa VM stále nespustí)¶
Čo ak sa hosťujúci operačný systém vo virtuálnom disku nedá zaviesť alebo je stredný snímok v reťazci čiastočne poškodený a potrebujete vytiahnuť databázy SQL (.mdf/.ldf), súbory QuickBooks, /var/lib/mysql, alebo firemné dokumenty v priebehu nasledujúcich 30 minút?
Na extrahovanie súborov na virtuálnom pevnom disku nepotrebujete zavádzať virtuálny počítač. Použite ktorýkoľvek z týchto troch nedeštruktívnych nástrojov na mimopásmovú montáž:
Metóda 1: Namontujte ľubovoľný .vmdk, .vhdx, .qcow2, alebo .vdi v režime iba na čítanie v systéme Linux libguestfs (guestmount / qemu-nbd)¶
Inštalovať libguestfs-tools (sudo apt install libguestfs-tools qemu-utils na Ubuntu/Debian/Proxmox) a pripojte najnovšiu snímku listu v prísnom režime iba na čítanie (--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
Metóda 2: Okamžitá extrakcia iba na čítanie v systéme Windows pomocou 7-Zip alebo Disk Management -> Attach VHD (Read-Only)¶
- Pomocou 7-Zip (funguje na
.vmdk,.vhdx,.vhd,.qcow2, a.vdi): Kliknite pravým tlačidlom myši na samostatnú alebo sploštenú.vmdk,.vhdx, alebo.qcow2súbor v systéme Windows a vyberte 7-Zip -> Open Archive. 7-Zip natívne analyzuje tabuľky oddielov GPT/MBR a súborové systémy NTFS/ext4 na virtuálnych diskoch v režime 100% iba na čítanie, čo vám umožňuje presúvať zložky hosťa priamo na plochu v priebehu niekoľkých sekúnd. - Pomocou správy diskov systému Windows (pre
.vhdx/.avhdx): Otvorenédiskmgmt.msc-> Akcia -> Pripojiť VHD -> Prejdite na najnovší list.avhdx(príp.vhdx), ZAčiarknite políčko[X] Read-only(KRITICKÉ: Nikdy nezabudnite zaškrtnúť Iba na čítanie, inak systém Windows upraví hlavičku disku) a kliknite na OK. Jednotky C: a D: vášho VM sa okamžite objavia v Prieskumníkovi súborov Windows.
Metóda 3: Rekonštrukcia vážne poškodených reťazí s UFS Explorer Professional Recovery¶
Ak bol nadradený disk v reťazci VMDK alebo VHDX náhodne spustený a upravený, alebo ak poškodenie dátového úložiska VMFS/NTFS skartovalo časť -sesparse.vmdk alebo .avhdx súbor, takže ho nástroje hypervízora odmietnu, UFS Explorer Professional Recovery (alebo R-Studio Technician) vám umožňuje manuálne zostaviť nespracovaný základný disk a každý podriadený delta obraz do vlastného Virtual Delta Stack v softvérovej RAM, čím sa obíde hypervízor CID/GUID kontroly hlavičky na vyrezanie a extrahovanie neporušených súborov hostí.
Stopa 5: Obnova osamoteného konfiguračného súboru virtuálneho počítača (.vmx, .xml, alebo <vmid>.conf)¶
Niekedy samotný reťazec virtuálneho pevného disku (*.vmdk, *.vhdx, alebo *.qcow2) je na úložnom poli 100 percent nedotknutý, ale malý konfiguračný súbor, ktorý definuje rozloženie hardvéru virtuálneho počítača (.vmx vo VMware ESXi, <GUID>.vmcx / .xml v Hyper-V, príp /etc/pve/qemu-server/<vmid>.conf v Proxmox VE) je poškodený, náhodne odstránený alebo vynulovaný počas zlyhania hostiteľa.
Ak znovu vytvoríte náhradný shell VM s nesprávnym režimom radiča virtuálneho úložiska alebo firmvéru, hosťujúci operačný systém okamžite zlyhá pri zavádzaní INACCESSIBLE_BOOT_DEVICE (Windows) alebo vstúpte do a dracut / initramfs núdzový shell (Linux). Pred pripojením zachráneného virtuálneho disku prispôsobte tieto štyri nastavenia hardvéru vašej pôvodnej konfigurácii hosťa:
| Nastavenie virtuálneho hardvéru | Symptóm, ak je nesprávne nastavený na náhradnom VM | Ako určiť správne nastavenie bez starého .vmx / .vmcx |
|---|---|---|
1. Režim spustenia firmvéru (UEFI / OVMF vs Legacy BIOS / SeaBIOS) |
Displeje VM "Operating System Not Found" alebo padne priamo do UEFI Interactive Shell (Shell>). |
Skontrolujte tabuľku oddielov virtuálneho disku (fdisk -l alebo virt-filesystems -a disk.vmdk --partitions --long). Ak má disk 100 MB až 512 MB FAT32 EFI System Partition (ESP) a používa tabuľku oblastí GPT, MUSÍTE nastaviť firmvér virtuálneho počítača na UEFI. Ak disk používa tabuľku oblastí MBR (dos) bez oblasti EFI, nastavte firmvér na Legacy BIOS. |
2. Typ virtuálneho pamäťového radiča (VMware Paravirtual SCSI - PVSCSI vs LSI Logic SAS vs NVMe vs VirtIO SCSI) |
Windows hádže a 0x0000007B / INACCESSIBLE_BOOT_DEVICE Modrá obrazovka; Linux padá do initramfs: /dev/mapper/root does not exist. |
Vo VMware ESXi skontrolujte čistý text .vmdk súbor deskriptora pre riadok ddb.adapterType = "lsilogic" alebo "buslogic" alebo skontrolujte vmware.log v priečinku VM (grep -i "scsi0.virtualDev" vmware.log), ktorý tlačí presné historické .vmx slovník z posledného úspešného spustenia. |
3. Adresa MAC a ovládač virtuálneho sieťového adaptéra (VMXNET3 vs E1000e vs VirtIO-Net) |
Hosťujúci OS sa zavedie, ale stratí svoju statickú IP adresu alebo licenčný zámok, pretože zistí „novú“ sieťovú kartu (eth1 namiesto toho eth0). |
Hľadaj po starom vmware.log v adresári úložiska údajov virtuálneho počítača (grep -i "ethernet0.generatedAddress" vmware.log) na obnovenie presnej 6-bajtovej adresy MAC (00:50:56:xx:xx:xx) a vložte ho do sieťových nastavení náhradného virtuálneho počítača. |
4. Virtuálny TPM 2.0 (vTPM) a BitLocker / LUKS State |
Windows BitLocker vyzve na zadanie 48-miestneho kľúča na obnovenie pri zavádzaní, ak .nvram / vTPM chýba štát. |
Vo VMware ESXi vždy zachovávajte <VM_Name>.nvram a .vmsd súbory vedľa .vmdk súbory; v Hyper-V zachovajte Virtual Machines\<GUID>.vmgs (Stav hosťa), aby virtuálne kľúče TPM zostali prepojené. |
Často kladené otázky¶
Čo sa stane, ak nasmerujem svoj VM späť na pôvodnú základňu `.vmdk` alebo `.vhdx` súbor a spustite ho, aby ste videli, čo je vo vnútri?
NIKDY to nerobte bez toho, aby ste najprv zálohovali súbory a NIKDY nespúšťajte základný disk v režime čítania a zápisu, keď sa vytvárajú snímky (`-000001.vmdk` alebo `.avhdx`) existujú. Po prvé, základný disk bol zmrazený presne v deň a minútu, kedy bola vytvorená úplne prvá snímka, ak snímka beží 6 mesiacov, spustenie základného disku spustí váš server tak, ako existoval pred 6 mesiacmi, pričom chýba každý jeden súbor vytvorený za posledný polrok. Po druhé, a čo je ešte horšie, v momente, keď sa hosťujúci operačný systém zavedie zo základného disku, zapíše na základný disk bootovacie protokoly a zmeny žurnálu, upraví jeho sektory a zmení jeho Content ID (`CID`) alebo Linkage GUID. To natrvalo naruší mapu delta blokov, ktorú potrebujú všetky snímky vášho dieťaťa.
Prečo sa zobrazuje moje úložisko údajov VMware ESXi `Server-000001.vmdk` ako má rovnakú plnú veľkosť 500 GB ako `Server.vmdk` vo webovom prehliadači?
Toto je zvláštnosť zobrazenia prehliadača VMware ESXi Web Client Datastore. V používateľskom rozhraní webového prehliadača ESXi skrýva základ `-flat.vmdk`, `-delta.vmdk`, a `-sesparse.vmdk` binárne súbory a zobrazuje *poskytnutú logickú kapacitu* disku namiesto skutočného fyzického priestoru spotrebovaného delta súborom. Ak chcete zobraziť skutočné fyzické názvy súborov, presné veľkosti bajtov a súbory textových deskriptorov, povoľte SSH na hostiteľovi ESXi, prihláste sa cez terminál/PuTTY, prejdite na `/vmfs/volumes/
Ako môžem skonsolidovať snímky VMware alebo Hyper-V, keď je úložisko údajov hostiteľa na 100 % plné (0 voľných bajtov)?
Keď dátové úložisko dosiahne 0 bajtov voľného miesta, bežné miestne „Odstrániť všetky snímky / konsolidovať“ zlyhá, pretože zlúčenie snímky 2 do snímky 1 dočasne zväčší veľkosť snímky 1 predtým, ako bude možné snímku 2 odstrániť. Máte tri bezpečné spôsoby: (1) Nájdite a odstráňte alebo presuňte *iné* nedôležité ISO súbory, staré protokolové súbory alebo vypnuté testovacie VM na tom istom dátovom úložisku, aby ste uvoľnili 15 až 20 percent priestoru; (2) Ak je úložné pole SAN/NAS (iSCSI/NFS/FC), rozšírte LUN a zväčšite objem VMFS/NTFS online o 100 GB; alebo (3) Pripojte externý USB disk alebo zdieľanie NFS k hostiteľovi a používajte ho `vmkfstools -i Server-000002.vmdk /vmfs/volumes/New_NFS_Share/Merged.vmdk` (alebo `qemu-img convert` / `Merge-VHD` na iné písmeno jednotky) na konsolidáciu reťazca *nemiestneho* na druhý úložný zväzok s použitím nula bajtov zapisovacieho priestoru v celom dátovom úložisku.
Ako zabránim zálohovaciemu softvéru, ako je Veeam, CommVault alebo Nakivo, aby zanechal skryté „osirotené snímky“, ktoré zaplnia môj server o mesiace neskôr?
Aplikácie zálohovania vytvoria dočasnú snímku hypervízora na začiatku každej úlohy nočného zálohovania, aby si mohli prečítať zamrznutý základný disk, a potom prikázať ESXi alebo Hyper-V, aby po dokončení zálohovania túto snímku vymazali/konsolidovali. Časový limit úložiska občas spôsobí, že krok odstránenia snímky ticho zlyhá a zostane skrytý `-000001.vmdk` alebo `.avhdx` mesiace, kým nedosiahne 100 percent dátového úložiska. Nastavte dve automatické ochrany: (1) Povoľte vstavaný alarm vCenter / Hyper-V / Proxmox pre `"Virtual Machine Snapshot Size > 20 GB or Age > 72 Hours"`a (2) Naplánujte si týždenný audit PowerCLI alebo PowerShell iba na čítanie (`Get-VM | Get-Snapshot` alebo `Get-ChildItem -Recurse -Filter *.avhdx`), ktorý pošle e-mail vášmu správcovskému tímu vždy, keď sa v produkčnom úložisku nachádza akýkoľvek súbor snímky starší ako 3 dni.
Zdroje skontrolované¶
- VMware by Broadcom Technical Knowledge Base: KB 1007969 / 316578 (Riešenie chýb „Rodičovský virtuálny disk bol zmenený od vytvorenia potomka“ CID Mismatch Error), KB 1002511 (Obnovenie chýbajúceho deskriptora disku virtuálneho počítača
.vmdkSúbor) a KB 10051 (Porozumenie snímkam virtuálneho počítača v ESXi). - Microsoft Learn / Windows Server Technická dokumentácia Hyper-V: Hyper-V PowerShell Reference for
Get-VHD,Set-VHD -IgnoreIdMismatch, aMerge-VHDOffline rozdielová konsolidácia diskov. - Projekt QEMU a dokumentácia k virtualizácii Red Hat Enterprise Linux: Oficiálna
qemu-imgManuál (info --backing-chain,check -r all,rebase -u,convert) alibguestfs(guestmount --ro) Kontrola virtuálneho disku len na čítanie. - Technická dokumentácia Oracle VirtualBox:
VBoxManage showmediuminfoaclonemediumRozdiel v architektúre obrázkov. - National Institute of Standards and Technology (NIST, Spojené štáty americké): Špeciálna publikácia NIST 800-86: Sprievodca integráciou forenzných techník do reakcie na incidenty (Virtual Machine Image Preservation).
Súvisiaci sprievodcovia¶
- Zhoršené pole NAS a RAID, zlyhanie viacerých diskov a obnovenie ZFS/Btrfs
- NVMe alebo SSD náhle prejde do režimu len na čítanie alebo zmizne z BIOSu
- Porucha pevného disku a núdzová obnova dát
- Zlyhanie zavádzania systému Linux a oprava GRUB
- Modrá obrazovka systému Windows (BSOD) a oprava zavádzania
- Počítačové zálohy: stratégia 3-2-1 a obnova po havárii
- Globálne tiesňové čísla