そのため、Linuxはハードドライブを「マウント」して、読み取り/書き込みなどの操作を実行します。Windowsは同じ方法で「マウント」しますか?
マイクロソフトの文脈で何か違うものと呼ばれていますか?
そのため、Linuxはハードドライブを「マウント」して、読み取り/書き込みなどの操作を実行します。Windowsは同じ方法で「マウント」しますか?
マイクロソフトの文脈で何か違うものと呼ばれていますか?
回答:
Windowsの内部を知っているなら、私のエラーを修正してください。
「マウント」は2つの主要部分で構成され、両方のシステムで同じですが、それらの分離は多少異なります。
Linuxでは、同じmount()
機能が両方のジョブを実行します。ファイルシステムは、ユーザーが選択したパスに明示的にマウントする必要があり、少なくとも1つのパス(おそらくそれ以上)にマウントされている限り、開いたままになります。そのファイルシステムへのすべてのパスが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 パスとは異なり、各ボリュームにはデバイスインターフェイスパスが1つだけあります。
\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ドライブで)。
ディスク管理ユーティリティ(コンピューター管理の一部)を使用すると、ボリュームとマウントポイントを操作できます。Explorerはネットワーク共有に対しても同じことを行います。実行するWindowsのバージョンに応じて、コマンドラインバージョン(Windows 7のdiskpart.exe)もあります。
Safely Remove Hardware
メニューから行われます。これらのデバイスを再マウントするには、接続ケーブル(USB / FireWire / eSATA)を取り外して再度接続するか、USB / FireWireなどを無効にします。デバイスマネージャーからデバイスを再有効化すると、Windowsは自動的に再マウントします。