39

Таким образом, Linux "монтирует" жесткий диск для выполнения некоторых операций, таких как чтение / запись. Windows "монтируется" таким же образом?

Это называется чем-то другим в контексте Microsoft?

4 ответа4

88

Если вы знаете, что такое Windows, исправьте мои ошибки, пожалуйста.

"Монтаж" состоит из двух основных частей, которые одинаковы в обеих системах, но их разделение несколько отличается:

  1. доступ к файловой системе на диске;
  2. назначение пути к файловой системе.

В Linux одна и та же функция mount() выполняет обе работы; файловая система должна быть явно смонтирована по выбранному пользователем пути и остается открытой до тех пор, пока она смонтирована как минимум на одном пути (возможно, больше). После того как все пути к этой файловой системе umount() , она закрывается.

Windows автоматически подключает тома при появлении тома - она сразу же открывает файловую систему и присваивает ей букву диска и / или любые другие настроенные имена.

Диск может быть временно "демонтирован" с помощью функций ioctl FSCTL_LOCK_VOLUME и / или FSCTL_DISMOUNT_VOLUME - например, при запуске на нем chkdsk - но автоматически монтируется снова, когда программа разблокирует его или завершает работу. Такое поведение можно рассматривать как своего рода противоположность Linux. Поскольку размонтирование файловой системы является временным, она сохраняет назначенные имена даже при размонтировании. (Функция "Безопасное удаление" отключает файловую систему и отключает основное устройство, чтобы Windows не видела файловую систему и не перемонтировала ее.)

Файловой системе может быть присвоено несколько имен:

  • Буквы дисков (A: C: [: - автоматически назначаются новым дискам и теряются при перезагрузке, хотя Windows запоминает назначения, настроенные пользователем. Таким образом, они похожи на точки монтирования Unix.

    (Буквы дисков также могут быть назначены произвольным устройствам, включая сетевые файловые системы, поддерживаемые Windows. Вы можете увидеть их цели на \GLOBAL??\ and \Sessions\<session>\DosDevices\<loginid>\ in WinObj.)

    Примечание. Буквы дисков, как правило, являются общесистемными, но их также можно назначать в течение сеанса с помощью subst или DefineDosDevice() , и да, он принимает [: . Общесессионные назначения никогда не сохраняются нигде и исчезают при перезагрузке.

  • Точки монтирования папки (C:\Disks\Music) - файловая система может быть смонтирована в любом произвольном каталоге, как в Unix; однако они на самом деле хранятся на целевом диске в виде точек повторной обработки (более мощная форма символических ссылок), которые ссылаются на смонтированный диск по имени его тома .

    (Существуют также различные виды точек повторной обработки; несколько стандартных - это точки монтирования, символические ссылки, соединения каталогов.)

  • Пути GUID тома (\\?\Volume{710308c0-978e-11e1-95bc-806d6172696f}\) (по крайней мере, так его называют) - специальные пути в пространстве имен Win32 \\?\ , содержащий UUID, который Windows назначает этому конкретному тому в этой конкретной системе Windows. Они не могут быть изменены. Они перечислены по mountvol , или под \GLOBAL??\ в WinObj. В отличие от букв дисков, они одинаковы для всех пользователей.

  • Пути интерфейса устройства \\?\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
43

mountvol.exe является эквивалентом Windows.

пример вывода mountvol

6

Да, но в целом он обрабатывается автоматически (скажем, с USB-накопителя).

Утилита управления дисками (часть Computer Mgmt) позволяет вам управлять томами и точками монтирования. Проводник делает то же самое для сетевых ресурсов. Существуют версии для командной строки (diskpart.exe в WIn 7), а также в зависимости от версии Windows, которую вы используете.

3

Самый короткий, самый очевидный ответ для заполнения _ _ _ _ _ _ - "mount". Linux монтирует (и размонтирует) файловые системы и Windows.

Каждый из них в различной степени автоматизирует этот процесс в зависимости от множества смешанных факторов, которые я не в состоянии перечислить, но я думаю, что стратегии кеширования, стиль / предпочтения пользователя и патенты существенно влияют на автоматизацию этого процесса.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .