Что на самом деле означают атрибуты readonly в diskpart?

Меня интересует, что конкретно означают атрибуты диска и тома "только для чтения", которые можно изменить в diskpart в Windows 7. Я пытаюсь настроить внешний USB-накопитель в качестве установочного носителя для своего собственного программного обеспечения, поэтому я хотели бы защитить его от случайных или случайных изменений пользователями, которым он предоставляется, чтобы они не испортили установочные файлы, которые могут им понадобиться в будущем.

Из того, что я могу экспериментировать с diskpart, атрибут тома только для чтения фактически хранится где-то на физическом диске, потому что я могу его установить, и он появляется, когда я беру диск на другую машину. Это здорово, потому что мои пользователи не могут (легко) изменить какие-либо файлы на томе или отформатировать их из проводника Windows.

Тем не менее, атрибут "только для чтения" диска является лишь аспектом того, как текущая машина обращается к диску. Когда я его установил, я больше не могу удалить том на диске с помощью управления дисками, но когда я перевожу диск на другой компьютер, атрибут больше не устанавливается, и в разделе "Управление дисками" я могу удалить том на диске. Я думаю, я не так беспокоюсь о том, что мои пользователи делают это, но меня раздражает, что я не понимаю, что на самом деле делают эти атрибуты.

Еще одна вещь, которую я не понимаю, это то, что атрибут "том" только для чтения на самом деле кажется глобальным для диска - если у меня есть два тома на диске, и я установил флаг только для чтения на одном из них, то он получит установить на другой тоже.?!?

У меня такое ощущение, что я не ищу правильные документы - все, что я нахожу, это отдельные документы, которые дают синтаксис для изменения этих атрибутов, а не того, что они на самом деле означают. Любые указатели будут очень рады!

Спасибо,

Как

4 ответа

Решение

В настоящее время я копаюсь в атрибутах тома, потому что установка Vista завершается неудачно без использования официальной программы установки, путем развертывания образа с использованием imagex и bcdboot.

Я не могу понять, где diskpart сохраняет информацию об атрибутах, скорее всего, на диске, потому что (nodefaultdriveletter) также применяется после перезапуска; также при загрузке в автономную систему.

И да, diskpart всегда применяет атрибуты тома ко всем томам на выбранном диске. Поведение attributes volume это не ожидалось, и это нигде не задокументировано. Происходит на всех версиях, включая сборку Win8 9200.

Атрибут readonly - это только подсказка, он не мешает записи на диск.

Чтобы скрыть том из Windows, используйте remove, но эта информация сохраняется в HKLM\SYSTEM\MountedDevices (применяется только к текущей работающей системе), или вы должны использовать set id=, NTFS по умолчанию идентификатор 07, попробуйте 17 или 27. Существует список идентификаторов разделов для ПК, чтобы решить, что вам нравится. Идентификаторы FAT32 позволяют Windows также идентифицировать как NTFS, не монтируя их автоматически.

На MBR-дисках установка RO для любого тома влияет на все тома. Diskpart не позволяет вам установить атрибут RO на съемных дисках (например, съемных флеш-накопителях), поэтому съемные флеш-накопители USB не могут быть защищены от записи при перемещении в другую систему.

Я пытался это сделать, но понял, что когда я установил флэш-накопитель с командой атрибута disk set readonly, флэш-накопитель становится доступным только для чтения для того компьютера, на котором я сделал эту настройку. на других ПК я все еще могу записать на эту конкретную флешку. Что я нашел, так это отредактировал владение флешкой. Я редактирую запись для everone только для чтения и добавил моего пользователя как полный контроль. Так что теперь это работает для меня, если кто-то, кто знает, как редактировать владельца, работает лучше, чем настройка атрибута diskpart.

Короткий ответ:

сохраняет атрибут в реестре Windows, а не на физическом диске. Это означает , что он действителен только для текущей установки Windows и не будет переноситься, устанавливаться и применяться в других ОС.

сохраняет атрибут на физическом диске. Это означает, что он БУДЕТ перенесен, установлен и применен также к другим операционным системам, включая Linux (мне пришлось вручную перемонтировать диск в режиме rw, плюс он не затронул сохраненный атрибут, поэтому мне пришлось вручную удалить его в Windows).

БУДЬТЕ ОСТОРОЖНЫ с административным доступом: хотя
атрибут запрещает ВСЕ записи на всем диске (т.е. как в файловой системе тома(ов), так и в таблице разделов), этот атрибут запрещает запись ТОЛЬКО в файловую систему тома(ов), оставляя таблицу разделов. ВСЕ ЕЩЕ доступен для записи (т. е. вы все равно можете удалить том, доступный только для чтения).


Длинный ответ:

Атрибуты[набор | очистить] ТОЛЬКО ЧТЕНИЕ

Атрибут хранится в значении с именем, расположенный в подразделе реестра, где— это пронумерованный и установленный узел устройства диска (см. «Свойства устройства» в «Управлении дисками»).

Это значение битовой маски, а атрибут — бит № 1 (бит № 0 соответствует состоянию диска в сети или в автономном режиме), поэтому установкана онлайн-диске изменит значение ск, но установка его на автономный диск изменит значение ск.

Преимущества:
Диск полностью доступен только для чтения: все попытки записи гарантированно завершатся неудачей, включая таблицу разделов (например, удаление/создание томов, изменение идентификатора диска и т. д.), плюс статус будет четко виден в «Управлении дисками».

Недостатки:
он действителен только для текущей установки Windows, при этом узел устройства перечисления тот же (нет гарантии для съемных дисков). Диск снова будет в режиме чтения-записи, если он подключен к другому компьютеру или его узел устройства изменится по какой-либо причине, например, он подключен к другой шине, порту или концентратору (особенно USB) или удален и переустановлен в диспетчере устройств. .

Атрибуты[набор | очистить] ТОЛЬКО ЧТЕНИЕ

Атрибут физически хранится на диске, но разница зависит от базовой схемы разделов (MBR или GPT).

На дисках:
атрибут хранится в поле «Атрибуты» записи таблицы разделов тома и действителен ТОЛЬКО для этого тома (как указано в описании справки).

На дисках:
атрибут хранится по смещению 0x400h (или в секторе № 2 на 512-байтовом логически отформатированном диске) как «короткая версия» записи GPT, где используются только поля и для общего размера 0x18h байт, и это действителен ДЛЯ ВСЕХ ТОМОВ (как указано в описании справки).

Ниже приведен пример шестнадцатеричного вывода и его структура:

         Hex Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
   0000000400   A2 A0 D0 EB E5 B9 33 44 87 C0 68 B6 B7 26 99 C7
   0000000410   00 00 00 00 00 00 00 10
  • 0x400: 128-битный GUID., со значением(т. е. GUID типа раздела базовых данных Microsoft );

  • 0x410: 64-битное целое число., со значением(т.е. немногонабор).

Таким же образом можно установить(кусочек),(биты) и(биты) атрибуты.

Преимущества:
Атрибут сохраняется, когда диск подключен к другим системам, например Linux, который сохраняет его, даже если том (пере)монтируется в режиме rw.

Недостатки:
Атрибут не отображается в «Управлении дисками», а только внутри, плюс:

Надиски:

  • атрибуты применяются ТОЛЬКО к выбранному тому (но это ожидаемое поведение);
  • он не предотвращает удаление тома, доступного только для чтения (но если он удаляется, атрибут автоматически очищается, поскольку связанная с ним запись GPT полностью обнуляется).

Надиски:

  • атрибуты применяются ко ВСЕМ томам на диске из-за отсутствия другого способа установки атрибутов в MBR (и, как следствие, структуры атрибутов на диске);

  • тома по-прежнему можно удалять (по неизвестной причине, AFAIK);

  • атрибут НЕ очищается, если удалены один, несколько или все тома (единственный способ безопасно очистить его — выполнитьвбыстрый);

  • новые тома по-прежнему можно создавать, но нельзя форматировать (поскольку это операция записи).


Это моя простая точка зрения, но причина, по которой атрибуты тома применяются ко ВСЕМ ТОМАМ на MBR-дисках, может быть:

  1. В секторе MBR больше нет доступных мест, поскольку флаг «Индикатор загрузки» отвергает любое значение, кроме 0x80 или 0x00 (иначе последовательность загрузки сойдет с ума), а «Необязательные» байты, расположенные по смещению 0x1BC (444), объявляются как «зарезервированные». " (несмотря на то, что некоторые биты этого 16-битного поля могут быть использованы);

  2. Windows использует один и тот же GUID типа для всех файловых систем в разделе, поэтому установка этого GUID типа означает «для всех томов данных» (другие GUID типа, такие как раздел восстановления, не получат запись «тома» Diskpart, а только запись «раздела»). ).

Слава Богу, Он действительно помог мне собрать воедино все части головоломки (включая эту лучшую полную переработку).

Другие вопросы по тегам