RHEL6入门系列之二十,文件系统的挂载

简介:

在上篇博文中,我们将系统中新增加的第2块硬盘分成了4个分区:/dev/sdb1、/dev/sdb4、/dev/sdb5、/dev/sdb6,其中/dev/sdb4作为扩展分区是无法实际使用的,可用的实际分区只有3个。
要想使用这些分区,还必须要经过最后一步操作——挂载。挂载是Linux系统与Windows系统在存储设备操作方式上的一个非常重要的区别,也是今天要学习的主要内容。
在Linux中,整个系统只有一个根目录,不允许有第二个以外的根目录,因此在Linux系统中要访问某个存储设备,就必须先将该设备挂载到根文件系统的某个目录下,然后才能像正常访问目录一样访问存储设备中的资源。

 在安装Linux系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载,如“/”分区、“boot”分区等,对于后来新增加的硬盘分区、优盘、光盘等设备,就必须由管理员手动进行挂载。挂载一个分区时,必须为其指定一个目录作为挂载点,用户通过这个目录就可以访问设备中的文件、目录数据。

一、 挂载文件系统

挂载文件系统使用命令mount,该命令的格式如下:

mount [-t 文件系统类型] 存储设备 挂载点

其中,文件系统类型通常可以省略(由系统自动识别),存储设备对应分区的设备文件名(如“/dev/sdb1”)或网络资源路径,挂载点为用户指定用于挂载的目录。

挂载点必须是一个已经存在的目录,一般在挂载之前使用mkdir命令先创建一个新的目录,如果把现有的目录当做挂载点,则这个目录最好为空目录。

 

1、挂载硬盘分区

 

例:将“/dev/sdb1”挂载到“/data”目录下。

这里用到了一个df命令,顺便将这个命令介绍一下。df命令主要用来了解系统中已经挂载的各个文件系统的磁盘使用情况,它的常用选项有“-h”、“-T”,使用“-h”选项将显示更易读的容量单位,“-T”选项用于显示文件系统的类型。这个命令在磁盘管理中是要经常用到的。

下面再继续将/dev/sdb5这个已经被格式化成FAT32文件系统的分区挂载到/mailbox目录下。

2、挂载光盘

在挂载外围设备时一般习惯性地将挂载点放在/mnt目录下。

例:挂载光盘。光盘对应的设备文件通常为“/dev/cdrom”,下面将光盘挂载到“/mnt/cdrom”目录。

 由于光盘是只读的存储介质,因此在挂载时系统会出现“mounting read-only”的提示信息。

另外,在df命令显示的结果中可以发现,光盘(光驱)的实际设备文件是/dev/sr0,/dev/cdrom其实只是一个符号链接,不过我们一般都习惯用/dev/cdrom这个更容易记忆的名字。光盘的文件系统是iso9660,这个了解即可。再是可以看到光盘其实被挂载了两次,这是由于我们在图形界面下操作,而图形界面会将系统中接入的这些移动设备自动挂载,系统将光盘自动挂载到了“/media/RHEL_6.3 x86_64 Disc 1”目录下。Linux允许同一个存储设备同时被挂载到多个挂载点,这并不影响我们使用。
此时执行“ls /mnt/cdrom”命令,查看到的就是光盘中的内容。

3、挂载优盘

由于是在虚拟机中进行操作,所以首先我们需要将优盘接入到虚拟机中。在虚拟机上点击右键,在“可移动设备”中找到自己的优盘,然后点击“与主机连接或断开连接”,就可以将优盘转接到虚拟机中。

在上篇博文中曾介绍过,优盘也是使用“/dev/sdxx”的设备文件名。优盘现在相当于是系统中的第3块SCSI接口设备,所以它对应的设备文件为“/dev/sdc”。可以用“fdisk -l”命令查看。[root@localhost ~]# fdisk -l

Disk /dev/sdc: 7784 MB, 7784628224 bytes

109 heads, 58 sectors/track, 2404 cylinders

Units = cylinders of 6322 * 512 = 3236864 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x868c868c

   Device Boot      Start         End      Blocks   Id System

/dev/sdc1   *          68        2405     7389184    c W95 FAT32 (LBA)

 

优盘只有一个分区/dev/sdc1,下面将它挂载到“/mnt/usb”目录。

[root@localhost ~]# mkdir /mnt/usb

[root@localhost ~]# mount /dev/sdc1 /mnt/usb

 

4、挂载iso镜像

 

如今iso镜像使用的是越来越多,光驱逐渐有淘汰之势,在Windows中使用iso镜像需要安装Daemon Tools之类的虚拟光驱软件,而在Linux系统中可以将ISO镜像直接挂载使用。

Linux将iso镜像视为一种特殊的“回环”文件系统,因此在挂载时需要添加“-o loop”选项。

下面将我优盘中准备好的的winbaicai_xpsp3ghost_2012_6_v5.8.iso镜像挂载到“/mnt/xp”目录中。

[root@localhost ~]# mkdir /mnt/xp

[root@localhost ~]# cd /mnt/usb

[root@localhost usb]# mount -o loop winbaicai_xpsp3ghost_2012_6_v5.8.iso /mnt/xp

注意,在写这类很长的文件名时要善于使用Tab键补全。

 

二、 永久挂载文件系统

 

刚才我们所挂载的这些文件系统在Linux系统关机或重启时都会自动被卸载掉,这样每次开机后管理员都需要将它们手工再挂载一遍,如果在挂载的文件系统里存放了一些开机要自动运行的程序数据,就可能会导致程序出现错误。

在Linux系统中可以通过修改/etc/fstab文件来完成文件系统的自动挂载。/etc/fstab称为文件系统数据表(File System Table),Linux在每次开机的时候都会按照这个文件中的配置来自动挂载相应的文件系统。

我们先来查看一下/etc/fstab文件中的内容。

文件中的每一行对应了一个自动挂载的设备,每行包括了6个字段,每个字段的含义如下:

  • 第1字段:需要挂载的设备文件名。

  • 第2字段:挂载点,挂载点必须是一个目录,而且必须用绝对路径。对于交换分区,这个字段定义为swap。

  • 第3字段:文件系统的类型。如果是ext4文件系统,则写成ext4;如果是FAT32文件系统,则写成vfat;如果是光盘,可以写成auto,由系统自动检测,或者是iso9660这种标准格式。

  • 第4字段:挂载选项。一般都是采用“defaults”。

  • 第5字段:文件系统是否需要dump备份(dump是一个备份工具),一般为1时表示需要,为0设表示忽略。

  • 第6字段:表示在系统启动时是否检查这个文件系统以及检查的顺序,设为0表示不检查,设为1表示优先检查,2表示其次检查。对于根分区应设为1,其他分区设为2或者是0。

下面我们将/dev/sdb1永久挂载到/data目录。

利用vi编辑器修改/etc/fstab文件,在文件的最下方增加下面的一行:

[root@localhost ~]# vim /etc/fstab

/dev/sdb1               /data                   ext4    defaults        0 0

如果要将光盘永久挂载到/mnt/cdrom目录,可以这样进行修改:

[root@localhost ~]# vim /etc/fstab

/dev/cdrom             /mnt/cdrom              auto    defaults        0 0

设置完/etc/fstab之后,如果需要测试设置值是否正确,可以执行mount –a命令,自动挂载文件中所有的文件系统。

 

三、卸载文件系统

 

卸载文件系统使用的命令为umount,需要指定挂载点目录或对应设备文件名作为参数。因为同一设备可能被挂载到多个目录下,所以一般建议通过挂载点目录的位置来进行卸载。

例:卸载光盘。

[root@localhost ~]# umount /mnt/cdrom

在使用umount命令卸载文件系统时,必须保证此时文件系统不能处于busy状态,使文件系统处于busy状态的情况有:文件系统中有打开的文件,某个进程的工作目录在此系统中,文件系统的缓存文件正在被使用等。最常见的错误是在挂载点目录下进行卸载操作。


本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1124446

相关文章
|
关系型数据库 MySQL 分布式数据库
Seata常见问题之Seata自定义 FailureHandler不生效如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
|
11月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
261 1
|
监控 JavaScript 测试技术
从单体应用迁移到微服务的最佳实践
【8月更文第29天】随着软件架构的发展,越来越多的企业开始考虑从传统的单体应用迁移到微服务架构。虽然迁移可以带来诸如更好的可扩展性、更高的灵活性等优势,但这一过程也可能充满挑战。本文将详细介绍如何顺利地进行这一转变,并提供一些实用的步骤和示例代码。
377 1
|
10月前
|
搜索推荐 关系型数据库 MySQL
MySQL中的模糊匹配技巧:无需ES的高效实现
在数据库应用中,模糊匹配是一个常见的需求,尤其在处理搜索功能时。虽然Elasticsearch(ES)等搜索引擎在处理文本搜索方面表现出色,但在一些场景下,直接使用MySQL数据库实现模糊匹配也是一个经济且高效的选择。本文将分享如何在不引入ES的情况下,利用MySQL实现模糊匹配的五大步骤和十个实战案例。
716 1
|
安全 API 开发者
Zoho Mail邮箱API发送邮件的方法
Zoho Mail提供了强大的API,使开发者可以通过编程方式轻松地使用Zoho Mail发送邮件。aoksend将介绍如何使用Zoho Mail邮箱API发送邮件,以及一些常见的用法示例。
|
算法 大数据 Linux
深入理解操作系统:进程管理与调度策略
【5月更文挑战第17天】 在现代计算机系统中,操作系统扮演着至关重要的角色。它不仅负责管理硬件资源,还为应用程序提供了一个执行环境。其中,进程管理是操作系统的核心功能之一,它涉及进程的创建、执行、暂停、终止以及调度等多个方面。本文将深入探讨操作系统中的进程管理机制,特别是进程调度策略,以期提供一个全面的视角来理解如何提高系统效率和响应速度。通过分析不同的调度算法,我们将讨论各自的优势、局限性以及适用场景,并探讨未来可能的发展趋势。
|
存储 Prometheus Kubernetes
在K8S中,如何收集K8S日志?有哪些方案?
在K8S中,如何收集K8S日志?有哪些方案?
|
网络架构
【数据链路层】封装成帧和透明传输和差错控制
【数据链路层】封装成帧和透明传输和差错控制
239 1
|
存储 分布式计算 Hadoop
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
ClickHouse是一款高性能的列式存储OLAP数据库,由俄罗斯的Yandex公司开发,用于在线分析处理(OLAP)。它提供秒级大数据查询,适用于商业智能、广告流量等领域。ClickHouse速度快的原因包括列式存储、数据压缩、向量化执行和多线程分布式处理。然而,它不支持事务,不适合OLTP操作。相比Hadoop生态中的查询引擎,ClickHouse在大量数据查询上表现出色。一系列的文章详细介绍了ClickHouse的各个方面,包括安装、表引擎和使用场景。
2112 2
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
|
存储 SQL 关系型数据库
关系型数据库结构化数据存储查询方式
【5月更文挑战第10天】关系型数据库结构化数据存储查询方式
239 2