Таким образом, 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. Их цели можно увидеть в 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
[:
..? В самом деле?
DefineDosDevice()
принимает практически все, хотя вам не повезет убедить большинство приложений принять его. Попробуйте subst [: C:\Users
, тогдаdir [:
[:
mountvol.exe
это эквивалент Windows.
mountvol
печатает на моей машине. Так что не должно быть ничего слишком сложного для воспроизведения. Если я добавлю здесь простой текст, его станет труднее читать из-за поля с полосами прокрутки :( Если вы хотите отредактировать ответ, чтобы улучшить его, продолжайте :)
Да, но в целом он обрабатывается автоматически (скажем, с USB-накопителя).
Утилита управления дисками (часть Computer Mgmt) позволяет управлять томами и точками монтирования. Проводник делает то же самое для сетевых ресурсов. Существуют версии для командной строки (diskpart.exe в WIn 7), в зависимости от версии Windows, которую вы используете.
Safely Remove Hardware
меню. Чтобы перемонтировать эти устройства, отсоедините соединительный кабель (USB / FireWire / eSATA) и снова подключите его, либо отключите USB / FireWire / и т. Д. устройство из диспетчера устройств и включите его снова, и Windows автоматически перемонтирует его.
Самый короткий, самый очевидный ответ для заполнения _ _ _ _ _ _ - «mount». Linux монтирует (и размонтирует) файловые системы и Windows.
Каждый из них в разной степени автоматизирует этот процесс в зависимости от множества смешанных факторов, которые я не в состоянии перечислить, но я думаю, что стратегии кэширования, стиль / предпочтения пользователя и патенты существенно влияют на автоматизацию этого процесса.