Cha*_*son 39 mount operating-systems hard-drive
所以Linux“挂载”了一个硬盘来执行一些操作,比如读/写。Windows 是否以同样的方式“挂载”?
它在 Microsoft 的上下文中被称为不同的东西吗?
use*_*686 86
如果您了解 Windows 内部结构,请修复我的错误。
“安装”由两个主要部分组成,在两个系统中都是相同的,但它们的分离有些不同:
在 Linux 上,相同的mount()函数可以完成这两项工作;文件系统必须明确安装在用户选择的路径上,并且只要它安装在至少一个路径(可能更多)上就保持打开状态。一旦该文件系统的所有路径都被umount()编辑,它就会被关闭。
当卷出现时,Windows 会自动挂载卷——它会立即打开文件系统并为其分配驱动器号和/或任何其他配置名称。
可以使用FSCTL_LOCK_VOLUME和/或ioctl函数暂时“卸载”磁盘——例如,在其上运行 a时——但在程序解锁或退出时会自动再次装载。这种行为可以被视为与 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
Run Code Online (Sandbox Code Playgroud)
是的,但一般来说,它是自动处理的(例如,使用 USB 驱动器)。
磁盘管理实用程序(Computer Mgmt 的一部分)允许您操作卷和安装点。Explorer 对网络共享执行相同的操作。根据您运行的 Windows 版本,也有命令行版本(WIN 7 中的 diskpart.exe)。