最近开始学习Linux相关知识,记录对于挂载(mount)这一知识点的个人理解。
相关名词解释:
挂载(Mounting)
是将文件系统连接到Linux文件系统目录树中的过程。当你在Linux系统中访问一个目录时,实际上是在访问一个特定的文件系统。挂载的过程就是将这个文件系统与指定的目录关联起来,使得目录中的文件可以访问文件系统中的内容。
挂载点(Mount Point)
是指将一个文件系统连接到另一个文件系统树中的特定位置的目录。在 Unix 和类 Unix 系统中,挂载点是一个空目录,你可以使用挂载命令将其他设备或文件系统挂载到该目录上,使得这些设备或文件系统中的内容可以通过挂载点访问和操作。一旦挂载完成,挂载点上原有的内容将被新挂载的文件系统内容所覆盖。通常,挂载点用于访问硬盘分区、可移动设备(如 USB 驱动器)、网络共享等。
文件系统(File System)
是计算机用来组织和管理存储设备(如硬盘、固态硬盘等)上的文件和数据的一种机制。它包括以下几个主要内容:
-
文件和目录: 文件系统通过文件和目录来组织和存储数据。文件是数据的基本单元,可以是文本文件、图像文件、程序文件等等。目录用来组织和管理文件,形成层级结构,使得文件能够以有意义的方式进行组织。
-
文件属性: 文件系统通常会为每个文件和目录维护一些属性,例如文件名、文件大小、创建时间、修改时间、访问权限等等。这些属性用来描述和管理文件的特性。
-
存储管理: 文件系统负责管理存储设备上的物理空间,包括分配、释放和维护文件占用的存储空间。这包括将文件存储在磁盘上的具体位置、处理文件的碎片化、管理磁盘空间的分配等。
-
访问控制: 文件系统提供对文件和目录的访问控制机制,以确保数据的安全性和隐私。这包括对文件和目录设置访问权限(如读、写、执行权限)、用户和组的权限管理等。
-
文件系统结构: 文件系统通常采用树形结构来组织文件和目录,形成一个文件系统层次结构。常见的文件系统结构包括单层结构(如FAT文件系统)、两层结构(如NTFS、EXT文件系统)、多层结构等。
-
错误检测和恢复: 文件系统提供错误检测和恢复机制,用于检测和修复存储设备上可能出现的硬件或软件错误,以确保数据的完整性和一致性。
常见的文件系统如Windows的NTFS(New Technology File System)、macOS的APFS(Apple File System)、Linux的EXT(Extended File System)等。
挂载的原理
在Linux中一切皆文件,因此可以将不同的存储设备(如硬盘分区、光盘、网络共享等)挂载到文件系统中的任意目录上。这样做的好处是可以将多个存储设备的内容统一管理,通过文件系统的方式来访问和操作这些设备上的文件。
Linux中的设备文件
在 Linux 系统中,/dev
目录是一个特殊的目录,用于存放设备文件(device files)。设备文件是用来与系统中的硬件设备进行通信的文件,通过这些文件可以访问和控制硬件设备。
/dev
目录中的设备文件包括以下几种类型:
-
块设备文件(Block Device Files): 这些文件代表块设备,例如硬盘、固态硬盘、光驱等。典型的块设备文件包括
/dev/sda
(第一个 SATA 硬盘)、/dev/sdb
(第二个 SATA 硬盘)等。 -
字符设备文件(Character Device Files): 这些文件代表字符设备,例如串口、键盘、鼠标等。典型的字符设备文件包括
/dev/tty
(控制终端)、/dev/ttyUSB0
(USB 串口设备)等。 -
虚拟文件系统设备文件(Virtual File System Device Files): 这些文件代表虚拟文件系统,例如
/dev/null
(空设备,所有写入该设备的数据都会被丢弃)、/dev/zero
(用于产生连续的零字节)、/dev/random
和/dev/urandom
(用于产生随机数据)等。
通过这些设备文件,用户可以访问和控制系统中的各种硬件设备,例如读取硬盘中的数据、向串口发送数据、通过键盘输入等。/dev
目录中的设备文件是系统中硬件设备的一种抽象表示,它们为用户空间程序提供了一种统一的访问硬件设备的接口。
Linux中使用字母和数字的组合来命名磁盘分区,一般格式为/dev/xxyN。分区名的前两个字母xx标明分区所在设备的类型,通常是 hd (IDE 磁盘)或 sd(SCSI 磁盘);第三个字母y标明分区所在的设备,如/dev/hda(第一个 IDE 磁盘)或 /dev/sdb(第二个 SCSI 磁盘);数字N代表分区,前四个分区(主分区或扩展分区)是用数字从 1 排列到 4。逻辑分区从 5 开始。例如,/dev/hda3 是在第一个 IDE 硬盘上的第三个主分区或扩展分区;/dev/sdb6 是在第二个 SCSI 硬盘上的第二个逻辑分区。
挂载操作与实例
挂载的基本语法是:
mount [选项] 设备文件 挂载点
其中,设备文件
是要挂载的存储设备的特定文件,例如硬盘分区的设备文件为 /dev/sdX
,光盘的设备文件为 /dev/cdrom
等等;挂载点
则是要挂载到的目录。
挂载硬盘分区
mount /dev/sdb1 /mnt/data
这个命令将 /dev/sdb1
分区挂载到 /mnt/data
目录下,使得该目录中的文件就是该分区中的内容。
挂载网络共享
mount -t nfs server:/share /mnt/nfs
这个命令将名为 server
的 NFS 共享 /share
挂载到本地的 /mnt/nfs
目录下,使得该目录中的文件就是远程共享中的内容。
自动挂载
/dev/sdb1 /mnt/data ext4 defaults 0 0
这个条目指示系统在启动时自动将 /dev/sdb1
分区挂载到 /mnt/data
目录下,并使用 ext4 文件系统,采用默认选项进行挂载。