挂载设备-/ dev,/ media和/ mnt的角色以及mount命令


17

关于插入CD时会发生什么,我有几个密切相关的问题。CD上的文件/media/Ubuntu\ 11.04\ i386/,但据我所知/dev/cdrom也涉及其中。

  1. 之间有什么区别/dev/media/mnt?以下是我从互联网上找到的信息,但我仍然不知道:

    • /dev —此文件夹包含设备文件
    • /media —这是可移动设备的安装点
    • /mnt —这是一个临时挂载点
  2. 目的是mount什么?换句话说,如果操作系统已将设备表示为设备文件/dev,为什么不能在未安装的情况下直接通过设备文件访问该设备?

    安装是否仅用于存储设备,而不用于非存储设备,例如图形卡,网卡,相机等?

  3. 哪里是下一个设备文件/dev 安装至下/media或下 /mnt?我记得我已经看过两者,但是很好奇何时安装到哪个?

  4. 我发现CD已自动安装到/media/Ubuntu 11.04 i386。我猜CD的设备文件是 /dev/cdrom,但是我无法通过查看/dev/cdrom和 来确认它/media/Ubuntu 11.04 i386

    $ ls -l /media/Ubuntu\ 11.04\ i386/
    total 3522
    -r--r--r-- 1 Tim Tim     143 2011-04-27 13:04 autorun.inf
    ...
    $ ls -l /dev/cdrw
    lrwxrwxrwx 1 root root 3 2011-05-28 15:12 /dev/cdrw -> sr0
    $ ls -l /dev/cdrom
    lrwxrwxrwx 1 root root 3 2011-05-28 15:12 /dev/cdrom -> sr0
    

    如何找到CD上的哪个设备文件?



拆分一下,这是很多问题。@Gilles的评论回答了其中的一些问题,另一些应在发行版的用户手册中进行描述。
vonbrand 2014年

@vonbrand这些问题是非常紧密相关的。考虑到它有足够的答案,我不同意它的关闭。我对问题做了一些编辑,并投票决定重新开放。
吉尔(Gilles)'所以

Answers:


12

这里有很多问题,我会尽力回答。我相信那些比我更有知识的人将能够为您提供进一步的帮助。(如果这些人也能帮助我,我将不胜感激。)

在* nix中,所有内容都是一个文件。例如,您的CD-ROM是一个文件。

  • /dev-在这里,您将找到物理设备以及通常不会想到的诸如/ dev / null之类的设备
  • /media/mnt是您可以安装物理设备(例如CD-ROM,HDD分区,USB记忆棒等)的目录。

mount(和相反的umount)目的是允许动态安装设备。我的意思是,也许您可​​能只想在某些情况下挂载设备,而在其他时候却无法随时访问它。修复系统时,您可能希望在/ mnt挂载整个文件系统。您可能不希望挂载光盘映像(例如foo.iso)。等等。

您可以选择将设备安装在/ dev的/ media或/ mnt上。有或多或少的正确方法可以做到这一点。例如,从您的问题中您说:

/ media这是可移动设备的安装点

/ mnt这是一个临时挂载点

这是非常正确的。阅读此处,了解如何根据文件系统层次结构标准使用/ media/ mnt。我的做法很不正确,实际上大多数情况下我应该使用/ mnt时选择使用/ media。还值得注意的是,带有相关分区的内部HDD可能会被称为可移动媒体,这有些令人困惑。

我在OS X上,所以我现在无法检查(BSD在光驱方面做的事情略有不同),但是/ dev / cdrom是CD-ROM的设备文件。和/ dev / cdrw一样。ls -l在您的问题输出中看到'->' 吗?这表明/ dev / cdrom和/ dev / cdrw都符号链接到/ dev / sr0。“ SR ”是设备驱动程序名称; “ sr0”是设备文件名。

/media/Ubuntu 11.04 i386只是一个已自动安装到的.iso映像/media

我希望能有所帮助。


1
谢谢!我仍然想知道“可移动设备的安装点”和“临时安装点”之间有什么区别?
StackExchange for All

2
在功能上,它们是相同的。从理论上讲,相同的可移动设备可能会反复显示,如果可能的话,最好将它们安装到同一目录中。每次插入CD时,最好将CD放在诸如“ / media / My_CD_Title”之类的唯一路径中。您的相机存储卡可能是“ / media / SD_Card”。相比之下,临时挂载点可能具有相同的路径,但是您根据当前需要将不同的驱动器挂载到该挂载点,并且只有您对在那里挂载的了解才可以识别该驱动器,因为它位于LAST临时驱动器的同一位置。
卡莱布

1
/mnt一般用我的系统管理员-比方说,当我们要还原的备份,或分区迁移到新的磁盘,我们创建(例如)/mnt/homebackup,并安装到安装点备份磁盘映像,复制丢失的文件回来到/home然后释放挂载点。
Shadur

9

boehj答案解释了此处的基本知识。我要添加的一件事是关于设备和已挂载文件系统之间的区别。事实是您可以直接访问设备节点。例如,您可以dd if=/dev/sda of=/dev/sdb使第二个ATA设备成为第一个ATA设备的精确副本,或者可以cat /dev/sr0 > mycd.iso翻录CD并制作其iso映像。

区别在于,将设备安装到某个位置时,会在目录结构中创建一个路径,该路径使用文件系统驱动程序访问该设备。文件系统驱动程序处理所有需要发生的特殊事件,例如缓存,索引,查找等,以便您的原始驱动器设备在文件系统的所有便利下都可以看到。


谢谢!存储设备上的分区和文件系统是否也被视为设备?除了存储设备还有驱动程序之外,他们是否还具有驱动程序?
全部

是的,分区和所有存储设备(无论您要说的是什么)都可以作为设备寻址。整个设备将在一个硬件驱动程序下运行,但是当然每个分区都可以拥有自己的文件系统,因此mount命令可能使用不同的内核驱动程序来处理不同的文件系统。
卡莱布

1
哇。cat /dev/sr0 > mycd.iso-没想过
2011年

1
感谢您提请我注意catdd重新介绍设备节点。我完全忽略了这些事情。
boehj 2011年

2

在boehj的答案的基础上,mount在引导时在幕后使用该选项以检入/etc/fstab应该了解的每个现有分区应该安装到实际文件系统中的位置。

与Windows不同(例如Windows),在Windows中,除了分区获得的驱动器号外,您别无选择,这允许将任何设备或分区安装到文件系统树中的任何位置,例如,大学网络计算机通常仅在本地安装/bin/和,/lib并且在本地安装了几个临时分区,而/usr/(包含引导阶段不需要的几乎所有软件)和/home/(包含所有用户的主目录)将从可集中访问的NFS安装服务器。

它也负责悄悄安装各种临时的和虚拟的文件系统,如/dev/shm//sys//dev/pts/,和更先进的系统/run/。您很少会直接使用这些工具进行任何操作,但是很多软件都依赖于这些技术在幕后存在。看一下裸mount命令的输出,或者在中/etc/fstab,您可能会学到一些有趣的东西。

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.