Atrybut wolumenu

Poniewaz z GUI (diskmgmt.msc) opcja nie jest dostepna, wiele osób nie zwraca uwagi na fakt, ze w systemie Windows mozna oznaczyc wolumen (dysk logiczny) jako tylko do odczytu. Srednio biegly uzytkownik znajdzie sobie sposób uzycia polecenia ATTRIBUTE w programie DISKPART.
Taki wolumen zachowuje sie dosc ciekawie:

  • Próba zapisu na takim dysku generuje blad, który przez aplikacje jest bez problemu identyfikowany i przekazywany w strawnej formie uzytkownikowi.
    ro1
  • Windows Explorer jest swiadomy zabezpieczenia dysku przed zapisem i z menu kontekstowego dla plików znikaja opcje takie jak rename czy delete.
    RO2
  • Próba sformatowania takiego wolumenu konczy sie komunikatem, ze dysk jest zabezpieczony przed zapisem.
  • System plików NTFS domyslnie zapisuje dla kazdego obiektu czas ostatniego dostepu (nie tylko zapisu, ale i odczytu). Jezeli wolumen jest zabezpieczony przed zapisem – czas ten sie nie uaktualnia. Z jednej strony jest to logiczne, z drugiej jednak pozwala czasem "oszukac" mechanizmy bezpieczenstwa.
  • Jezeli wolumen lezy na podstawowej partycji MBR (a w zdecydowanej wiekszosci przypadków tak jest) – oznaczenie wolumenu oznacza niejawne oznaczenie wszystkich innych wolumenów na tym dysku fizycznym. Co istotne, dla automatycznie zabezpieczonych wolumenów, system jest w pelni swiadomy tego ustawienia dopiero po restarcie.

Stwierdzic mozna, ze niektóre dyski logiczne warto tak zabezpieczac. Moze nie jest to szczególnie wyszukana ochrona, ale w bardzo wielu przypadkach skutecznie zabezpieczy przed przypadkowym skasowaniem lub modyfikacja zawartosci. Co wazne, dziala ona wylacznie dla "prawdziwych" dysków. Inne rodzaje (na przyklad pendrive!) nie daja sie skutecznie w ten sposób zabezpieczyc.
Na koniec dodam jeszcze, ze DISKPART nie pozwoli na ustawienie atrybutu readonly na partycji systemowej. Poniekad slusznie, ale mozna go oszukac ustawiajac ten atrybut na przyklad z poziomu WindowsPE. System taki zaczyna startowac, jednak próba konczy sie niebieskim ekranem o kodzie c000218, który zgodnie z DDK oznacza STATUS_CANNOT_LOAD_REGISTRY_FILE. Komunikat pojawiajacy sie na ekranie jest bardziej precyzyjny i dosc jednoznacznie wskazuje na przyczyne bledu:

rO3

Co ciekawe, zabezpieczenie wolumenu przed zapisem wcale nie oznacza, ze nie da sie utworzyc pliku dump. Dzieje sie tak, poniewaz mechanizm tworzenia zrzutów nie wykorzystuje systemu plików i wpisuje informacje wprost w konkretne sektory dysku.

Autor: Grzegorz Tworek [MVP]