无法理解安装的概念


13

阅读完两个书在Linux中安装设备意味着什么?理解“挂载”作为操作系统中的概念,我遇到了一个问题,即

所有可访问的存储在此单个目录树中必须具有关联的位置。这与Windows不同(在Windows中,文件路径使用最常见的语法),每个存储组件(驱动器)只有一个目录树。安装是将存储设备与目录树中特定位置相关联的动作。

但是/ dev / cdrom下已经有一个可访问的位置,例如cdrom驱动器,该驱动器显然位于目录层次结构中。那么,为什么需要在/ media / cdrom下创建一个单独的“挂载点”呢?为什么不可能直接从/ dev / cdrom访问?听说设备节点文件就像普通文件一样。读写它们就像普通文件一样。那么这是否意味着如果我们从/ dev / cdrom访问cdrom中的文件系统将不可用。当我们“挂载”文件系统层次结构时(在cdrom中),它“活跃起来”了吗?

Answers:


11

您可以读取或写入/ dev / cdrom(例如,使用ddcat),但是这样做时,您只是在读取或写入设备的原始字节。这在各种情况下(例如克隆分区)很有用,但是通常我们希望查看存储在设备上的目录和文件。

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


8

我以以下方式考虑:这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图像
须藤挂载fs图像/ some / mount / point

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


为什么需要mke2fs
ADTC

在映像文件内创建一个空的ext2文件系统。一个空的文件系统并不全为零-它具有一些元数据和固定的结构,就像一个空的Word或LibreOffice文档的大小为非零,并包含有关例如默认字体和页面大小的信息一样。
2015年

哦,好的,这可能是破坏性的行为。建议您提及此命令仅用于首次初始化。:)
ADTC 2015年

5

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

问题是-我真的想不出另一种方法。即使在Windows中(尽管不那么明显),仍然存在用于的文件系统抽象\\?\volumename\。我花了一分钟的时间记住了它的外观,然后我发现了

...卷名只是一个指向实际卷设备的符号链接,通常采用的形式\Device\HarddiskVolume23。MS-DOS设备的另一个示例是驱动器号。如果您的卷具有C:驱动器号,那么您将有一个名为\\?\C:的符号链接,该链接指向\Device\HarddiskVolumeXX格式为实际的卷。

因此,我认为也许并没有那么大的不同-尽管我想说的不那么复杂-但它更加明显。它们不是一个系统,也不是同一系统,但是它们也没有根本不同。

也许之间最重要的区别/dev/device/path/to/its/mount是在后者路径的文件系统-的软件的一些位预期在一个有组织的方式来处理数据-被解释前者的内容。您不能只读取磁盘-有人必须将其读取给您。文件系统解释设备的内容。


这有点误导。如果您/dev/cdrom在十六进制编辑器中打开,则它实际上包含CD-ROM的原始内容。通过使用,mount您只需要告诉OS将那些内容解释为目录树即可。
KrzysztofKosiński2015年

0

除上述各项外,驱动程序或其他程序还可以缓存设备中的数据。在诸如硬盘或拇指驱动器之类的读写设备上,写入该设备的数据可能尚未写入。日志文件系统还可能需要先刷新日志,然后日志才能再看不到设备。然后,您得到了覆盖其他文件系统的文件系统,例如cryptfs,它们需要知道底层文件系统何时不再可用。

当然,对于只读设备而言,这没有什么意义,但仍然适用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.