Atrybut wolumenu

Atrybut wolumenu

  • Comments 10
  • Likes

Ponieważ z GUI (diskmgmt.msc) opcja nie jest dostępna, wiele osób nie zwraca uwagi na fakt, że w systemie Windows można oznaczyć wolumen (dysk logiczny) jako tylko do odczytu. Średnio biegły użytkownik znajdzie sobie sposób użycia polecenia ATTRIBUTE w programie DISKPART.
Taki wolumen zachowuje się dość ciekawie:

  • Próba zapisu na takim dysku generuje błąd, który przez aplikacje jest bez problemu identyfikowany i przekazywany w strawnej formie użytkownikowi.
    ro1
  • Windows Explorer jest świadomy zabezpieczenia dysku przed zapisem i z menu kontekstowego dla plików znikają opcje takie jak rename czy delete.
    RO2
  • Próba sformatowania takiego wolumenu kończy się komunikatem, że dysk jest zabezpieczony przed zapisem.
  • System plików NTFS domyślnie zapisuje dla każdego obiektu czas ostatniego dostępu (nie tylko zapisu, ale i odczytu). Jeżeli wolumen jest zabezpieczony przed zapisem – czas ten się nie uaktualnia. Z jednej strony jest to logiczne, z drugiej jednak pozwala czasem "oszukać" mechanizmy bezpieczeństwa.
  • Jeżeli wolumen leży na podstawowej partycji MBR (a w zdecydowanej większości 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 pełni świadomy tego ustawienia dopiero po restarcie.

Stwierdzić można, że niektóre dyski logiczne warto tak zabezpieczać. Może nie jest to szczególnie wyszukana ochrona, ale w bardzo wielu przypadkach skutecznie zabezpieczy przed przypadkowym skasowaniem lub modyfikacją zawartości. Co ważne, działa ona wyłącznie dla "prawdziwych" dysków. Inne rodzaje (na przykład pendrive!) nie dają się skutecznie w ten sposób zabezpieczyć.
Na koniec dodam jeszcze, że DISKPART nie pozwoli na ustawienie atrybutu readonly na partycji systemowej. Poniekąd słusznie, ale można go oszukać ustawiając ten atrybut na przykład z poziomu WindowsPE. System taki zaczyna startować, jednak próba kończy się niebieskim ekranem o kodzie c000218, który zgodnie z DDK oznacza STATUS_CANNOT_LOAD_REGISTRY_FILE. Komunikat pojawiający się na ekranie jest bardziej precyzyjny i dość jednoznacznie wskazuje na przyczynę błędu:

rO3

Co ciekawe, zabezpieczenie wolumenu przed zapisem wcale nie oznacza, że nie da się utworzyć pliku dump. Dzieje się tak, ponieważ mechanizm tworzenia zrzutów nie wykorzystuje systemu plików i wpisuje informację wprost w konkretne sektory dysku.

Autor: Grzegorz Tworek [MVP]

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

  • 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.

  • 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...

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

  • 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... ;-)

  • @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?

  • 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

  • @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...

  • 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. :((

  • 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...

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment