ReFS, VHDX i FileIntegrity – maszyna nie wstaje…

Po podłączeniu pliku vhdx na dysku ReFS przy uruchamianiu maszyny możemy napotkać się na następujący komunikat błędu:

'VMACHINE-NAME': Attachment 'xxxxxx\Virtual Hard Disks\xxxxxxx.vhdx' failed to open because of error: 'The requested operation could not be completed due to a virtual disk system limitation.  On NTFS, virtual hard disk files must be uncompressed and unencrypted. On ReFS, virtual hard disk files must not have the integrity bit set.' (7864368). (Virtual machine ID 3D3917BA-9E01-453F-B8DA-416AF80B6652)

Jest to spowodowane tym iż plik VHDX ma założoną flagę Integrity, która odpowiada za to by zmiany realizowane w pliku były wykonywane najpierw w innym miejscu niż oryginalne dane. Zapobiegnie to sytuacji w której dane mogły by być nadpisane częściowo (przy utracie zasilania) i nie zostaną uwzględnione w metadanych i sumach kontrolnych pliku.

W przypadku plików VHD/VHDX ten tryb musi być wyłączony. Tworząc plik VHDX za pomocą Hyper-V czy też Disk Management system pilnuje by ustawić poprawny tryb, jednakże podczas kopiowania plików z innego serwera lub z partycji NTFS będzie ustawiony jako włączony.

Wyłączenie Integrity realizujemy za pomoca polecenia PowerShell:

Set-FileIntegrity -FileName 'sciezka_do_pliku\plik.vhdx' -Enable $False

Kluczowe jest by:

  • Plik nie był aktualnie w użyciu – np. maszyna wirtualna musi być wyłączona, albo plik nie może być zamontowany w systemie Windows
  • Należy podać pełną ścieżkę do pliku

 

Post Author: chris

4 thoughts on “ReFS, VHDX i FileIntegrity – maszyna nie wstaje…

    RS

    (2013-12-02 - 18:17)

    Przy próbie uruchomienia polecenia dostaję komunikat:
    Set-FileIntegrity : The specified extrinsic Method does not exist.

      chris

      (2013-12-03 - 16:33)

      Bardzo ważna jest ścieżka do pliku – musi być pełna ścieżka, podanie samego pliku nic nie da.

      Mógłbym prosić całą treść komunikatu błędu (ew. na priv), możesz oczywiście ścieżki, nazwy hostów itp “zamazać” 🙂

    RS

    (2013-12-02 - 18:17)

    Przy próbie uruchomienia polecenia dostaję komunikat:
    Set-FileIntegrity : The specified extrinsic Method does not exist.

      chris

      (2013-12-03 - 16:33)

      Bardzo ważna jest ścieżka do pliku – musi być pełna ścieżka, podanie samego pliku nic nie da.

      Mógłbym prosić całą treść komunikatu błędu (ew. na priv), możesz oczywiście ścieżki, nazwy hostów itp “zamazać” 🙂

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.