Linux для монтирования, как Windows для _______?

39

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

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

Чад Харрисон
источник
9
Windows монтируется автоматически, и поэтому никакие явные инструменты не предоставляются обычным пользователям. Многие окружения рабочего стола Linux делают это также по умолчанию. Для концепции монтажа вы можете увидеть запись в Википедии . Короче говоря, монтирование устройства открывает доступ к файловой системе, которую оно содержит. Это необходимо сделать, чтобы иметь возможность доступа к файлам через файловую систему, независимо от того, как называется ОС.
Даниэль Андерссон

Ответы:

86

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

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

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

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

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

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

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

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

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

    Примечание. Буквы дисков, как правило, являются общесистемными, но их также можно назначать для всего сеанса, используя 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
grawity
источник
4
[:..? В самом деле?
Даниэль Бек
11
@DanielBeck: Да, DefineDosDevice()принимает практически все, хотя вам не повезет убедить большинство приложений принять его. Попробуйте subst [: C:\Users, тогдаdir [:
grawity
4
@Daniel: Предоставляя все возможные байты DefineDosDevice - который действительно принимает почти все из них. Оказывается, пространство тоже действительно!
grawity
8
Если бы девочки-подростки были достаточно технически подкованы, они бы все время [:
задавали
5
@psusi, LASTDRIVE зашел в config.sys. system.ini был Windows.
CVn
43

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

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

Der Hochstapler
источник
+1 за краткий ответ в одну строку и ответ вверху. И вы предоставляете пример бонуса скриншот!
Тревор Бойд Смит
Скриншот не может быть скопирован / вставлен и занимает много места, больше, чем эквивалентный текст, для того же объема информации. Это не очень хорошая идея, я думаю.
Людовик Куты
@LudovicKuty: Да, я знал об этой проблеме, когда опубликовал это. Это просто пример вывода того, что mountvolпечатает на моей машине. Так что не должно быть ничего слишком сложного для воспроизведения. Если я добавлю здесь простой текст, его станет труднее читать из-за поля с полосами прокрутки :( Если вы хотите отредактировать ответ, чтобы улучшить его, продолжайте :)
Der Hochstapler
Нет, на самом деле многие довольны этим :) Я в основном комментировал вопрос «И вы предоставляете бонусный скриншот с примером». Это помогает людям, это хорошо.
Людовик Куты
6

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

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

uSlackr
источник
1
Кроме того, демонтаж дисков с горячей заменой обычно выполняется через Safely Remove Hardwareменю. Чтобы перемонтировать эти устройства, отсоедините соединительный кабель (USB / FireWire / eSATA) и снова подключите его, либо отключите USB / FireWire / и т. Д. устройство из диспетчера устройств и включите его снова, и Windows автоматически перемонтирует его.
Lèse Majesté
Так же и в некоторых дистрибутивах Linux, например, Ubuntu.
krlmlr
3

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

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

Мэтти
источник