linux之文件系统介绍

写在前面:当磁盘分区后需要格式化分区,操作系统才可以使用分区。会依据操作系统设置的文件属性/权限进行格式化成操作系统所支持的格式。

鸟哥linux书中讲到 文件系统是一个可被挂载的数据

文件系统的运作与操作系统的文件数据有关。如linux文件数据有属性、权限、实际数据,故而文件系统将文件属性和权限放置在inode中,实际数据或目录中的数据放置在block中,超级块super block是记录整个文件系统的信息,如:inode、block使用量剩余量总量,组个数。

  1. Ext2磁盘数据结构:

1、启动扇区:每个文件系统的最前面都有一个启动扇区可以安装引导程序。这样就可以在不同引导程序安装在不同的文件系统中了。而不用覆盖磁盘唯一的MBR,这样可以实现多重引导的环境。

2、block group:格式化时将分区为多个块组,每个块组都有独立的super block、inode、block等块。

1.superblock:是记录整个文件系统相关信息的地方,主要有

    1. block与inode的总量
    2. 未使用与已使用的block和inode数量
    3. inode与block的大小,inode是128bytes,block是1024、2048、4096bytes
    4. 文件系统的挂载时间、最近一次写入数据时间、检查磁盘的时间
    5. 一个validbit数值,已挂载为0,未挂载为1
    6. 每个block group中可能都有super block,块组0中必须有一个superblock,用户复制给其他块组并修复使用。同样其他块组中有superblock,也可以救援块组0.

2.组描述:主要记录每个blockgroup的开始与结束块号,以及superblock、数据块位图、索引块位图、inode表、block块的块号。

3.数据块位图:位图是位的序列,用二进制记录块的使用情况,0表示对应块是空闲,1表示对应块是占用。创建文件时会找空的block块记录文件内容,删除文件,其实就是把block位图和inode位图的相关位置成空,相当于不被占用,注意:数据还在,下次创建文件时,覆盖原已清空block位图和inode位图的文件的数据。

4.索引节点位图:位图是位的序列,用二进制记录inode的使用情况,0表示对应块是空闲,1表示对应块是占用。

5.索引节点表:记录文件的属性权限以及该文件实际数据放置在哪些block中的,inode表记录至少如下

    1. 该文件的访问模式(read/write/excute)
    2. 该文件的拥有者与组
    3. 该文件的大小
    4. 该文件的创建时间改变时间、最近一次读取的时间、最近一次修改的时间
    5. 该文件真正的指向
    6. 每个inode有128bytes
    7. 每个文件只占用一个inode
    8. 系统读取文件时需要先找到inode,并分析inode所记录的权限与用户是否相符合,若符合开始读取实际的block内容

    inode表需要记录的东西非常多,而每个inode的大小是128bytes。若每个块是4096bytes,每个块才记录32个inode。如果有个文件是500M,记录block需要花4bytes。大概有13万的block号需要记录,系统将inode记录block号码的区域定义了12个直接、1个间接、1个双简介、1个三间接记录区。

    6.数据块:用来放置文件的实际数据/目录的内容。支持的大小为1K、2K、4K

    1. block的大小与数量在格式化后就不可以改变了(除非重新格式化)
    2. 每个block中只能存放1个文件数据
    3. 当文件数据大于block的大小时,会占用多个block
    4. 当文件数据小雨block的大小时,磁盘空间会浪费

    使用dumpe2fs命令查看文件系统信息,dumpe2fs - dump ext2/ext3/ext4 filesystem information

    语法:dumpe2fs [ -bfhixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device

    选项:

    -b:打印文件系统中的坏块

    -f:强制显示所有信息

    -h:只显示超级块信息

    实例:

    [[email protected] ~]# df -h

    Filesystem      Size  Used Avail Use% Mounted on

    /dev/sda5       8.0G  2.1G  5.5G  28% /

    tmpfs           937M     0  937M   0% /dev/shm

    /dev/sda1       194M   27M  158M  15% /boot

    /dev/sda2       9.7G  1.5G  7.7G  16% /usr

    /dev/sdc4        99M   23M   72M  24% /home

    [[email protected] ~]# dumpe2fs /dev/sda1

    dumpe2fs 1.41.12 (17-May-2010)

    Filesystem volume name:   <none>       列出文件系统的名称<Label>,/etc/fstab中设备名称可以使用这个。我这里是none没有定义名称,可以使用e2label设置Label。

    Last mounted on:          /boot                 挂载点

    Filesystem UUID:          2f2da85e-f8c6-450b-bd82-99217ddc1ca4     设备的UUID,/etc/fstab也可以使用这个挂载

    Filesystem magic number:  0xEF53

    Filesystem revision #:    1 (dynamic)

    Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize

    Filesystem flags:         signed_directory_hash

    Default mount options:    user_xattr acl    默认挂载的参数

    Filesystem state:         clean                       这个文件系统是没有问题的

    Errors behavior:          Continue

    Filesystem OS type:       Linux

    Inode count:              51200                        inode总量

    Block count:              204800                       block总量

    Reserved block count:     10240                   保留块总量

    Free blocks:              171502                        空闲block总量

    Free inodes:              51162                          空闲inodes总量

    First block:              1

    Block size:               1024

    Fragment size:            1024

    Reserved GDT blocks:      256

    Blocks per group:         8192

    Fragments per group:      8192

    Inodes per group:         2048

    Inode blocks per group:   256

    Flex block group size:    16

    Filesystem created:       Thu Nov  9 23:11:17 2017

    Last mount time:          Sat Mar  3 05:57:03 2018

    Last write time:          Sat Mar  3 05:57:03 2018

    Mount count:              26

    Maximum mount count:      -1

    Last checked:             Thu Nov  9 23:11:17 2017

    Check interval:           0 (<none>)

    Lifetime writes:          32 MB

    Reserved blocks uid:      0 (user root)

    Reserved blocks gid:      0 (group root)

    First inode:              11

    Inode size:               128                        每个inode的大小

    Journal inode:            8                          日志inode号

    Default directory hash:   half_md4

    Directory Hash Seed:      0ccc6f7e-bdae-45d8-9a92-6b72b940045c

    Journal backup:           inode blocks

    Journal features:         journal_incompat_revoke

    日志大小:             4096k

    Journal length:           4096

    Journal sequence:         0x0000005c

    Journal start:            1

    Group 0: (Blocks 1-8192) [ITABLE_ZEROED]    第一个块组

    校验和 0x746b,2008个未使用的inode

    主 superblock at 1, Group descriptors at 2-2

    保留的GDT块位于 3-258

    Block bitmap at 259 (+258), Inode bitmap at 275 (+274)

    Inode表位于 291-546 (+290)

    3785 free blocks, 2010 free inodes, 6 directories, 2008个未使用的inodes

    可用块数: 4408-8192

    可用inode数: 39-2048

    Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED]

    校验和 0x2a64,2048个未使用的inode

    备份 superblock at 8193, Group descriptors at 8194-8194

    保留的GDT块位于 8195-8450

    Block bitmap at 260 (+4294959363), Inode bitmap at 276 (+4294959379)

    Inode表位于 547-802 (+4294959650)

    642 free blocks, 2048 free inodes, 0 directories, 2048个未使用的inodes

    可用块数: 15743-16384

    可用inode数: 2049-4096

    Group 2: (Blocks 16385-24576) [INODE_UNINIT, ITABLE_ZEROED]      块组2没有superblock。

    校验和 0xd123,2048个未使用的inode

    Block bitmap at 261 (+4294951172), Inode bitmap at 277 (+4294951188)

    Inode表位于 803-1058 (+4294951714)

    2048 free blocks, 2048 free inodes, 0 directories, 2048个未使用的inodes

    可用块数: 22529-24576

    可用inode数: 4097-6144

    Group 3: (Blocks 24577-32768) [INODE_UNINIT, ITABLE_ZEROED]

    校验和 0x4d3e,2048个未使用的inode

    备份 superblock at 24577, Group descriptors at 24578-24578

    保留的GDT块位于 24579-24834

    Block bitmap at 262 (+4294942981), Inode bitmap at 278 (+4294942997)

    Inode表位于 1059-1314 (+4294943778)

    188 free blocks, 2048 free inodes, 0 directories, 2048个未使用的inodes

    可用块数: 32581-32768

    可用inode数: 6145-8192

    仅展示了3个blockgroup块组。

    顺便介绍下e2label命令

    mane2label后:e2label - Change the label on an ext2/ext3/ext4 filesystem

    用法:e2label device label

    实例:

    原文地址:http://blog.51cto.com/12107790/2097514

    时间: 2024-08-29 14:29:51

    linux之文件系统介绍的相关文章

    Linux samba文件系统介绍

    samba 服务有2模块组成 smb:service message block --------progress:smbd port:445/tcp netbios:本地名称解析 --------progress:nmbd port:137/udp 138/udp 139/tcp 1.服务器安装 [[email protected] f1]# yum install samba 2.创建用户 [[email protected] ~]# useradd smbuser #不设置系统登入密码 [

    Linux文件系统介绍(转)

    文章转自:http://www.iteye.com/topic/816268 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基本原理.文件存储结构.软链接硬链接.和常见目录的介绍.相信有了这些知识对于深入的学习linux会有一定的帮助.文章例子主要是基于ubuntu发行版. 如有不对之处请大家多多指出. 1.Linux磁盘分区和目录 Linux发行版本之间的差别很少,差别主

    《Linux学习并不难》文件系统管理(1):xfs文件系统介绍

    18.1  <Linux学习并不难>文件系统管理(1):xfs文件系统介绍 xfs是一种高性能的64位日志文件系统,由Silicon Graphics在1993年为IRIX操作系统开发.2000年5月,以GNU通用公共许可证发布这套文件系统的源代码,之后被移植到Linux 内核上.xfs特别擅长处理大文件,同时提供平滑的数据传输. xfs文件系统主要有以下几点特性. 1.数据完全性 采用xfs文件系统,当主机发生宕机以后,由于文件系统开启了日志功能,所以磁盘上的文件不会遭到破坏.不论目前文件系

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

    MBR,是硬盘的主引导记录,处于0磁道0扇区,共有512字节,其中前446字节为BootLoader,用于引导系统启动,紧接的64字节用于标识分区,每16字节标识一个分区,故一个硬盘最多有4个主分区,若想使用更多的分区,可创建3个主分区,再创建一个扩展分区,然后在扩展分区上创建逻辑分区:最后的2个字节用于标识MBR是否有效. MBR对于磁盘非常重要,可使用下面命令对MBR进行备份: dd if =/dev/sda of=/mbrbackup bs=512 count=1 当MBR损坏时,可用下面

    ROS文件系统介绍--2

    ros初级核心教程--ROS文件系统介绍(原创博文,转载请标明出处--周学伟) 1.ROS文件系统介绍: 1.1.预备工作:本教程中我们将会用到ros-tutorials程序包,请先安装: 将 <distro> 替换成你所安装的版本(比如Jade.Indigo.hydro.groovy.fuerte等) [email protected]: sudo apt-get install ros-<distro>-ros-tutorials 1.2.快速了解文件系统概念 Packages

    Linux的文件权限和目录配置

    二.Linux的基本操作 2.1.Linux的文件权限和目录配置 2.1.1.Linux文件属性 以root身份登录后,执行“ls –al”将会出现如下内容: [[email protected] ~]# ls -al 总用量 44 dr-xr-x---. 5 root root 4096 8月   6 14:44 . dr-xr-xr-x. 17 root root 4096 7月 25 05:33 .. -rw-------. 1 root root 1426 7月 25 05:35 ana

    linux下文件的复制、移动与删除

    linux下文件的复制.移动与删除命令为:cp,mv,rm一.文件复制命令cp   命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)             cp [option] source1 source2 source3 ... directory   参数说明:   -a:是指archive的意思,也说是指复制所有的目录   -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身   -f:强制(force),

    Linux学习笔记四:Linux的文件搜索命令

    1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

    linux链接文件

    linux链接文件 链接有两种方式:硬链接和软链接. (一)软链接 软链接又叫做符号链接.基本命令为: [plain] view plaincopy ln -s sourcePlace newPlace 软链接可以链接任何文件或者目录,还可以链接不同文件系统的文件或者目录. 软链接的特点: 1.要建立链接时,newPlace必须是存在的:而当sourcePlace不存在时建立的连接是一个空链接,相当于空指针.空链接文件也可以操作,而且如果对空链接进行操作,比如 emptyFile是空链接,进行v