文件系统及其管理

Posted shenxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统及其管理相关的知识,希望对你有一定的参考价值。

文件系统及其管理

文件系统

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。
操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等
linux支持的文件系统:
    /lib/modules/`uname –r`/kernel/fs
    /proc/filesystems

文件系统的分类

Linux文件系统:ext2(Extended file system)、ext3、ext4、 xfs (SGI )、btrfs (Oracle )、reiserfs、jfs(AIX )、swap、iso9660(光盘)。
Windows文件系统:FAT32、exFAT、NTFS。
Unix文件系统:FFS(fast)、UFS(unix)、JFS2。
网络文件系统:NFS、CIFS。
集群文件系统:GFS2、OCFS2(oracle)
分布式文件系统:fastdfs、ceph、moosefs、mogilefs、glusterfs、Lustre。
未经处理或者未经格式化产生的文件系统:RAW
日志型文件系统: ext3, ext4, xfs, ...
非日志型文件系统: ext2, vfat
linux的虚拟文件系统:VFS
文件系统的选择:
    类型      支持限制    root分区      boot分区      注释
    xfs       500TB     YES           YES       默认分区格式
    ext4      50TB      YES           YES       兼容ext3、ext2
    brfs      50TB      YES           YES       技术预览
    gfs2     2-16个节点    YES         NO         集群文件共享存储

文件系统管理命令

mkfs
    分区后,才可对新建的分区创建文件系统
    mkfs - build a Linux file system
    mkfs用于在设备上建立Linux文件系统,通常是一个硬盘分区。
    mkfs [-V] [-t type] [fs-options] device [size]
         -t, --type=<type>      指定文件系统的类型,当不指定时,采用 ext2 文件系统。
         fs-options         所创建文件系统的选项参数。
         <device>           设备的全路径
         <size>             指定设备的块大小
         -V, --verbose      显示过程,specifying -V more than once will cause a dry-run

mke2fs
    mke2fs - create an ext2/ext3/ext4 filesystem
    mke2fs  [options]  device [blocks-count]
    options:
        -b<区块大小>:   指定区块大小,单位为字节
        -c: 检查是否有损坏的区块
        -f<不连续区段大小>:    指定不连续区段的大小,单位为字节
        -F: 不管指定的设备为何,强制执行mke2fs
        -i<字节>: 指定"字节/inode"的比例
        -N<inode数>: 指定要建立的inode数目
        -l<文件>: 从指定的文件中,读取文件西中损坏区块的信息
        -L<标签>: 设置文件系统的标签名称
        -m<百分比值>:   指定给管理员保留区块的比例,预设为5%
        -M: 记录最后一次挂入的目录
        -q: 执行时不显示任何信息
        -r: 指定要建立的ext2文件系统版本
        -R=<区块数>:   设置磁盘阵列参数
        -S: 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap
        -v: 执行时显示详细信息
        -V: 显示版本信息。
    device: 指定要创建的文件系统的分区设备文件名
    blocks-count:指定要创建的文件系统的磁盘块数量

mkfs.fs_type
    分区后,才可对新建的分区创建文件系统
    mkfs.fs_type - build a fs_type  Linux file system,其中fs_type代表多种文件类型。
    mkfs.fs_type可以是mkfs.btrfs、mkfs.cramfs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.fat、mkfs.minix、mkfs.msdos、mkfs.vfat、mkfs.xfs    
    上述每个命令都对应一个类型的文件系统,选项太多也就不再一一写出了,当用到那个时,具体看帮助。
    
blkid
    与之有关的文件/etc/fstab
    blkid - locate/print block device attributes,块设备属性查看
    blkid [options][<device>]
        -c <file>       从文件中读取,而不是从默认的缓存文件中读取 (-c /dev/null means no cache)
        -d              不编码不打印的字符
        -h              打印帮助信息
        -g              丢弃收集到blkid缓存信息
        -o <format>     输出格式,可以是value, device, export or full中的一个,默认为full
        -k              列出所有已经知道的文件系统或RAIDS并退出
        -s <tag>        显示指定的 tag(s),默认显示所有 tags
        -t <token>      用特定的象征来找到设备(NAME=value pair)
        -l              仅查找第一设备,配合使用的是-t token选项
        -L <label>      转换LABEL为设备名
        -U <uuid>       转换UUID为设备名
        -V              输出版本
        <dev>           指定要检查的设备(default: all devices)
        -p              检查低水平的超级块 (bypass cache)
        -i              收集关于I/O限制的信息
        -S <size>       重写设备尺寸
        -O <offset>     检查给定的偏移
        -u <list>       过滤(e.g. -u filesystem,raid)
        -n <list>       通过文件系统过滤 (e.g. -n vfat,ext3)

findfs
    findfs - find a filesystem by label or UUID,通过label或uuid来查找文件系统
    findfs {LABEL,UUID,PARTUUID,PARTLABEL}=<value>

tune2fs
    tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems,重新设定ext系列可调整的参数。
    tune2fs [options] device
        -c: 调整最大加载次数;
        -C: 设置文件系统已经被加载的次数;
        -e: 设置内核代码检测到错误时的行为;
        -f: 强制执行修改,即使发生错误;
        -i: 设置相邻两次文件系统检查的相隔时间;
        -j: 为“ext2”文件系统添加日志功能,将其转换为“ext3”文件系统;
        -l: 显示文件超级块内容;
        -L: 设置文件系统卷标;
        -m: 显示文件保留块的百分比;
        -M: 设置文件系统最后被加载到的目录;
        -o: 设置或清除文件系统加载的特性或选项;
        -O: 设置或清除文件系统的特性或选项;
        -r: 设置文件系统保留块的大小;
        -T: 设置文件系统上次被检查的时间;
        -u: 设置可以使用文件系统保留块的用户;
        -U: 设置文件系统的UUID。

dumpe2fs
    dumpe2fs - dump ext2/ext3/ext4 filesystem information
    dumpe2fs [options] <device>
        -b: 打印文件系统中预留的块信息;
        -ob<超级块>:   指定检查文件系统时使用的超级块;
        -OB<块大小>:   检查文件系统时使用的指定的块大小;
        -h: 仅显示超级块信息;
        -i: 从指定的文件系统映像文件中读取文件系统信息;
        -x: 以16进制格式打印信息块成员。

e2label
    e2label - Change the label on an ext2/ext3/ext4 filesystem
    e2label device [ new-label ]

fsck
    常用于发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean” 的情况。注意,一定不要在挂载状态下修复。
    fsck - check and repair a Linux filesystem
    fsck [-lrsAVRTMNP] [-C [fd]] [-t fstype] [filesystem...]  [--] [fs-specific-options]
        -a: 自动修复文件系统,不询问任何问题;
        -A: 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
        -N: 不执行指令,仅列出实际执行会进行的动作;
        -P: 当搭配"-A"参数使用时,则会同时检查所有的文件系统;
        -r: 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
        -R: 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;
        -s: 依序执行检查作业,而非同时执行;
        -t<文件系统类型>: 指定要检查的文件系统类型;
        -T: 执行fsck指令时,不显示标题信息;
        -V: 显示指令执行过程。
    返回数值所代表的信息:
        0       没有错误
        1       文件系统错误纠正
        2       系统应该被重启
        4       系统错误,未修正
        8       操作错误
        16      用法或语法错误Usage or syntax error
        32       通过用户请求检查缓存
        128      共享存储错误

fsck.fs_tyoe
    和mkfs.fs_tpe类型。fy_type代表许多文件系统。
    fsck。fs_type用于针对不通的文件系统进行检查和修复
    fsck。fs_type可以是fsck.btrfs、fsck.cramfs、fsck.ext2、fsck.ext3、fsck.ext4、fsck.fat、fsck.minix、fsck.msdos、fsck.vfat、fsck.xfs
    同样由于选项太多就不一一描述了,用到那个具体查看man帮助等。

e2fsck
    e2fsck - check a Linux ext2/ext3/ext4 file system
    e2fsck [options] <device>
        -p                      自动修复 (no questions)
        -n                      对文件系统不做更改
        -y                      设置对所有文件回答为YES
        -c                      检查的坏块并添加到坏块列表中
        -f                      强迫执行检查,即使会把文件系统清空
        -v                      显示详情
        -b superblock           使用更改的超级块儿
        -B blocksize            当查找超级块儿时指定块儿大小
        -j external_journal     设置外部日志的位置
        -l bad_blocks_file      添加到坏块列表中
        -L bad_blocks_file      设置坏块儿列表

df
    df - report file system disk space usage,查看文件系统磁盘空间使用情况。
    df [OPTION]... [FILE]...
        -a, --all               显示所有文件系统
        -B, --block-size=SIZE   在显示前通过SIZE来测量尺寸大小; e.g., ‘-BM‘ prints sizes in units of 1,048,576 bytes,
        --direct            显示文件状态
        --total             显示总结
        -h, --human-readable    用可读性格式显示尺寸大小(e.g., 1K 234M 2G)
        -H, --si                用1000的格式而不是1024的格式显示
        -i, --inodes            显示节点信息
        -k                      同 --block-size=1K
        -l, --local             仅显示本地文件系统
        --no-sync           在得到有用信息之前不调用同步功能(default)
        --output[=FIELD_LIST]   使用被FLELD_LIS定义的格式输出,或如果FIELD_LIST被忽略就输出所有区域。
        -P, --portability       使用可移植性的系统接口POSIX输出格式 
        --sync              在取得信息前,调用同步功能
        -t, --type=TYPE         限制文件系统列出的类型
        -T, --print-type        打印文件系统类型
        -x, --exclude-type=TYPE     不限制文件系统的列出类型

以上是关于文件系统及其管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础之文件系统简介及其系统管理工具

LFS——软件包及其功能

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

CentOS Linux 6版本系统命令及其使用详解

3简述Linux支持哪些文件系统及其特点

博客管理与文章发布系统-第三方模块及其用法Part1