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

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

我有几个与插入 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
    

    如何找出我的 CD 对应的设备文件?

答案1

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

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

  • /dev- 在这里您会找到物理设备以及您通常不会认为是设备的东西,例如/dev/空
  • /media&/mnt是您可以安装物理设备(例如 CD-ROM、HDD 分区、USB 记忆棒等)的目录。

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

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

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

/mnt 这是一个临时挂载点

这几乎是正确的。阅读此处了解如何操作/媒体/mnt应根据文件系统层次结构标准。我的做法非常错误,选择使用 /media,而实际上大多数时候我应该使用 /mnt。还值得注意的是,具有关联分区的内部 HDD 可能会被称为可移动介质,这有点令人困惑。

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

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

我希望这能有所帮助。

答案2

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

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

答案3

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

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

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

相关内容