1. 文件系统特性(索引式文件系统)

文件系统格式化后block group的组成部分:

super block:记录文件系统整体信息,inode和data block的总量,使用量,剩余量,以及文件系统格式与相关信息,一般大小为1024bytes.

inode table:记录文件的权限与属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码,每个inode默认固定大小为128bytes。

data block:记录文件的实际内容,若文件太大,会占用多个block,ext2文件系统所支持的block大小有1k,2k,4k三种

filesystem description:描述了每个block group的开始于结束的block号码

block bitmap:记录了使用的和未使用的block号

inode bitmap:记录了使用的和未使用的inode号

【N】文件系统格式化的过程会中就已经把inode与block规划好了,以便操作系统识别使用,除非重新格式化,或者resize2f更新文件系统

[root@Darren ~]# dumpe2fs /dev/sda3

dumpe2fs 1.41.12 (17-May-2010)

Filesystem volume name:

Last mounted on:          /

Filesystem UUID:          7b6aa9b8-aa0d-4497-ac09-d423c035d50a

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 large_file 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:              479552       --inode总数

Block count:              1914624     --block总数

Reserved block count:     95731

Free blocks:              968312      --剩余block

Free inodes:              365275      --剩余inode

First block:              0

Block size:               4096    --每个block大小

Fragment size:            4096

Reserved GDT blocks:      467

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         8128

Inode blocks per group:   508

Flex block group size:    16

Filesystem created:       Wed Aug  3 23:22:08 2016

Last mount time:          Thu Nov 10 15:49:44 2016

Last write time:          Wed Aug  3 23:31:03 2016

Mount count:              32

Maximum mount count:      -1

Last checked:             Wed Aug  3 23:22:08 2016

Check interval:           0 ()

Lifetime writes:          9 GB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               256    --每个inode的大小

Required extra isize:     28

Desired extra isize:      28

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      0d3fdc26-38ed-4b93-8a85-ec305215a827

Journal backup:           inode blocks

Journal features:         journal_incompat_revoke

Journal size:             128M

Journal length:           32768

Journal sequence:         0x00008bac

Journal start:            1

Group 0: (Blocks 0-32767) [ITABLE_ZEROED]

Checksum 0x5873, unused inodes 0

Primary superblock at 0, Group descriptors at 1-1

Reserved GDT blocks at 2-468

Block bitmap at 469 (+469), Inode bitmap at 485 (+485)

Inode table at 501-1008 (+501)

21078 free blocks, 0 free inodes, 1315 directories

Free blocks: 11080-11099, 11144-11199, 11227, 11764-11829, 11831-11883, 11886-32767

Free inodes:

2.与目录树的关系

目录:

linux下ext2文件系统新建一个目录会分配一个inode和至少一个block,inode记录该目录相关的属性和权限,还有分配到那block号码,而block则是记录该目录下文件名与该文件名占用的inode号

文件:

linux下ext2文件系统新建一个文件会分配一个inode和相对该文件大小的block数量的文件。

目录树读取:

系统通过挂载的inode号(文件系统最顶层的inode号由2开始),找到inode的内容,根据inode内容读取目录的block内的文件名和数据,再一层层找到文件数据。

[root@Darren ~]# ls -lid / /etc /etc/passwd

2 dr-xr-xr-x. 22 root root  4096 11月 10 15:49 /

130052 drwxr-xr-x  98 root root 12288 11月 10 17:39 /etc

137728 -rw-r--r--   1 root root  1532 11月 10 16:27 /etc/passwd

3.日志文件系统

日志文件系统就是一种具有故障恢复能力的文件系统,所谓日志就是一种特殊的文件,它会在一个循环的缓冲区内记录文件系统的修改,然后将其定期提交到文件系统。一旦系统发生崩溃,日志文件就会起到一个检查点的作用,用于恢复未保存的信息,防止损坏文件系统元数据。

ext2不支持日志文件系统,从ext3开始支持。

把ext3升级到ext4:

(1)卸载umount

(2)[root@Darren ~]# tune2fs -O extents,uninit_bg,dir_index /dev/sdb1

(3)[root@Darren ~]# e2fsck /dev/sdb1

4.其他linux支持的文件系统

linux支持哪些文件系统:

[root@Darren ~]# ls -l /lib/modules/$(uname -r)/kernel/fs

系统已经加载到内核中的文件系统:

[root@Darren ~]# cat /proc/filesystems

5.连接文件:ln

硬连接:通过文件系统的inode连接产生新文件名,而不是产生新文件,连接文件和源文件的inode一样,不占用inode和block。

限制:

不能跨分区建立硬连接;

不能连接目录;

软连接:相当于windows的快捷方式,是一个独立的新的文件,指向源文件,连接文件和源文件的inode不同,占用inode和block。

例:

[root@Darren tmp]# touch file1.txt

[root@Darren tmp]# ln file1.txt file2.txt     --创建硬链接

[root@Darren tmp]# ln -s file1.txt file3.txt   --创建软链接

[root@Darren tmp]# ls -il

3508 -rw-r--r-- 2 root root    0 Nov  8 01:08 file1.txt

3508 -rw-r--r-- 2 root root    0 Nov  8 01:08 file2.txt

3514 lrwxrwxrwx 1 root root    9 Nov  8 01:13 file3.txt -> file1.txt

硬连接文件file2.txt与原文件file1.txt 的inode节点相同,然而符号连接文件的inode节点不同。

[root@Darren tmp]# echo 'This is test' >> file1.txt

[root@Darren tmp]# cat file1.txt

This is test

[root@Darren tmp]# cat file2.txt

This is test

[root@Darren tmp]# cat file3.txt

This is test

[root@Darren tmp]# rm file1.txt    --删除file1.txt

[root@Darren tmp]# ls -li

3508 -rw-r--r-- 1 root root   13 Nov  8 01:20 file2.txt

3514 lrwxrwxrwx 1 root root    9 Nov  8 01:13 file3.txt -> file1.txt

[root@Darren tmp]# cat file2.txt  --硬链接无影响

This is test

[root@Darren tmp]# cat file3.txt  --软链接失效

cat: file3.txt: No such file or directory

总结:

(1)删除符号连接f3,对f1,f2无影响;

(2)删除硬连接f2,对f1,f3也无影响;

(3)删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;

(4)同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

[root@Darren tmp]# mkdir -p dir1

[root@Darren tmp]# ln dir1/ dir2/

ln: target `dir2/' is not a directory: No such file or directory

[root@Darren tmp]# ln dir1/ dir2       --目录是不能做硬链接的

ln: `dir1/': hard link not allowed for directory

[root@Darren tmp]# ln -s dir1/ /tmp/dir2   --创建目录的软链接

[root@Darren tmp]# ls -li

total 20

3514 drwxr-xr-x 2 root root 4096 Nov  8 01:41 dir1

3617 lrwxrwxrwx 1 root root    5 Nov  8 01:55 dir2 -> dir1/

linux系统中文件的特性,linux文件系统特性相关推荐

  1. linux搜索关键字并定位,Linux系统中文件定位与查找(示例代码)

    Linux系统中文件查找 关键词 文件查找 | find | locate 本文主要介绍有关文件查找的两个命令--find和locate,以及压缩打包的命令--compress, gzip,bzip2 ...

  2. Linux系统文件夹权限475,linux系统中文件的特殊权限

    在上篇博客中叙述linux系统中文件的基本属性,见http://vinsent.blog.51cto.com/13116656/1951574,这篇给大家带来linux系统文件的特殊权限,包括SUID ...

  3. linux中600是什么权限,linux系统中文件的权限

    查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表 ...

  4. linux检测到文件更新执行,一种更新Linux系统中文件的方法及操作方法专利_专利查询 - 天眼查...

    1. 一种更新Linux系统中文件的方法,其特征在于,包括在基于Linux系统的电视的主 程序中设计一个功能接口,该功能接口在电视系统检测到外部存储设备接入时被调用,所 述功能接口实现以下内容: A: ...

  5. 快速容易地处理Windows、Mac 和Linux系统中文件路径问题

    作者:景略集智 链接:https://www.zhihu.com/question/48755767/answer/423475686 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  6. linux系统创建操作系统用户,linux系统中用户组创建管理linux操作系统 -电脑资料...

    用户组管理包括对用户组创建,删除,修改及查看组操作命令,下面我们一起来看看希望本文章对各位同学会有所帮助哦, 1,创建组 groupadd test 增加一个test组 2,修改组 groupmod ...

  7. Linux系统中文件系统管理

       一.文件系统的基本组成和文件系统结构    1.Linux 系统的基本组成 图例:    Linux系统由Linux内核和一系列GNU库及程序组成.根据其所处的位置,从内向外依次分为:内核.运行 ...

  8. linux nfs系统客户端,Linux系统中挂载共享目录NFS文件系统客户端安装与配置

    NFS服务简介      NFS是Network  File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡 ...

  9. linux系统中文件的几种类型

    Linux系统是以文件的形式来进行管理的.Linux文件类型常见的有:普通文件.目录.字符设备文件.块设备文件.符号链接文件等,如果想了解这方面知识的弟兄,就进来了解了解. Linux系统不同于win ...

  10. linux系统中定时器使用方法,Linux下实现定时器Timer的几种方法

    使用sleep()和usleep() 其中sleep精度是1秒,usleep精度是1微妙,具体代码就不写了.使用这种方法缺点比较明显,在Linux系统中,sleep类函数不能保证精度,尤其在系统负载比 ...

最新文章

  1. 精简版开发工具使用手记(图解)
  2. STM32时钟系统学习
  3. 谋哥:App自推广这个概念就由我来创立了!
  4. 银行核心系统之应用集成
  5. 用ThreadLocal代替单例模式synchronized的使用
  6. 语言生日创意代码_BlenderOSL代码编程
  7. PyTorch学习笔记(二):PyTorch简介与基础知识
  8. (转)WinForm中的各种表格控件
  9. SSH 登录失败:Host key verification failed 的处理方法
  10. ssh连接服务器协议错误,Xmanager发生SSH协议错误怎么办
  11. python爬取酷狗音乐歌词_python爬虫教程:爬取酷狗音乐
  12. ★★★HEU_KMS_Activator_v7.5 (附详细说明文档)
  13. java closed_Java开发网 - ZipFile closed是什么错误?
  14. 1和new Number(1)的区别
  15. macOS、Shimo下载使用及路由配置
  16. 对称矩阵特征向量正交推导
  17. 微信小程序 | 小程序WXSS-WXML-WXS
  18. 基于百度飞桨的单/多镜头行人追踪(非官方Baseline)
  19. 2022年美容师(中级)操作证考试题库及模拟考试
  20. java三个技术平台_java三大技术平台是什么

热门文章

  1. cp 过程中目录突然挂了_怎么解决管材激光切割机切管过程中出现的过烧及挂渣...
  2. android最新设计规范,Android应用未来的设计规范
  3. java程序启动后就进行了7次younggc_程序员如何优化 Java GC
  4. java webservice 身份验证_java-Http基本身份验证不适用于Spring WS和WebS...
  5. linux 内核io操作,关于Linux内核中的异步IO的使用
  6. java seekbar_SeekBar的基本使用方法
  7. Win10系统电脑不会一键还原系统怎么解决
  8. Navicat导入数据库数据结构sql报错datetime(0)
  9. IoT -- (二) 物联网传感器介绍
  10. java同样作用的方法_Java的接口用途和方法