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

Tim*_*Tim 22 mount devices directory-structure

我有几个与插入 CD 时发生的情况密切相关的问题。CD上的文件/media/Ubuntu\ 11.04\ i386/,但据我所见/dev/cdrom,也涉及到。

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

    • /dev — 此文件夹包含设备文件
    • /media — 这是可移动设备的挂载点
    • /mnt — 这是一个临时挂载点
  2. 的目的是mount什么?换句话说,如果一个设备已经被操作系统表示为/dev.

    mount 是不是只用于存储设备,不用于非存储设备,比如显卡、网卡、摄像头……?

  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
    
    Run Code Online (Sandbox Code Playgroud)

    如何找出适合我的 CD 的设备文件?

boe*_*ehj 15

这里有很多问题,我会尽力回答。我敢肯定,那些比我知识渊博的人将能够进一步帮助您。(如果这些人也能帮助我,我将不胜感激。)

在 *nix 中,一切都是文件。例如,您的 CD-ROM 是一个文件。

  • /dev- 在这里,您将找到物理设备以及您通常不会想到的设备,例如/dev/null
  • /media&/mnt是您可以挂载物理设备的目录,例如 CD-ROM、HDD 分区、U 盘等。

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

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

/media 这是可移动设备的挂载点

/mnt 这是一个临时挂载点

这是非常正确的。阅读此处了解如何根据文件系统层次结构标准使用/media/mnt。我这样做很不正确,选择使用 /media 而实际上我应该使用 /mnt,大多数时候。还值得注意的是,带有关联分区的内部 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

我希望这会有所帮助。

  • 在功能上,它们是相同的。理论上的区别在于,相同的可移动设备可能会重复出现,如果可能,最好将它们挂载到同一目录中。每次插入 CD 时,最好将该 CD 放在诸如“/media/My_CD_Title”之类的唯一路径中。您的相机存储卡可能是“/media/SD_Card”。相比之下,临时挂载点可能具有相同的路径,但您可以根据当前的需要将不同的驱动器挂载到它,并且只有您对挂载内容的了解才能识别该驱动器,因为它与最后一个临时驱动器位于同一位置. (3认同)
  • 而`/mnt` 往往被我的系统管理员使用——比如说,当我们想要恢复备份,或将分区迁移到新磁盘时,我们创建(例如)`/mnt/homebackup` 并挂载备份磁盘映像到那个挂载点,将丢失的文件复制回`/home`,然后释放挂载点。 (2认同)

Cal*_*leb 12

boehj回答解释了这里的基本部分。我要添加的一件事是关于设备和已安装文件系统之间的区别。事实是您可以直接访问设备节点。例如,您可以使用dd if=/dev/sda of=/dev/sdb第一个 ATA 设备的精确副本来制作第二个 ATA 设备,或者您可以cat /dev/sr0 > mycd.iso翻录 CD 并制作它的 ISO 映像。

不同之处在于,当您将设备挂载到某个位置时,您会在目录结构中创建一个使用文件系统驱动程序访问该设备的路径。文件系统驱动程序处理所有需要发生的特殊事情,如缓存、索引、查找等,以便您的原始驱动器设备以文件系统的所有便利出现在您面前。


Sha*_*dur 5

基于 boehj 的答案,mount在启动时在幕后使用来检查/etc/fstab它应该知道的每个现有分区应安装到实际文件系统中的位置。

与 Windows 不同,除了分区的驱动器号之外,您没有太多选择,如果您愿意,这允许将任何设备或分区安装在文件系统树中的任何位置- 例如,大学网络计算机通常只会在本地安装一些临时分区,而/bin/(包含启动阶段不需要的几乎所有软件)和(包含所有用户的主目录)将从可集中访问的 NFS 进行安装服务器。/lib/usr//home/

它还负责在更现代的系统上悄悄安装各种临时和虚拟文件系统,例如/dev/shm//sys/、 、 和。您很可能很少会直接使用它们做任何事情,但很多软件都依赖于它们在幕后存在。看看裸命令的输出,或者在-- 你可能会学到一些有趣的东西。/dev/pts//run/mount/etc/fstab