linux磁盘管理及文件系统介绍

    硬盘是计算机必备组成部分,现在的硬盘分固态硬盘和传统机械硬盘,这里要介绍的是传统机械硬盘。

    一.硬盘最基本结构

        1.硬盘是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。每个磁道被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面,如下图所示:

blob.png

        2.MBR

        MBR:Master Boot Record,即硬盘的主引导记录,位于0磁道0扇区,大小512bytes。

        boot loader:引导加载器存放在MBR的前446bytes,用于引导操作系统。

        分区表:存放在boot loader之后的64bytes,用于存放分区信息。

        2bytes: 55AA(分区有效标识)

        

    二.磁盘的分区管理

       1. 由于分区表只有64bytes,一个分区占用大小16bytes,所以只能创建4个分区,通常使用 3主分区+1扩展(N个逻辑分区)  的分区模式。使用fdisk命令工具进行分区。

         fdisk -l [device…]   查看设备分区情况

     blob.png

        fdisk device    进入对设备磁盘进行操作

                                                                

blob.png

        常用的操作指令如下:

        d delete a partition  这是删除一个分区的动作;
        l list known partition types  是列出分区类型,以供我们设置相应分区的类型;
        m print this menu   是列出帮助信息;
        n add a new partition   添加一个分区;
        p print the partition table  列出分区表;
        q quit without saving changes  不保存退出;
        t change a partition's system id   改变分区类型;
        w write table to disk and exit  把分区表写入硬盘并退出;
      

        2.创建分区步骤:

            1).先输入n创建分区

            2).选择分区 e扩展分区 p主分区

            3).确认创建的分区号

            4).确认起始和终止柱面

            5).调整分区类型,L查看分区类型

            6).最后w把分区表写入硬盘并退出

            

         

        blob.png    

        3.把分区信息同步到内核

            partx -a /dev/DEVICE 

            blob.png

            上述错误是正常现象用cat /proc/partitions 查看内核中是否已存在该分区信息

                                                                   blob.png 

        三.文件系统

              在告知系统我的 partition 所在的起始与结束磁柱之后,之后则需要将 partition 格式化为我的操作系统认识的文件系统,常用的文件系统如下:

                Linux文件系统: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap

                swap: 交换分区

                光盘:iso9660

                Windows:fat32, ntfs

                Unix: FFS, UFS, JFS2

                网络文件系统:NFS, CIFS

                集群文件系统:GFS2, OCFS2

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

              linux默认都支持ext文件系统,当一个 ext2 的 filesystem 被建立时, 他拥有 superblock / group description / block bitmap / inode bitmap / inode table / data             blocks 等等区域。要注意的是,每个ext2 filesystem 在被建立的时候,会依据 partition 的大小, 给予数个 block group ,而每个 block group 就有上述的这些部分。整个             filesystem 的架构可以下图展现:

            

           blob.png

                 为了简化,假设一个文件系统仅有1个blockgroup。

                  block:用来储存数据的最小单元,Block 的大小为 扇区 的 2 的次方倍数。

                  inode:每个文件都对应着一个inode,inode存储着文件的元数据

                  SuperBlock:记录整个 filesystem 相关信息,block和inode的总量和使用情况等等。

                  Group Description:记录 blockgroup 由何处开始记录。

                  Block bitmap:记录哪个 block 有没有被使用。  

                  Inode bitmap:此处记录那个 inode 有没有被使用。

                  Inode table:记录每个inode number对应文件所对应的metadata(元数据)。

                  Data Blocks: block 数据存放区。 

 

            可以通过dumpe2fs  分区  查看上述描述的信息。

            

blob.png

               

             当我们新增一个文件或目录时:

                    1. 根据 inode bitmap / block bitmap 的信息,找到尚未被使用的 inode 与 block , 进而将档案的属性与数据分别记载进 inode 与 block ;

                    2. 将刚刚被利用的 inode 与 block 的号码 (number) 告知 superblock、inode bitmap、block bitmap 等,让这些 metadata 更新信息。

 

 

                    

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

(0)
zxhyzxhy
上一篇 2016-06-22 15:40
下一篇 2016-06-22 15:41

相关推荐

  • vim用法小结

    vim使用: 使用vi和vim的三种主要模式 : 命令模式,插入模式,扩展模式    扩展模式: w:写入磁盘文件 wq:写入并退出 x:写入并退出 q:退出 q!不存盘退出,即使更改都将丢失 r filename:读文件内容到当前文件中 w filenane: 将当前文件内容写入到另一个…

    Linux干货 2016-08-12
  • ansible

    Ansible 1、  特性: 模块化:调用特定的模块,完成特定任务; 基于Python语言实现部署简单:agentless; 支持自定义模块; 支持playbook;编排任务; ansible自身并不实现任何管理任务,它的所有管理任务,统统都使用模块完成;             &nb…

    Linux干货 2016-11-11
  • N21_第09周_shell脚本

    作业题目: 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; 预置条件: [root@zhouyong148 N21_09]# cat /etc/passwd root:x:0:0:root:/root:/b…

    Linux干货 2016-11-14
  • 第七周小练习

    1.创建一个10G分区,并格式为ext4文件系统 (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl (2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 fdisk /dev/sdb n p 1 +10G w mke2fs -t&nbs…

    Linux干货 2017-01-05
  • vim

    VIM是什么? Vim是从VI发展出来的一个文本编辑器,拥有许多丰富的功能,便于编程开发,在程序员中被广泛使用,是类Unix系统用户最喜欢的功能强大的跨平台文本文件编辑工具。 为什么要用VIM? vi编辑器是所有类UNIX系统下标准的编辑器,他是我们使用Linux系统不能缺少的工具。对于所有类UNIX系统的任何版本,vi编辑器是完全相同的。而vim是从VI发…

    2017-06-07
  • ​文件系统层级结构标准

    多数Linux发行版遵从FHS标准并且声明其自身政策以维护FHS的要求。 [1] [2] [3] [4] 然而,包括由自由标准小组成员在内开发的绝大多数发行版(截至2009年),并不完全执行建议的标准。
    当FHS创建之时,其他的UNIX和类Unix操作系统已经有了自己的标准,尤其是hier(7)文件系统布局描述。 自从第七版Unix(于1979年)发布以来已经存在,或是SunOS filesystem(7), [5] 和之后的Solaris filesystem(5)。 例如,Mac OS X使用如 /Library、 /Applications和/Users 等长名与传统UNIX目录层次保持一致。
    现在的Linux发行版包含一个/sys目录作为虚拟文件系统(sysfs,类似于 /proc,一个procfs),它存储且允许修改连接到系统的设备,然而许多传统UNIX和类Unix操作系统使用/sys作为内核代码树的符号链接。
    一些Linux系统如GoboLinux和Syllable Server使用了和FHS完全不同的文件系统层次组织方法。

    Linux干货 2016-10-17