无法理解安装的概念

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(例如,使用ddcat),但是当您这样做时,您只是读取或写入设备的原始字节。这在各种情况下都很有用(例如克隆分区),但通常我们希望查看存储在设备上的目录和文件。

当您挂载设备时,您基本上是在告诉内核使用一层软件(文件系统驱动程序)将这些原始字节转换为实际的文件系统。因此,挂载设备会将设备上的文件系统与目录层次结构相关联。


Krz*_*ski 9

我是这样考虑的: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

(前两个命令仅在第一次准备图像文件时需要。)


mik*_*erv 5

/dev/cdrom设备文件。这不是您可能希望插入光驱的任何光盘的内容,而是对您可能需要向您展示的硬件(可能还有软件驱动程序)的引用。当您mount /dev/cdrom访问树中的某个路径时,您将其内容附加到您的文件系统

问题是 - 我真的想不出另一种方法来做到这一点。即使在 Windows 中——尽管它不那么明显——仍然存在\\?\volumename\. 我花了一分钟来记住它的样子,我发现这个谷歌搜索它

...卷名只是一个符号链接,它指向一个真正的卷设备,通常以\Device\HarddiskVolume23. MS-DOS 设备的另一个例子是驱动器号。如果您的卷具有 C: 驱动器号,那么您将拥有一个名为\\?\C:的符号链接,它指向\Device\HarddiskVolumeXX格式中的真实卷。

所以也许它并没有那么不同 - 尽管我认为不那么复杂 -我认为它更明显。它们不是一个完全相同的系统,但它们也没有根本的不同。

/dev/device和之间最重要的区别可能/path/to/its/mount是,在后一条路径上,文件系统——一些旨在以有组织的方式处理数据的软件——正在解释前者的内容。你不能只读一张磁盘——必须有人读给你听。文件系统解释设备的内容。