文件系统技术内幕:大数据时代海量数据存储之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 格式化文件系统与挂载

实际上格式化与挂载(Windows不需要手动挂载)文件系统才是文件系统使用的第一步。格式化文件系统相当于在块设备上创建一个文件系统,而挂载则是将该文件系统激活(在操作系统目录树呈现)的过程。

在安装操作系统时,安装程序已经对系统磁盘进行了格式化操作。所以,在通常情况下我们不太会感知到在使用磁盘之前需要格式化。但是,如果计算机配置了多块硬盘,则非系统硬盘在使用之前需要格式化才可以使用。

如果是Windows,则格式化操作非常简单。只需要右击盘符弹出一个快捷菜单,然后选择“格式化”命令,如图2-5所示,打开“格式化”对话框,如图2-6所示。

在“格式化”对话框中,单击“开始”按钮,系统就可以帮我们完成磁盘整个格式化的过程。当然,在单击“开始”按钮之前可以根据需要调整文件系统的参数,如文件系统类型、分配单元的大小等。

当系统完成格式化之后,双击磁盘盘符进入该磁盘,然后我们就可以做一些具体的操作了,如拷贝文件或新建文件等。

图2-5 选择“格式化”命令

图2-6 “格式化”对话框

在Linux操作系统进行格式化稍微有些门槛,但并没有太大的难度。Linux命令行终端通过命令实现块设备的格式化操作。其语法格式如下:

这里/dev/sdb就是一个块设备,可以理解为磁盘。命令名称分为两部分,mkfs(make filesystem的简写)表示格式化,而ext4则表示文件系统的类型。当然,该命令其实具有非常丰富的参数,如设置文件系统块大小等,大家可以通过man命令进一步了解,本文不再赘述。

但是在Linux操作系统中完成格式化后,我们并不能像Windows那样直接进入/dev/sdb这个磁盘设备拷贝文件,或者进行其他文件操作。这里需要额外操作一步,也就是将该磁盘设备挂载到某个目录下面。

假设现在有一个目录(/mnt/ext4_test),执行如下命令就可以将刚才格式化的文件系统挂载了。

如果没有提示错误,那么这个格式化后的磁盘就挂载到Linux文件系统目录树的/mnt/ext4_test目录下面。此时,我们对该目录的访问就是对磁盘数据的访问。这个似乎是一个很神奇的动作,具体原理是什么呢?请参考后续章节的解释。

通过手动挂载的文件系统在操作系统重启后就不存在了,如果想要访问该磁盘的内容,则此时还需要重新执行mount命令进行挂载。有什么方法可以在操作系统启动过程中自动挂载?当然有,那就是通过fstab配置文件来实现,如图2-7所示,第3行代码是针对本实例增加的配置项。

图2-7 fstab配置文件实例

在上述配置项中每行分为6段。其中,第1个表示待挂载的设备,如磁盘,其实这里不仅可以是具体的设备,还可以是标签或文件系统UUID;第2个是挂载点(挂载点是一个挂载了新文件系统的目录);第3个是文件系统类型;第4个是挂载选项,本书选用默认值;第5个是被dump命令使用的选项;第6个是被fsck命令使用的选项。每个选项的详细含义可以通过执行man fstab命令获得。