码迷,mamicode.com
首页 > 其他好文 > 详细

磁盘分区和文件系统格式化

时间:2015-08-26 00:02:21      阅读:524      评论:0      收藏:0      [点我收藏+]

标签:文件系统工具

文件系统相关概念:

    文件系统示意图:

    技术分享

    block(块):文件系统的基本存储单元,格式化时决定块大小,大小可以是有1024,2048,4096字节

    superblock(超级块):保存整个分区中的全局信息(有多少块组,每个块组有多少块,空闲inode,块大小等,至关重要,允许备份超级块)

    block group(块组):相当于分区下面的子分区,方便在大分区上快速查找可用空间,大小取决于块大小

    GDT:块组描述表,当前分区上每一个块组的块组名,每一个块组的边界信息(从哪个块起始和到哪个块结束)

     block Bitmap(块位图):置位0代表未曾使用,1代表已经被使用,用于加速查找空闲磁盘块(使磁盘不需要遍历查询整个磁盘寻找空闲磁盘块,只要扫描bitmap的置位即可)

    Inode中存储数据相关属性(权限,属主数组,inode号,大小,位置等),直接或间接指向文件存储到的磁盘块的位置

    inode bitmap(索引节点位图)分为inode位图和块位图,顾名思义,inode位图用于加速检索空闲inode

    目录:目录其实是一张表,每一行都是inode号码和目录下文件名称的对应条目


    那么我们如何在磁盘上增删文件呢?

        新建一个文件:例如/var/test.txt  1.扫描inode位图找到一个空闲inode并占用,根据/var对应的inode找到目录对应的磁盘块,找到目录条目,新建test.txt,并且将刚刚扫描到的空闲inode所引导它-----------如果往这个文件里存储数据,找空闲磁盘块,找到块位图,分配几个块给它,如果存完发现分配的块没用完则回收未分配的块


        删除一个文件:首先inode号码在位图上标记为空,目录上标记的文件名删掉,块位图上把文件原先存储的块标记为未使用,但是不会清空磁盘块上存储的数据,下次存储直接覆盖就行(数据删除可以恢复的原理),文件粉碎就是删除文件同时清空了磁盘块


    1.磁盘分区:

        分区工具:fdisk,cfdisk,sfdisk等,这里以fdisk为例

            fdisk:对于一块硬盘来讲,最多只能管理15分区;
            # fdisk -l [-u] [device...]

            # fdisk device

            子命令:管理功能
                p: print, 显示已有分区;
                n: new, 创建
                d: delete, 删除
                w: write, 写入磁盘并退出
                q: quit, 放弃更新并退出
                m: 获取帮助
                l: 列表所分区id
                t: 调整分区id
    TIPS:分区完成后需要通知内核重新加载分区表以识别新加入的分区
        查看内核是否已经识别新的分区:
            # cat /proc/partations

        通知内核重新读取硬盘分区表:
            partx -a /dev/DEVICE
                -n M:N

            kpartx -a /dev/DEVICE
                -f: force

            CentOS 5: 使用partprobe
                partprobe [/dev/DEVICE]

    2.文件系统:了解了基本概念,下面我们围绕ext3文件系统进行讲解

    ext3文件系统:相比之前的文件系统多了日志功能,日志功能可以帮助快速恢复数据,检测文件系统错误

    想要查看当前情况内核支持哪些文件系统,使用 cat /proc/filesystem命令

    格式化工具:

        1.mkfs

技术分享
            2.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 #: 为管理人员预留的空间占据的百分比;
            -O FEATURE[,...]:启用指定特性
                -O ^FEATURE:关闭指定特性

       

        3.mkswap:创建交换分区

            mkswap [options] device
                -L ‘LABEL‘
            前提是:磁盘分区时调整其分区的ID为82;


    查看类常用工具:
        1.blkid:块设备属性信息查看
            blkid [OPTION]... [DEVICE]
                -U UUID: 根据指定的UUID来查找对应的设备
                -L LABEL:根据指定的LABEL来查找对应的设备

技术分享

            UUID:统一全局标示符,用于唯一标识磁盘设备

        2.e2label:管理ext系列文件系统的LABEL
            # e2label DEVICE [LABEL]

            3.tune2fs:重新设定ext系列文件系统可调整参数的值
            -l:查看指定文件系统超级块信息;super block
            -L ‘LABEL‘:修改卷标
            -m #:修预留给管理员的空间百分比
            -j: 将ext2升级为ext3
            -O: 文件系统属性启用或禁用
            -o: 调整文件系统的默认挂载选项
            -U UUID: 修改UUID号;

        dumpe2fs:
            -h:查看超级块信息

    文件系统检测类工具:
        fsck: File System Check
            fsck.FS_TYPE
            fsck -t FS_TYPE
                -a: 自动修复错误
                -r: 交互式修复错误

                Note: FS_TYPE一定要与分区上已经文件类型相同;

        e2fsck:ext系列文件专用的检测修复工具
            -y:自动回答为yes;
            -f:强制修复;

本文出自 “明天过后” 博客,请务必保留此出处http://leeyan.blog.51cto.com/8379003/1688238

磁盘分区和文件系统格式化

标签:文件系统工具

原文地址:http://leeyan.blog.51cto.com/8379003/1688238

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!