Answers:
如果您知道Windows内部信息,请修复我的错误。
“安装”由两个主要部分组成,这两个系统都相同,但是它们的分隔有些不同:
在Linux上,相同的mount()
功能可以完成这两项工作。文件系统必须显式地安装在用户选择的路径上,并且只要它被安装在至少一个路径(可能更多)上就保持打开状态。umount()
ed 到该文件系统的所有路径后,将关闭它。
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名称空间\\?\
中的特殊路径,包含Windows分配给该特定Windows系统上该特定卷的UUID。它们无法更改。它们在WinObj中以mountvol
或在下面\GLOBAL??\
列出。与驱动器号不同,所有用户的驱动器号均相同。
设备接口路径\\?\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驱动器)。
磁盘管理实用程序(计算机管理的一部分)使您可以操纵卷和装入点。资源管理器对网络共享执行相同的操作。根据您运行的Windows版本,还有命令行版本(WIN 7中的diskpart.exe)。
Safely Remove Hardware
菜单完成的。要重新安装这些设备,请拔下连接电缆(USB / FireWire / eSATA)并重新插入,或禁用USB / FireWire / etc。设备管理器中的设备并重新启用它,Windows会自动重新安装它。