짧은 답변:

짧은 답변:

diskpart를 사용하여 디스크 또는 파티션에 읽기 전용 속성을 설정하면 디스크 자체에 저장됩니까? 여기에 있는 일부 답변은 '예'라고 말하지만 내 경험상 디스크에 저장되지 않습니다. 한 컴퓨터(win 8.1)에서 이동식 USB 디스크를 읽기 전용으로 표시하고 다른 컴퓨터(win10)로 가져왔는데 diskpart가 읽기 전용으로 표시하지 않습니다. 이 속성을 디스크에 저장하는 옵션이 있습니까?

답변1

짧은 답변:

Attributes DISK [set | clear] READONLY속성을 저장합니다Windows 레지스트리에서, 물리적 디스크에는 없습니다. 이는 다음을 의미합니다.현재 실행 중인 Windows 설치에만 유효하며 다른 OS에서는 실행, 설정 및 적용되지 않습니다..

Attributes VOLUME [set | clear] READONLY속성을 저장합니다물리적 디스크에. 이는 다음을 의미합니다.Linux를 포함한 다른 OS에도 적용, 설정 및 시행됩니다.(디스크를 rw 모드에서 수동으로 다시 마운트해야 했고, 저장된 속성도 건드리지 않았기 때문에 Windows에서 디스크를 수동으로 제거해야 했습니다.)

하지만 관리 액세스에는 주의하세요.: 속성이 방지하는
동안DISK전체 디스크에 대한 모든 쓰기(즉, 볼륨 파일 시스템과 파티션 테이블 모두) VOLUME속성으로 인해 쓰기가 차단됩니다 .볼륨 파일 시스템에만 해당, 파티션 테이블을 계속 쓰기 가능한 상태로 둡니다(즉, 읽기 전용 볼륨을 삭제할 수 있음).


긴 답변:

속성 DISK[설정 | 지우기] 읽기 전용

"Attribute"속성은 레지스트리 하위 키에 있는 라는 값에 저장됩니다 HKLM\SYSTEM\CurrentControlSet\Enum\*\Disk*\Device Parameters\Partmgr. 여기서는 *디스크의 열거되고 설치된 장치 노드입니다(디스크 관리의 장치 속성 참조).

비트마스크 값이고 readonly속성은 Bit #1(Bit #0은 온라인/오프라인 디스크 상태)이므로 readonly온라인 디스크에 설정하면 값이 에서 로 변경되지만 0, 2오프라인 디스크에 설정하면 값이 에서 변경됩니다. 1에게 3.

장점:
디스크는전적으로읽기 전용: 모든 쓰기 시도는 다음을 보장합니다.실패하다,파티션 테이블 포함(예: 볼륨 삭제/생성, 고유 디스크 서명/ID 변경 등) 및 상태가 디스크 관리에 명확하게 표시됩니다.

단점:
열거 장치 노드가 동일하게 유지될 때까지 현재 실행 중인 Windows 설치에만 유효합니다(이동식 드라이브에 대해서는 보장되지 않음). 디스크가 다른 컴퓨터에 연결되거나 장치 노드가 어떤 이유로든 변경되면(예: 다른 버스, 포트 또는 허브(특히 USB)에 연결되거나 장치 관리자에서 제거 후 다시 설치되는 경우) 디스크는 다시 읽기-쓰기 모드가 됩니다. .

속성 VOLUME[설정 | 지우기] 읽기 전용

속성은디스크에 물리적으로 저장됨, 파티션 스타일(MBR 또는 GPT)에 따라 다릅니다.

디스크 GPT:
속성은 Attributes볼륨의 파티션 테이블 항목 필드에 저장됩니다.해당 볼륨에만 유효합니다.(도움말 설명에 선언된 대로 diskpart)

디스크 MBR:
속성은 다음 위치에 저장됩니다.오프셋 0x400h(또는 논리적으로 포맷된 512바이트 디스크의 섹터 #2)를 GPT 항목의 "짧은 버전"으로 사용합니다. 여기서 Type GUIDAttributes필드만 총 0x18h 바이트에 사용되며 유효합니다.모든 볼륨에 대해(도움말 설명에 선언된 대로 diskpart)

다음은 샘플 16진수 출력 및 해당 구조입니다.

   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 Type GUID, 값 포함 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(예: Microsoft기본 데이터 파티션유형 GUID);

  • Attributes0x410: 값이 있는 64비트 정수 0x1000000000000000(즉, 비트 #60세트).

SHADOWCOPY같은 방법으로 , HIDDENNODEFAULTDRIVELETTER속성(각각 비트 #61, #62및 ) 을 설정할 수도 있습니다 #63.

장점:
속성은보존된디스크가 다른 시스템(예: Linux)에 연결된 경우 볼륨이 rw 모드에서 (재)마운트된 경우에도 디스크가 유지됩니다.

단점:
이 속성은 디스크 관리에는 표시되지 않고 diskpart다음 내에서만 표시됩니다.

디스크 GPT:

  • 속성은 선택한 볼륨에만 적용됩니다(그러나 이는 예상된 동작입니다).
  • 읽기 전용 볼륨이 삭제되는 것을 방지하지는 않습니다(그러나 삭제되면 관련 GPT 항목이 완전히 0으로 설정되므로 속성이 자동으로 지워집니다).

디스크 MBR:

  • MBR(및 그에 따른 디스크 속성 구조)에 속성을 설정하는 다른 방법이 없기 때문에 속성은 디스크의 모든 볼륨에 적용됩니다.

  • 볼륨은 여전히 ​​삭제할 수 있습니다(알 수 없는 이유로 AFAIK).

  • 하나 이상의 볼륨 또는 모든 볼륨이 삭제된 경우 속성은 지워지지 않습니다(안전하게 지우는 유일한 방법은 프롬프트 attributes VOLUME CLEAR readonly에서 실행하는 것입니다 diskpart).

  • 새 볼륨을 생성할 수는 있지만 포맷할 수는 없습니다(쓰기 작업이므로).


이것이 나의 단순한 관점이지만 볼륨 속성이 MBR 디스크의 모든 볼륨에 적용되는 이유는 다음과 같습니다.

  1. MBR 섹터에 더 이상 사용 가능한 위치가 없습니다. "부팅 표시기" 플래그가 0x80 또는 0x00 이외의 값을 거부하고(또는 부팅 순서가 이상해짐) 오프셋 0x1BC(444)에 있는 "옵션" 바이트가 "예약됨"으로 선언되기 때문입니다. " (16비트 필드의 일부 비트를 사용할 수 있음에도 불구하고);

  2. Windows는 파티션의 모든 파일 시스템에 대해 동일한 유형 GUID를 공유하므로 유형 GUID를 설정하는 것은 "모든 데이터 볼륨에 대해"를 의미합니다. 복구 파티션과 같은 다른 유형 GUID는 Diskpart "볼륨" 항목을 받지 않고 "파티션" 항목만 수신합니다. ).

답변2

이 정보는 파티션에 저장할 수 없습니다. 이는 아마도 파일 시스템과 관련된 속성일 것입니다. 파일 시스템이 그렇지 않은 경우 디스크에 대한 추가 변경을 허용하기 전에 강제로 디스크 검사를 수행하는 속성을 파일 시스템에 갖는 것은 드문 일이 아닙니다. 종료 시 일관된 상태입니다.

답변3

읽기 전용 플래그는 디스크 자체에 저장할 수 없습니다. 디스크 읽기 전용 상태를 얻으려면 PowerShell 명령 Get-Disk를 사용할 수 있습니다. 예: (Get-Disk -Number 2).IsReadOnly

관련 정보