挂载
目录结构只是一个逻辑概念,只有将目录结构与物理存储设备关联起来,才能通过目录结构访问磁盘上的数据。对于Windows系统,先有盘符,后有目录,而Linux系统中则是先有目录,之后再通过物理地址与目录之间的映射,开始文件访问。将物理地址与目录是进行映射的方式,称为挂载。
所谓挂载,是指将一个目录作为入口,将磁盘分区中的数据放置在以该目录为根结点的目录关系树中,这相当于为文件系统与磁盘进行了链接,指定了某个分区中文件系统访问的位置。Linux系统中根目录是整个磁盘访问的基点,因此根目录必须要挂载到某个分区。
Linux系统中通过mount命令和unmount命令实现分区的挂载和卸除,下面分别对这两个命令进行讲解。
(1)mount
Linux系统中可以使用mount命令将某个分区挂载到目录,mount命令常用的格式如下:
mount [选项] [参数] 设备 挂载点
mount命令常用的选项有两个,分别为-t和-o。
选项-t用于指定待挂载设备的文件系统类型,常见的类型如下:
● 光盘/光盘镜像:iso9660;
● DOS fat16文件系统:msdos;
● Windows 9x fat32文件系统:vfat;
● Windows NT ntfs文件系统:ntfs;
● Mount Windows文件网络共享:smbfs;
● UNIX(LINUX)文件网络共享:nfs。
Linux能支持待挂载设备的中文件系统类型时,该设备才能被成功挂载到Linux系统中并被识别。
选项-o主要用来描述设备的挂载方式,常用的挂载方式如表1所示。
表1 常用挂载方式
目录 | 说明 |
---|---|
loop | 将一个文件视为硬盘分区挂载到系统 |
ro | read-only,采用只读的方式挂载设备(即系统只能对设备进行读操作) |
rw | 采用读写的方式挂载设备 |
iocharset | 指定访问文件系统所用的字符集 |
remount | 重新挂载 |
mount的参数通常为设备文件名与挂载点。设备文件名即为要挂载的文件系统对应的设备名;挂载点指挂载点目录,设备必须被挂载到一个已经存在的目录上,其中的内容内能通过目录访问,挂载的目录可以不为空,但将某个设备挂载到该目录后,目录中之前存放的内容不可再用。
下面以硬盘与镜像文件的挂载为例,来讲解mount命令的使用方法。
① 挂载移动硬盘
移动硬盘是一个硬件设备,在挂载之前,需要先将该设备连接到主机。为了确定新连接的设备在系统中的文件名,应先使用“fdisk -l”命令了解当前系统中的磁盘以及分区情况,之后连接移动硬盘,再次执行“fdisk -l”命令,通过比对,从而获得新连接设备的名称与分情况。此时才可以使用mount命令挂载硬盘或其某个分区到指定目录下,需要注意,指定的目录必须已经存在。
假设新添设备的设备名为/dev/sdb,其中的逻辑分区为/dev/sdb5,要将该逻辑分区挂载到/mnt/dir1,则需使用如下命令:
mount /dev/sdb5 /mnt/dir1
该命令中省略了待挂载设备的文件类型,系统将会自动识别该设备的文件类型。U盘挂载的方式与移动硬盘大同小异,读者可参考移动硬盘的挂载方式自行实践。
② 挂载镜像文件
镜像文件类似文件压缩包,但它无法直接使用,需先利用虚拟光驱工具将其解压。镜像文件可以视为光盘的“提取物”,它也可以挂载到Linux系统中使用。
假如在/usr目录下有一名为test.iso的镜像文件,要求以读写的方式从源目录/usr/test.iso挂载到目标目录/home/itheima,则需使用如下命令:
mount -o rw –t iso9660 /usr/test.iso /home/itheima
(2)umount
当需要挂载的分区只是一个移动存储设备(如移动硬盘)时,要进行的工作是在该设备与主机之间进行文件传输,那么在文件传输完毕之后,需要卸下该分区。Linux系统中卸下分区的命令是umount,该命令的格式如下:
umount [选项] [参数]
umount命令的参数通常为设备名与挂载点,即它可以通过设备名或挂载点来卸载分区。若以挂载点为参数,假设挂载点目录为/mnt,则使用的命令如下:
umount /mnt
通常以挂载点为参数卸载分区,因为以设备为参数时,可能会因设备正忙或无法响应,导致卸载失败。也可以为命令添加选项“-l”,该选项代表“lazy mount”,使用该选项时,系统会立刻从文件层次结构中卸载指定的设备,但在空闲时才清除文件系统的所有引用。