따라서 Linux는 읽기 / 쓰기와 같은 일부 작업을 수행하기 위해 하드 드라이브를 "장착"합니다. Windows가 같은 방식으로 "마운트"됩니까?
Microsoft의 맥락에서 뭔가 다른 것이 있습니까?
따라서 Linux는 읽기 / 쓰기와 같은 일부 작업을 수행하기 위해 하드 드라이브를 "장착"합니다. Windows가 같은 방식으로 "마운트"됩니까?
Microsoft의 맥락에서 뭔가 다른 것이 있습니까?
답변:
Windows 내부를 알고 있다면 내 오류를 수정하십시오.
"마운팅"은 두 시스템에서 동일한 두 가지 주요 부분으로 구성되지만 분리는 약간 다릅니다.
Linux에서 동일한 mount()
기능이 두 작업을 모두 수행합니다. 파일 시스템은 사용자가 선택한 경로에 명시 적으로 마운트되어야하며 적어도 하나의 경로에 마운트되어있는 한 열려있는 상태로 유지됩니다 (아마도 더 많음). 해당 파일 시스템에 대한 모든 경로가 완료되면 umount()
닫힙니다.
Windows는 볼륨이 나타날 때 자동으로 볼륨을 마운트합니다. 즉각 파일 시스템을 열고 드라이브 문자 및 / 또는 기타 구성된 이름을 지정합니다.
예를 들어, 디스크 를 실행하는 동안 FSCTL_LOCK_VOLUME
및 / 또는 ioctl 기능을 사용하여 디스크를 일시적으로 "분리"할 수 있지만 프로그램이 잠금을 해제하거나 종료하면 자동으로 다시 마운트됩니다. 이 동작은 Linux와 반대되는 것으로 볼 수 있습니다. 파일 시스템 마운트 해제는 일시적이므로 마운트 해제 된 경우에도 할당 된 이름이 유지됩니다. "안전하게 제거"기능은 파일 시스템을 분리하고 기본 장치를 비활성화하여 Windows가 파일 시스템을보고 다시 마운트하지 못하도록합니다.FSCTL_DISMOUNT_VOLUME
chkdsk
파일 시스템에는 여러 이름이 할당 될 수 있습니다.
드라이브 문자 ( A:
, C:
, [:
) - 자동으로 새 디스크에 할당 및 Windows는 사용자가 구성 할당을 기억하지만, 재부팅 잃었다. 이러한 방식으로 Unix 마운트 포인트와 유사합니다.
(드라이브 문자는 Windows에서 지원하는 네트워크 파일 시스템을 포함하여 임의의 장치에 할당 할 수 있습니다. 당신은 그들의 목표를 볼 수 있습니다 \GLOBAL??\
과 \Sessions\<session>\DosDevices\<loginid>\
에 WinObj .)
드라이브 문자는 일반적으로 시스템 전체하지만, 그들은 또한 사용하여 세션 전체에 할당 할 수 있습니다 : 참고 subst
하거나 DefineDosDevice()
, 그래, 그것을 받아 들인다 [:
. 세션 전체 할당은 어디에도 저장되지 않으며 재부팅시 사라집니다.
폴더 마운트 지점 ( C:\Disks\Music
) – 파일 시스템은 Unix와 같은 임의의 디렉토리에 마운트 할 수 있습니다. 그러나 실제로 는 볼륨 이름으로 마운트 된 디스크를 참조하는 재분석 지점 (보다 강력한 심볼릭 링크) 의 형태로 대상 디스크에 저장됩니다 .
(다른 종류의 재분석 지점도 존재합니다. 몇 가지 표준 지점은 마운트 지점, 심볼릭 링크, 디렉토리 접합입니다.)
볼륨 GUID 경로 ( \\?\Volume{710308c0-978e-11e1-95bc-806d6172696f}\
) (적어도 그것이 호출되는 방식) – Windows가이 특정 Windows 시스템의 특정 볼륨에 할당하는 UUID를 포함하는 Win32 네임 스페이스의\\?\
특수 경로 . 변경할 수 없습니다. 이들은 WinObj mountvol
또는 로 나열됩니다 \GLOBAL??\
. 드라이브 문자와 달리 모든 사용자에게 동일합니다.
장치 인터페이스 경로 \\?\STORAGE#Volume#<something>Signature<hex>Offset<hex>Length<hex>#<uuid>\
볼륨 GUID 경로 와 달리 각 볼륨에는 정확히 하나의 장치 인터페이스 경로가 있습니다.
\Device\HarddiskVolume23
-기호 링크 인 이전의 모든 장치 와 달리 볼륨 이름을 직접 지정합니다. \Device
네임 스페이스가 아닌 네임 스페이스 에 있기 때문에이 사실을 알고 \\?
있습니다. 또한와 같은 기능과 함께 사용할 수 없습니다 CreateFile
.diskmgmt.msc
, mountvol
그리고 diskpart
두 드라이브 문자를 관리하고 포인트를 마운트 할 수 있습니다.
볼륨에 드라이브 문자가없고 폴더에 "마운트"되지 않은 경우에도 볼륨은 열려 있으며 볼륨 이름을 통해 해당 내용에 계속 액세스 할 수 있습니다. 예 :
\\?\Volume{710308c0-978e-11e1-95bc-806d6172696f}\Windows\Explorer.exe
[:
..? 정말?
DefineDosDevice()
거의 모든 응용 프로그램을 받아들이지 만 대부분의 응용 프로그램 에서이 응용 프로그램을 받아들이도록 설득력이 없습니다. subst [: C:\Users
다음 시도해보십시오dir [:
[:
mountvol.exe
Windows에 해당합니다.
mountvol
내 컴퓨터에 인쇄되는 내용의 예제 출력 일뿐 입니다. 따라서 재현하기가 너무 어렵지 않아야합니다. 여기에 일반 텍스트를 넣어 경우, 당신이 :), 그것을 개선 진행에 대한 답변 편집하려면 :( 때문에 스크롤바와 함께 상자의 읽기 어렵게되었다
예, 그러나 일반적으로 자동으로 처리됩니다 (예 : USB 드라이브 사용).
디스크 관리 유틸리티 (Computer Mgmt의 일부)를 사용하면 볼륨 및 마운트 지점을 조작 할 수 있습니다. 탐색기는 네트워크 공유에 대해서도 동일합니다. 실행하는 Windows 버전에 따라 명령 줄 버전 (WIn 7의 diskpart.exe)도 있습니다.
Safely Remove Hardware
메뉴를 통해 수행됩니다 . 해당 장치를 다시 장착하려면 연결 케이블 (USB / FireWire / eSATA)을 분리했다가 다시 연결하거나 USB / FireWire / etc를 비활성화하십시오. 장치 관리자에서 장치를 껐다가 다시 활성화하면 Windows가 자동으로 다시 마운트합니다.