文件系统概念:

文件系统是指文件的组织与管理结构,是一个有关于磁盘中各种有用信息的记录——即是保存以下信息的结构记录表
当前所使用磁盘的容量信息
磁盘的可用信息,包括已占用和剩余的空间;

文件与目录的属性;

文件与目录的在磁盘中确切地址与链接信息。
一句话总结:文件系统就是管理这块(分区)文件的机制或者说是组织方式。

文件系统类型:

Linux支持多种文件系统
·ext2:Linux基本文件系统
·ext3:ext2的增强版本
·ext4:ext文件系统的第四个版本()
·swap:交换文件系统
·nfs:网络文件系统,适合Linux或Unix机器间共享
·smbfs:适合Linux或Unix和windows机器间共享
·vfat:windows早期文件系统
·ntfs:windows默认文件系统,功能非常强大
·iso9660:CD光盘的只读文件系统
·GFS:google专用存储海量搜索数据而设计的专用文件系统
·reiserfs:早期linux使用的日志功能的文件系统
 

文件系统

Linux内核采用虚拟文件系统层(VFS),通过该中间层对各类文件系统提供了完美的支持。对于用户来说,这些文件系统几乎是透明的,用户不需要关心底层文件系统的具体实现。
 
VFS 基本结构
  ·super block
  ·dentry
  ·inode
  ·data
 
super block (超级块)
  存储文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式。文件系统中第一个块被称为超级块。
   将物理相邻的若干个扇区称为了一个块。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是块(block)。块越大存储性能越好,但空间浪费严重。块越小性能相对越低,但空间利用率高。
Inode 索引节点(元数据)
  保存的其实是实际的数据(文件内容)的一些信息,这些信息称为“元数据”(也就是对文件属性的描述)。例如:文件大小,文件拥有者(owner),文件属组(group),文件权限,文件读取或修改的时间戳,链接数量,同时记录此文件的数据所在的 block 号码,文件类型等等。
    注意,数据分成:元数据+数据本身
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般每2KB就设置一个inode。一般文件系统中很少有文件小于2KB的,所以预定按照2KB分,一般inode是用不完的。
  inode号是唯一的,表示不同的文件。其实Linux内核访问文件都是通过inode号来进行的,所谓文件名仅仅是inode号的别名,方便用户识别和使用的。当我们打开一个文件的时候,首先,系统找到这个文件名对应的inode号;然后,通过inode号,在inode table中找到inode信息,最后在inode信息中找到文件数据所在的block,接着就可以处理文件数据了。
  当创建一个文件(包括目录)的时候,就给文件分配了一个inode。inodes最大数量就是文件的最大数量。
  一个文件 肯定会占用一个inode,如果是空文件,就不会占用block,如果不是空文件,肯定会占用block;
  一个文件系统内的文件总数跟inode总数一致。
dentry 目录项
  目录项是描述文件的逻辑属性,只存在于内存中,并没有实际对应的磁盘上的描述,更确切的说是存在于内存的目录项缓存,为了提高查找性能而设计。注意不管是目录还是最终的文件,都是属于目录项,所有的目录项在一起构成一颗庞大的目录树。例如:打开一个文件/opt/data/a.txt,那么/、opt、data、a.txt都是一个目录项,VFS在查找的时候,根据一层一层的目录项找到对应的每个目录项的inode,那么沿着目录项进行操作就可以找到最终的文件。
注意:目录也是一种文件(所以也存在对应的inode)。打开目录,实际上就是打开目录文件。
data 数据
  记录文件的实际内容,若文件太大时,会占用多个 block
 
 
链接文件:
  硬链接:不同的文件名对应相同的inode
    ln a.txt a.hard
不能跨文件系统
  软链接:ln -s a.txt a.link
可以跨文件系统
 

创建文件系统:

创建完整的文件系统的四个步骤
  ·建立分区
  ·格式化分区建立文件系统
  ·检验文件系统
  ·装载文件系统
 
fdisk命令建立分区
  用途:在交互式的操作环境中管理磁盘分区
  格式:fdisk [磁盘设备]
  交互模式中的常用指令
    ·m:查看操作指令的帮助信息
    ·p:列表查看分区信息
    ·n:新建分区
    ·d:删除分区
    ·t:变更分区类型
    ·w:保存分区设置并退出
    ·q:放弃分区设置并退出
 
mkfs命令
  用途:Make Filesystem,创建文件系统(格式化)
  格式:mkfs -t 文件系统类型 分区设备
 
fsck命令
  用途:file system check,诊断修复文件系统
  格式:fsck -t 文件系统类型 分区设备
  -y:自动输入yes(与-a相同)
 
 
文件系统使用:
  挂载文件系统:
    mount命令:
      用途:挂载文件系统、ISO镜像到指定文件夹
      mount [ -t 类型 ] [ -o 选项 ] 设备名 挂载点目录
  卸载文件系统:
    umount命令:
      用途:卸载已挂载的文件系统
      格式:umount 存储设备位置
      umount 挂载点目录
eg:
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18244476 1908296 15402756 12% /
tmpfs 953140 0 953140 0% /dev/shm
/dev/sda1 194241 38685 145316 22% /boot
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 1166880 56419 1110461 5% /
tmpfs 238285 1 238284 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot

  

验证:

 1.创建小分区

[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u'). Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000215f9 Device Boot Start End Blocks Id System
/dev/sdb1 1 2 16033+ 83 Linux
/dev/sdb2 3 1308 10490445 83 Linux
/dev/sdb3 1309 1435 1015808 83 Linux Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (1435-2610, default 1435):
Using default value 1435
Last cylinder, +cylinders or +size{K,M,G} (1435-2610, default 2610): +10G

  2.创建文件系统

[root@localhost ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
/dev/sdb1 is mounted; will not make a filesystem here!
[root@localhost ~]# mount /dev/sdb1 /tmp/sdb1/
mount: /dev/sdb1 already mounted or /tmp/sdb1/ busy
mount: according to mtab, /dev/sdb1 is already mounted on /tmp/sdb1

  3.创建空文件

  

while :
do
touch /tmp/sdb1/a${RANDOM}
done
快速使用block:
while :
do
cat /etc/passwd >> /test/a.txt
done

[root@localhost ~]# while :
> do
> touch /tmp/sdb1/ a${RANDOM}
> done touch: cannot touch `/tmp/sdb1/a31677': No space left on device
touch: cannot touch `/tmp/sdb1/a2591': No space left on device
touch: cannot touch `/tmp/sdb1/a19649': No space left on device
  4.使用df/df -i 查看空间使用情况;
[root@localhost ~]# df -i /dev/sdb1
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 4016 4016 0 100% /tmp/sdb1
[root@localhost ~]# df /dev/sdb1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 14497 14497 0 100% /tmp/sdb1
  5.inode全使用,block还有空闲的,这时不能创建新文件了,但是还可以增加文件内容;
  inode还有空闲,block全使用,这时可以创建新文件,但是不能增加文件内容。
 

管理交换空间:

  虚拟内存也叫交换空间
  短时间缓解物理内存的不足;但不能代替物理内存
mkswap命令
  用途:Make Swap,创建交换文件系统
  格式:mkswap 分区设备
  -L:设置交换分区文件系统标签
swapon 分区设备 ----激活交换分区
swapoff 分区设备----停用交换分区
eg:
[root@localhost ~]# mkswap /dev/sdb5
Setting up swapspace version 1, size = 2006929 kB
[root@localhost ~]# swapon /dev/sdb5
[root@localhost ~]# free | grep -i swap
Swap: 3008456 0 3008456
[root@localhost ~]# swapoff /dev/sdb5
[root@localhost ~]# free | grep -i swap
Swap: 1048568 0 1048568

  

【Linux】管理文件系统的更多相关文章

  1. linux管理文件系统指令

    就一个基本的linux系统而言,其计算机硬盘只能有三个分区:一个交换分区(用于处理物理内存存不下的信息),一个包含引导转载程序的内核的启动分区,一个根文件系统分区,后两个常采用 ext3文件系统 与e ...

  2. 《Linux命令行与shell脚本编程大全》 第八章管理文件系统

    8.1 探索linux文件系统 8.1.1 基本的Linux文件系统 ext:最早的文件系统,叫扩展文件系统.使用虚拟目录操作硬件设备,在物理设备上按定长的块来存储数据. 用索引节点的系统来存放虚拟目 ...

  3. Linux及文件系统基本介绍

    Linux及文件系统基本介绍 1   互联网行业现状 在服务器端市场: 超级计算机 2014年11月的数据显示前500系统中的485个系统都在运行着 Linux 的发布系统,而仅仅只有一台运行着 Wi ...

  4. [20150925]Linux之文件系统与SHELL

    Linux之文件系统与SHELL 文件系统介绍 ext2/ext3/ext4 Ext2是GNU/Linux系统中标准的文件系统.这是Linux中使用最多的一种文件系统,它是专门为Linux设计的,拥有 ...

  5. 文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解

    阅读此文,必须具备知识点:<Linux 查看磁盘分区.文件系统.使用情况的命令和相关工具介绍><实例解说 fdisk 使用方法><合理规划您的硬盘分区><Fe ...

  6. linux ext2 文件系统学习

    Linux  ext2文件系统理解 硬盘组成: 硬盘由多个圆形硬盘片组成.按照硬盘片能够容纳的数据量分为单盘和多盘.硬盘的数据读取主要靠机械手臂上的磁头,在机械手臂上有多个磁头.机械手臂不动硬盘旋转一 ...

  7. linux下文件系统类型的学习

    1. 以超级用户权限登陆Linux,进入  /lib/modules/2.6.32--504.el6.x86_64/kernel/fs目录执行 ls 命令(不同Linux发行版本的Fs目录有些不同你可 ...

  8. linux的文件系统及节点表

    linux的文件系统及节点表 一  linux的文件系统1 我们都知道当我们安装linux时会首先给系统分区,然后我们会把分区格式化成EXT3格式的文件系统.那么在linux系统中还有没有其他的文件系 ...

  9. linux虚拟文件系统2

    转自:http://rstevens.iteye.com/blog/849413 一.概述 Linux 文件系统是相当复杂的,本文只分析虚拟文件系统的实现,对具体的文件系统不涉及. 即使是虚拟文件系统 ...

随机推荐

  1. hibernate对象的三种状态及转换

    一.hibernate对象三种状态 Transient(瞬时状态):没有session管理,同时数据库没有对应记录 举例:new 出来的对象还没有被session管理,此时该对象处于Transient ...

  2. 平台支持的从经典部署模型到 Azure Resource Manager 的 IaaS 资源迁移

    本文介绍如何才能将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Resource Manager 部署模型. 用户可以阅读有关 Azure Resource Manager 功能和优点的更多 ...

  3. 爬虫IP被禁的简单解决方法——切换UserAgent

    [转载]Python爬虫之UserAgent 用到的库 https://github.com/hellysmile/fake-useragent

  4. 运维监控---企业级Zabbix详解_【all】

    基础LNMP环境搭建 Linux 下LNMP环境搭建 下载Zabbix 链接:https://pan.baidu.com/s/1n36esVyYAKstwnFopbV2sg 密码:izll 创建zab ...

  5. Power shell 复制文件到远程主机

    昨天因为要复制文件到多个服务器上,感觉一个个复制很麻烦,我就想用Power shell 命令来完成这个任务.具体代码如下: $servers= 'server1' ,'server2' $userna ...

  6. 最新php环境搭建,2017年最新PHP环境搭建

    使用PHPWAMP8.8.8.8IN纯绿色集成环境搭建php网站很方便,哪怕你系统没安装vc.系统dll丢失或者损坏的时候,phpwamp也可以正常启动,是个很强大的php套件. php环境搭建,支持 ...

  7. nlog 2.0 强制转换使用 4.0 版本

    今天下午研发代码,发现调用其他小组研发的代码,发现其中有使用nlog功能,但nlog版本是2.0 ,而我的项目使用4.0 版本 导致部分功能不能使用,故在web配置文件中加入以下代码即可 <de ...

  8. ZT 打工者买彩票中1000万 5年后变逃犯身上剩80元

    打工者买彩票中1000万 5年后变逃犯身上剩80元   2014-01-07 08:22 来源:都市快报 我有话说 挥霍—— 从800万到80元 在湖南永州零陵区富家桥镇茶叶湾村,陈某是不折不扣的名人 ...

  9. CRF++ 如何制定自己的特征模板

    工具的简单介绍 对该工具的安装及介绍我这里就不再赘述,请参考官方文档或者国内一些翻译后的中文版.也还比较清楚. 我只介绍一下crf++在命名实体识别中的一些用法,这些都建立在你了解crf++的一些最基 ...

  10. POI读取单元格信息及单元格公式

    Java操作EXCEL的利器一般都是POI和JXL,鄙人只是POI的忠实粉丝.(其实我是没有用过JXL). 现在大多数的excel都是07以上的版本,所以我一般是用07的基础上使用POI. 一.读取单 ...