如何在Linux上创建文件系统

    谈到如何创建文件系统,在这里就不得不提一下什么是文件系统,在百度上搜索得到的定义是这样的:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统,简单的看这个概念可能感觉还是有点茫茫然,其实简单的说,就是定义磁盘存取数据的一种逻辑组织,我们都知道磁盘是一种存储数据的硬件,首先但这个硬件的工作当然不是无序的,他首先得遵循一定的规则,而文件系统就是给磁盘存取文件系统定义规则的。

        因此,文件系统是建立在磁盘上的,如此一来,我们就应该聊聊磁盘的结构了,磁盘大致可分为,旋转马达,磁盘片,固定连杆及磁头,磁头划过盘片的一周称作为磁道(track),而在每个磁道按512Byte划分若干个相同的等分即是扇区(sector)。为了我提高磁盘的工作效率,我们通常会在多个盘面上同时存取,所以在多个盘片面上都分别有磁头,连杆统一移动磁头在多个盘面上停留在不同的盘面相同的磁道上,多个盘面的磁道组成的至上而下平面乃称之为柱面(sylinder),相关概念原理可以参照下面一张图片

        blob.png

        为了更好的更安全的管理磁盘数据,我们通常会对磁盘按柱面进行分区,我们知道越靠盘片外的柱面磁头划过的时间消耗便越长,读取的速度就会越低,因此在我们windows机器上的靠后的分区会感觉到相比C盘慢一些,在这里还得说明一点,在磁盘上的0磁道0扇区的512Byte是保存MBR(master boot record)的,在mbr里446Byte是存放bootloader的,64Byte存放分区表信息,每16Byte标识一个分区,所以理论上我们的磁盘分区最多只能四个,而为了适应多场景,业务的需求必须多使用分区时,通常在第4块分区中引入扩展分区,在扩展分区中来添加更多的分区突破这个限制,剩下的2Byte用来标识magic number。

        创建文件系统并且能够使用可分为三步:

            1.首先给硬盘分区

                在分区前先要介绍下相关硬盘按接口可以分成几个类型:

                    并口:个人pc一般是IDE的为主,速率大致是133M/s

                               企业级SCSI,速率是640M/s

                    串口: SATA:6Gbps

                                SAS:6Gbps

                                USB:480MB/s

                在centos5,除了IDE接口的硬盘上设备显示是/dev/hd*以外,SCSI,SATA,SAS,USB都是/dev/sd*,但是在centos6以上的版本中,都是/dev/sd*。 我们使用的分区管理工具主要有fdisk, parted, sfdisk,主流还是使用fdisk,但是fdisk最多只能分区15个,具体命令参数如下:

                    fdisk device

                            p: print, 显示已有分区;

                            n: new, 创建一个新的分区

                            d: delete, 删除一个已经存在的分区

                            w: write, 创建好的分区写入磁盘并退出

                            q: quit, 放弃创建好的分区并直接退出

                            m: 获取帮助

                            l: 列表所分区id

                            t: 调整分区id

                eg:在我的虚拟机上创建分区

                        1.首先查看一下我的机器上的分区情况,使用fdisk -l

                        blob.png

                         可以看的出来,我只使用了3个分区,还有一个分区可使用的,但是总容量却不够使用了,所以我得先在虚拟机上加一块硬盘 ,看箭头指示的另外一个多出来的磁盘如下图

                        blob.png

                接下来我们来进行分区

            blob.png            blob.png

            这个是我整个创建一个500M的,类型为Linux的主分区,大致过程就是这样,然后查看内核是否识别到我新创建的分区,可以cat /proc/partitions,一般分区完成且保存退出之后,要执行partx -a /dev/sdb同步到内核当中去

            2.初始化文件系统

                   首先还是先了解文件系统都有哪些

                    linux的文件系统:ext2,ext3,ext4,vfat,xfs,btrfs,reiserfs,jfs,swap(交换分区)

                    windows:fat32,ntfs

                    网络文件系统:NFS,CIFS(windows网上邻居)

                    集群文件系统:GFS2, OCFS2

                    分布式文件系统:ceph,moosefs, mogilefs, GlusterFS, Lustre

                我们在创建文件系统的时候必须满足两个条件,1.在内核模块中得有我们需要的类型文件系统,否则还得安装模块,2,在用户空间得有创建文件系统支持的工具,如:mkfs.ext4,mkfs.xfs,mkfs.vfat等等。我们来试着用之前已经建好的分区来初始化文件系统

            blob.png

           blob.png

            至此文件系统初始化完成了,注意mkfs.ext4这个“.”也可以换成 “-t” ,如mkfs -t ext4,在老的版本中的centos,创建文件系统会使用这个命令mke2fs,它是ext系列文件系统的专用工具,具体使用如下:

        mke2fs:ext系列文件系统专用管理工具

            -t {ext2|ext3|ext4}指定哪种类型的文件系统

            -b {1024|2048|4096} 指定块大小

            -L 'LABEL'设定卷标

            -j: 相当于 -t ext3,文件系统增加日志

                mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

            -i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;

            -N #:为数据空间创建个多少个inode;

            -m #: 为管理人员预留的空间占据的百分比;默认是5%

            -O FEATURE[,…]:启用指定特性

                -O ^FEATURE:关闭指定特性

        我们也来看看使用mke2fs创建文件系统的效果

        1.首先还是创建分区/dev/sdb2

        2.创建完成后使用mke2fs创建文件系统

        blob.png   

        在上图中,我创建了个卷标为mydata且不带日志的文件系统,如果我想升级为带日志的文件系统ext3,这里也要介绍下更改文件系统相关属性的命令tune2fs

        tune2fs:重新设定ext系列文件系统可调整参数的值

            -l:查看指定文件系统超级块信息;super block

            -L 'LABEL':修改卷标

            -m #:修预留给管理员的空间百分比

            -j: 将ext2升级为ext3

            -O: 文件系统属性启用或禁用

            -o: 调整文件系统的默认挂载选项

            -U UUID: 修改UUID号;

        将文件系统修改为ext3,参照上面的命令参数直接敲入tune2fs -j /dev/sdb2,如图

      blob.png

            3.挂载文件系统

注:以上内容纯代表个人的理解,欢迎指正,谢谢

原创文章,作者:东里西里,如若转载,请注明出处:http://www.178linux.com/11174

(0)
东里西里东里西里
上一篇 2016-01-18
下一篇 2016-01-18

相关推荐

  • pxe自动安装linux

    配置自动安装操作系统 1.网卡应支持pxe技术,由网卡作为dhcp的客户端向dhcp服务器请求一个IP地址,dhcp会将ip,网关等信息和的tftp服务器的地址应加载的文件名提供给客户端 2.根据dhcp服务器提供的信息网卡上内置的tftp客户端向tftp服务器发出请求,将文件下载至内存,包括bootloader(可能有选单),initrd,内核等(内核和i…

    Linux干货 2016-11-11
  • Python内置数据结构——集合set

    集合 定义 set翻译为集合 collection翻译为集合类型,是一个较大的概念 set是一个可变的、无序的、不重复的元素组成的集合 set的元素要求必须可以hash,目前已学的不可hash的类型只有list、set 元素不可以索引 set可以迭代 set的初始化 set_1 =set() #表示定义一个空集合set_1 set_1 =set(iterab…

    Linux干货 2017-10-03
  • 磁盘管理——MBR与GPT的分区

    一、硬盘的结构 这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如下图所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图中蓝色部分)。扇区是磁盘的最小组成单元,通常是512字节           &…

    Linux干货 2016-09-02
  • 计算机的组成介绍

    一,什么是计算机?     计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 二,发展历史 阶段 时期(年) 主要器件 特征 应用领域发展 第一代 1946—1958 电子管数字机 电子管,机…

    2016-10-29
  • Homework Week-11 加密、CA及DNS

    1、详细描述一次加密通讯的过程,结合图示最佳。 ——————————————————————&#…

    Linux干货 2016-11-01
  • 马哥教育网络班21期+第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)     1)开机后会进行POST(开机加电自检),加载BIOS,之后会根据BIOS上的boot  sequence(引导加载次序)找到第一个有引导程序的设备,找到MBR,bootloader(引导加载器)就安装在MBR内。M…

    Linux干货 2016-09-19