web-dev-qa-db-ja.com

Linuxは、Windowsが_______にマウントするのと同じようにマウントしますか?

したがって、Linuxはハードドライブを「マウント」して、読み取り/書き込みなどの操作を実行します。 Windowsも同じように「マウント」しますか?

マイクロソフトのコンテキストでは別のものと呼ばれていますか?

39
Chad Harrison

Windowsの内部がわかっている場合は、エラーを修正してください。

「取り付け」は2つの主要部分で構成されます。これらは両方のシステムで同じですが、それらの分離は多少異なります。

  1. ディスク上のファイルシステムにアクセスします。
  2. ファイルシステムへのパスを割り当てます。

Linuxでは、同じmount()関数が両方のジョブを実行します。ファイルシステムは、ユーザーが選択したパスに明示的にマウントする必要があり、少なくとも1つのパス(おそらくそれ以上)にマウントされている限り、開いたままになります。そのファイルシステムへのすべてのパスがumount() edになると、ファイルシステムは閉じられます。

Windowsは、ボリュームが表示されると自動的にボリュームをマウントします–すぐにファイルシステムを開き、ドライブ文字やその他の構成済みの名前を割り当てます。

_FSCTL_LOCK_VOLUME_ または _FSCTL_DISMOUNT_VOLUME_ioctlを使用して、ディスクを一時的に「マウント解除」できます。関数-たとえば、chkdskを実行しているときなど–ただし、プログラムがロックを解除するか終了すると、自動的に再びマウントされます。この振る舞いは、Linuxとは逆のようなものと見なすことができます。ファイルシステムのマウント解除は一時的なものであるため、マウント解除されている間でも、割り当てられた名前は保持されます。 (「安全に削除」機能は、ファイルシステムをマウント解除し、基盤となるデバイスを無効にして、Windowsがファイルシステムを認識して再マウントしないようにします。)

ファイルシステムには、いくつかの名前を割り当てることができます。

  • ドライブ文字(_A:_、_C:_、_[:_)–新しいディスクに自動的に割り当てられ、再起動時に失われますが、Windowsはユーザーが構成した割り当てを記憶しています。この点で、これらはUnixマウントポイントに似ています。

    (ドライブ文字は、Windowsでサポートされているネットワークファイルシステムを含む任意のデバイスに割り当てることもできます。ターゲットは _\GLOBAL??\_ および _\Sessions\<session>\DosDevices\<loginid>\_ で確認できます。 WinObj 。)

    注:ドライブ文字は通常システム全体ですが、substまたはDefineDosDevice()を使用してセッション全体に割り当てることもできます。そうです、_[:_を受け入れます。セッション全体の割り当てはどこにも保存されず、再起動すると消えます。

  • フォルダーマウントポイント(_C:\Disks\Music_)– Unixのように、ファイルシステムは任意のディレクトリにマウントできます。ただし、それらは実際にはreparse points(より強力なシンボリックリンク)の形式でターゲットディスクに格納され、マウントされたディスクをボリューム名

    (異なる種類の再解析ポイントも存在します。いくつかの標準的な再解析ポイントは、マウントポイント、シンボリックリンク、ディレクトリジャンクションです。)

  • ボリュームGUIDパス(_\\?\Volume{710308c0-978e-11e1-95bc-806d6172696f}\_)(少なくともそれが呼び出されているように見える)– Win32名前空間_\\?\_ の特別なパスWindowsがこの特定のWindowsシステム上の特定のボリュームに割り当てるUUIDが含まれています。これらは変更できません。これらはmountvolによって、またはWinObjの_\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
_
86
user1686

mountvol.exe は、Windowsの同等機能です。

mountvol example output

43
Der Hochstapler

はい。ただし、一般的には自動的に処理されます(たとえば、USBドライブで)。

ディスク管理ユーティリティ(Computer Mgmtの一部)を使用すると、ボリュームとマウントポイントを操作できます。 Explorerはネットワーク共有についても同じことを行います。実行するWindowsのバージョンによっては、コマンドラインバージョン(WIn 7のdiskpart.exe)もあります。

6
uSlackr

_ _ _ _ _ _を入力する最も短くて明確な答えは「マウント」です。 Linuxはファイルシステムをマウント(およびアンマウント)し、Windowsもマウントします。

彼らはそれぞれ、リストできないさまざまな混合要因に応じてこのプロセスをさまざまな程度に自動化しますが、キャッシュ戦略、ユーザースタイル/設定、および特許は、このプロセスの自動化に大きな影響を与えると思います。

3
matty