使用命令mount的问题

使用命令mount的问题

当使用命令挂载设备时,我想知道以下问题:

  1. 既然设备文件是挂载的一个参数,那么如何知道设备的设备文件一般是什么?
  2. 如果设备安装的目录尚不存在,我是否必须提前创建该目录?我看到据说这是必需的,但是我的名为“mycd”的 CD 被自动安装到 /media/mycd,而该 CD 事先并不存在。
  3. 一个设备可以安装到多个地方而不需要卸载吗?

感谢致敬!

答案1

(您没有指定您的操作系统。我假设它是 GNU/Linux 的某种变体,一般概念也适用于其他 UNIX;细节可能不适用于。)

1. 一般如何知道设备的设备文件是什么?

基本上,您必须知道哪个设备文件名对应于哪个设备。

该信息的来源是 Linux 内核文档udev配置文件(查看/etc/udev)和 MAKEDEV脚本。

这里正确的解释相当长:Linux 内核通过一对数字来标识设备,称为“主要”和“次要”设备号。任何具有 CD-ROM 设备的主设备号和次设备号的设备文件都将被内核视为该 CD-ROM 设备;这样你就可以创建(参见mknod命令)一个 CD-ROM 设备/my/cdrom并使用它;同样,您可以对任何设备使用您喜欢的任何命名约定。然而,太多的系统软件依赖于通过名称查找设备,因此更改“标准”设备名称的工作量太大。

系统上使用的实际设备名称部分是历史的结果(例如,磁盘驱动器的/dev/sdX/dev/hdX名称 - 有人在开始时就开始使用这些名称,并且名称被保留),部分是开发某些设备的人员之间达成协议的结果系统的低层部分(主要是内核、libC 和 udev)。

2. 是否需要提前创建设备挂载目录?

是的,不会为您创建该目录。

您看到 CD、USB 记忆棒和其他设备的挂载点自动出现的原因/media是某些守护进程已为您创建了该挂载点。 (在运行 GNOME 桌面的 GNU/Linux 上,大致流程如下:插入 CD,创建安装目录,安装 CD,并且可能打开文件管理器窗口。几乎所有内容都可以更改,具体取决于具体情况Linux 版本和发行版。)

但在命令行上,您必须自己创建挂载点。

3. 一个设备可以挂载到多个地方而不需要卸载吗?

如果您的意思是“如何使 CD 的内容出现在文件系统的各个位置”,那么是的,您可以使用称为“绑定安装”的功能来做到这一点。

绑定挂载可以将文件系统上的任何目录“复制”到文件系统的另一个不相交的部分中。例如,您可以发出命令:

mount --bind /var/tmp /mnt

这会将 的内容复制/var/tmp到目录中/mnt:如果您创建一个文件/var/tmp/foo,您将看到与 相同的文件/mnt/foo

进一步阅读

您可以mount在以下位置找到有关其操作的更多信息:

答案2

设备文件是您告诉挂载您想要访问的设备或其他位置的方式。所以它无法猜测。

您可以挂载几种不同类型的文件系统。对于磁盘支持的文件系统(通常想到的第一种),该设备是块设备。它的名称通常是/dev/something,其中该something部分对要使用的磁盘驱动程序进行编码,如果该驱动程序管理多个磁盘,则使用哪个特定磁盘,以及要访问磁盘的哪一部分(如果相关)。不同的 UNIX 变体有不同的设备指定方式。官方参考是您的 UNIX 变体的设备驱动程序手册页,通常是第 4 部分:AIX,自由BSD,Linux,Mac OS X(第 4 节),迷你X,网络BSD,开放BSD,索拉里斯 11,Unix 第六版。,Unix 第 8 版。, …

在 Linux 上,以下是一些查找设备名称的其他方法以及指定设备的替代方法。其中一些在其他 UNIX 变体下有类似的东西。

  • 在 中/proc/partitions,有磁盘、磁盘分区、逻辑卷和其他块设备的列表。并非所有这些都有文件系统。
  • 全部逻辑卷在 中有一个条目/dev/mapper
  • mount命令接受文件系统标签和 UUID 来代替设备名称,指定为LABEL=fooUUID=1234…代替/dev/something
  • 当设备插入系统时,乌德夫为其分配一个设备名称。
  • 大多数 Linux 发行版(通过 udev)为类似磁盘的设备安排了各种备用名称,在/dev/disk.这些是相同设备的备用名称。例如,在我正在编写此内容的计算机上,托管我的主文件系统(这是一个 LVM 逻辑卷)的设备可以通过/dev/dm-7/dev/disk/by-id/dm-name-VolumeGroupName-LogicalVolumeName/dev/disk/by-id/dm-uuid-LVM-LongStringOfDigitsAndLetters和进行不同的访问。/dev/disk/by-label/\x2fhome/dev/disk/by-uuid/SomeUUID

还有一些文件系统不是来自磁盘文件。例如,对于远程文件系统,例如网络文件系统或者桑巴舞,设备名称指定机器名称以及该机器上的路径或共享名称(例如machinename:/shared/directory)。

许多桌面系统都会在插入新设备时发出通知,并自动挂载可识别的文件系统。

1 但是,您可以通过mount/etc/fstab


mount命令要求目录(挂载点)存在。自动安装系统通常会在实际安装之前根据需要创建目录(并在卸载后删除该目录)。


并非所有 unice 都可以在多个地方本地挂载相同的文件系统。在 Linux 下,这可以通过绑定挂载。在大多数 unice 上,您可以使用绑定文件系统 保险丝文件系统。

相关内容