sou*_*nak 14 linux mount devices
两者都读过在 Linux 中挂载设备是什么意思?并将“挂载”理解为操作系统中的一个概念,我有一个问题,说明
所有可访问的存储都必须在此单个目录树中具有关联的位置。这与 Windows 不同,在 Windows 中(在文件路径的最常见语法中)每个存储组件(驱动器)有一个目录树。挂载是将存储设备关联到目录树中的特定位置的行为。
但是已经有一个可访问的位置,例如 /dev/cdrom 下的 cdrom 驱动器,它显然位于目录层次结构中。那么为什么需要在 /media/cdrom 下创建一个单独的“挂载点”呢?为什么无法直接从 /dev/cdrom 访问?听说设备节点文件和普通文件一样。读取和写入它们就像普通文件一样。这是否意味着如果我们从 /dev/cdrom 访问它,cdrom 中的文件系统将不可用。当我们“挂载”它时,文件系统层次结构(在 cdrom 内)“活跃起来”?
PM *_*ing 12
您可以读取或写入 /dev/cdrom(例如,使用dd
或cat
),但是当您这样做时,您只是读取或写入设备的原始字节。这在各种情况下都很有用(例如克隆分区),但通常我们希望查看存储在设备上的目录和文件。
当您挂载设备时,您基本上是在告诉内核使用一层软件(文件系统驱动程序)将这些原始字节转换为实际的文件系统。因此,挂载设备会将设备上的文件系统与目录层次结构相关联。
我是这样考虑的:mount
是一种工具,它告诉系统将某些文件的内容解释为目录树。
/dev/cdrom
是一个文件,它代表存储在 CD 上的字节串。mount -t iso9660 /dev/cdrom /media/cdrom
,您告诉系统:“将您在 中的这个很长的字节串/dev/cdrom
解释为 iso9660 格式的目录树,并允许我在该位置下访问它/media/cdrom
”。mount
它来访问它。尝试这个:dd if=/dev/zero of=fs-image bs=1M count=50 mke2fs fs-image 须藤挂载 fs-image /some/mount/point
(前两个命令仅在第一次准备图像文件时需要。)
/dev/cdrom
指设备文件。这不是您可能希望插入光驱的任何光盘的内容,而是对您可能需要向您展示的硬件(可能还有软件驱动程序)的引用。当您mount
/dev/cdrom
访问树中的某个路径时,您将其内容附加到您的文件系统。
问题是 - 我真的想不出另一种方法来做到这一点。即使在 Windows 中——尽管它不那么明显——仍然存在\\?\volumename\
. 我花了一分钟来记住它的样子,我发现这个谷歌搜索它:
...卷名只是一个符号链接,它指向一个真正的卷设备,通常以
\Device\HarddiskVolume23
. MS-DOS 设备的另一个例子是驱动器号。如果您的卷具有 C: 驱动器号,那么您将拥有一个名为\\?\C
:的符号链接,它指向\Device\HarddiskVolumeXX
格式中的真实卷。
所以也许它并没有那么不同 - 尽管我认为不那么复杂 -我认为它更明显。它们不是一个完全相同的系统,但它们也没有根本的不同。
/dev/device
和之间最重要的区别可能/path/to/its/mount
是,在后一条路径上,文件系统——一些旨在以有组织的方式处理数据的软件——正在解释前者的内容。你不能只读一张磁盘——必须有人读给你听。文件系统解释设备的内容。