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]

Comments (10)

  1. Anonymous says:

    @1080: To znaczy co się czasami dzieje? Nie do końca zrozumiałem problem, który opisujesz…

  2. Anonymous says:

    Bardzo fajny wszelki wypadek 😉

    Trzeba tylko pamiętać, żeby tego nie robić na drugiej partycji na systemowym dysku Basic MBR. W sumie nie sprawdzałem, czy włączenie na nim readonly dotknie system (i czy w ogóle jest możliwe!) ale z radością poeksperymentuję przy najbliższej okazji.

  3. Anonymous says:

    Taki błąd może pojawiać się przy uszkodzonym pliku rejestru.

    Uruchom komputer z dysku DVD z systemem (Vista i nowsze) i odpal konsolę, a potem chkdsk dla dysków C: i D: (Windows 7 i 2008R2). A nuż pomoże…

  4. Anonymous says:

    @1080:

    No podejrzewam, że też nie byłbym szczęśliwy. A gdy wydasz polecenie DETAIL odpowiednio dla dysku, partycji i wolumenu? To które odpowiada, że jest readonly?

  5. Anonymous says:

    @1080:

    A, to chodzi o current read only! to może Ci to coś wyjaśni: http://msdn.microsoft.com/en-us/library/aa383325(VS.85).aspx

    Co to za dysk jest dokładnie? Bo ewidentnie po stronie hardware coś tu próbuje zabraniać zapisu. Może zworka, może BIOS, może LUN…

  6. ToMeK says:

    W zasadzie warte wykorzystania na przyklad w serwerach WWW wystawionych do Internetu. Tak na wszelki wypadek …

  7. 1080 says:

    Niestety u mnie kiedyś w viscie a obecnie na nowym buildzie windowsa 7 tak się dzieje z jednym dyskiem fizycznym (3xHDD SATA RAID0 + 1xHDD SATA bez raida, który właśnie ma z tym problem)… pomaga diskpart: attributes volume clear readonly  ale nie mam pojęcia dlaczego tak się czasami dzieje…

  8. 1080 says:

    ano to się dzieje, że nagle partycja tego jednego dysku robi się readonly i nie można nic na niej zapisać. Pomaga użycie diskpart-a… Kompletnie nie wiem co może to powodować. Nie wykluczam jakiejś skopanej funkcji sterownika SATA do mojej płyty głównej Gigabyte, ale ciężko to zweryfikować. Tak czy inaczej, u mnie funkcjonalność partycji read-only przedstawiona w tym artykule nie jest zbytnio porządana… 😉

  9. 1080 says:

    hmm dziwne, detail dla tego dysku wyświetla mi m.in:

    Current Read-only State : Yes

    Read-only  : No

    Ciekawe… Tak się zastanawiam, czy aby nie pomoże konwersja dysku z basic na dynamic

  10. izz says:

    Może nie bardzo w temacie, ale co zrobić kiedy własnie ten blue screen pojawi sie po właczeniu kompa?  Uruchomienie z ostatniej dobrej konfiguracji nic nie daje . Reinstalować systemu też nie mogę, ponieważ nie odpala płyta. :((

Skip to main content