Что на самом деле означают атрибуты 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.
Короткий ответ:
БУДЬТЕ ОСТОРОЖНЫ с административным доступом: хотя
атрибут запрещает ВСЕ записи на всем диске (т.е. как в файловой системе тома(ов), так и в таблице разделов), этот атрибут запрещает запись ТОЛЬКО в файловую систему тома(ов), оставляя таблицу разделов. ВСЕ ЕЩЕ доступен для записи (т. е. вы все равно можете удалить том, доступный только для чтения).
Длинный ответ:
Атрибуты[набор | очистить] ТОЛЬКО ЧТЕНИЕ
Атрибут хранится в значении с именем
Это значение битовой маски, а атрибут — бит № 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-дисках, может быть:
В секторе MBR больше нет доступных мест, поскольку флаг «Индикатор загрузки» отвергает любое значение, кроме 0x80 или 0x00 (иначе последовательность загрузки сойдет с ума), а «Необязательные» байты, расположенные по смещению 0x1BC (444), объявляются как «зарезервированные». " (несмотря на то, что некоторые биты этого 16-битного поля могут быть использованы);
Windows использует один и тот же GUID типа для всех файловых систем в разделе, поэтому установка этого GUID типа означает «для всех томов данных» (другие GUID типа, такие как раздел восстановления, не получат запись «тома» Diskpart, а только запись «раздела»). ).
Слава Богу, Он действительно помог мне собрать воедино все части головоломки (включая эту лучшую полную переработку).