首页 > 代码库 > 磁盘及文件管理系统入门(二)

磁盘及文件管理系统入门(二)

目录:

    1.添加新分区
    2.分区创建工具:parted、mkfs、e2fs
    3.目录
    4.swap交换文件系统
    5.文件系统日志
    6.文件的路径访问

Linux磁盘及文件系统管理初步(02)

一.添加新分区

1.fdisk /dev/sda //或者parted 

2.cat /proc/partitions //查看是否被内核识别分区

centos5:partprobe [device]

centos6,7: partx,kpartx

partx -a [device] //可能需要执行两次

kpartx -af [device]

使用parted 分区,不用w,直接保存,而且内核会自动识别

partx -a /dev/sda

3.mkfs

4.mount


二.分区创建工具;parted,mkfs,e2fs

格式化:低级格式化,高级格式化

低级格式化:主要用于划分磁道//分区之前进行,划分磁道

高级格式化:分区之后对分区进行,创建文件系统

元数据:存放文件的属性信息,size,mode,user,timestamp,不包含文件名

//文件名是在目录上存放的

元数据区://高级格式化之后的

文件元数据:inode(index node)

//大小,权限,属主属组,时间戳,...

//每个文件的元数据(inodde)都是一样的,只是,里面填充的内容是不一样的

文件的内容和元数据是分开存放的

//元数据内容是由固定格式的,而文件的内容是不一定的

高级格式化:

把磁盘分割成两个部分:

    1:元数据区 //存放文件的属性信息,大小,mode等,不包括文件名

        //每个文件的苑数据区的格式都是一样的,知识填充内容不一样

//这个格式的数据空间就叫做inode(index node)

//数据块指针

    2:数据区 //存放真实的数据

//按照块存储的,比如划分我4096Kb/块

//不定时的增加和删除文件,导致一个文件分配的磁盘块不连续,-->碎片

//块是最小分配单元,windows 4096字节/块

查找文件,只能够先找元数据

链接文件:存储数据块指针的空间当中存储的是真实文件的访问路径;

自己并不占据磁盘块,只占用元数据区

设备文件:存储数据块指针的空间当中存储的是设备号(major,minor)

磁盘快索引:bitmap index

标识某磁盘快是否为空闲状态

//按位对应,索引0和1区分,

//inode也有索引,

磁盘图:

|----|-----------------------------|

|----|   |

|----| block   |

|----|   |

|----|-----------------------------|

|    | block bitmap   |

|____|_____________________________|

左侧从上往下:inode (index node) // inode bitmap

ls -i //查看inode编号

super block:

三.目录

/var/log/messages

//先去找 根的inode,根的inode是自己发现的,根的inode指向文件的一个数据

//通过根找到根的子级目录和文件的 var和var的对应inode

//找到var对应的磁盘快,块中描述着,var的子级目录和文件,找到message文件名和对应的inode的对应关系

free  //每次都要查找的话,比较慢因此会建立缓存

buff/cache 中既有元数据也有数据

/var 中只存放自己的孩子目录和文件

Linux支持众多的文件系统

但是每个文件系统的接口是不一样的

VFS:virtual file system

中间层,负责协调下面不同的文件系统

Linux的文件系统:ext2,ext3,ext4,xfs,reiserfs容易找回来,btrfs

xfs:单文件没有上线

光盘:iso9660

网络文件系统:nfs,cifs

集群文件系统:gfs2,ocfs2,

内核级分布式文件系统:ceph

windows的文件系统:vfat,ntfs

伪文件系统:/proc,sysfs,tmpfs,hugepagefs

Unix:UFS,FFS,JFS

交换文件系统:swap  

用户空间的分布式文件系统:mogilefs,moosefs,glusterfs

四:交换文件系统

Linux的swap 

windows的虚拟内存

用硬盘的一部分空间,充当内存使用

内存不够用的时候:把最近不常使用的放到硬盘上//最近不常使用算法

再次使用的时候,把其他的拿出来,把自己放进内存

//内存和硬盘之间来回交换数据,交换分区

//真实和CPU交互的是内存,而不是交换内存

//现在的linux和windows都支持虚拟内存,每个程序都假设自己有4G可用

文件系统管理

创建fs工具

mkfs.ext2,mkfs,ext4,mkfs,vfat 等

检测并修复文件系统的工具

fsck,ext3,fsck,vfat等

查看其属性的工具

dumpe2fs,tune2fs

调整fs属性

tune2fs

五:日志 

有日志的fs

无日志的fs

    突发情况:例如断电,系统崩溃,导致文件损坏,有的没有写入到硬盘,有的写入了

    //为了解决这个问题:

内存-->日志区--->硬盘

    数据先放到日志去,存到硬盘后,删除日志区的记录,

除了ext2没有日志,其他基本都有

    1.需要预留空间做日志区,存储数据

    2.性能的损失,一个文件需要写两次

六.访问同一个文件的不同路径

硬链接:多个文件路径指向同一个inode;//对应的是inode

    //inode和原来的是相同的

特性:

    (1):目录不支持硬链接

    (2):硬链接不能跨文件系统

    (3):创建硬链接会增加inode引用计数

符号链接{软连接}://存放的是路径名

    指向一个文件路径的另一个文件路径

    //inode 和原来的是不一样的

        (1):符号链接与文件是两个各自独立的文件,各有自己的inode

     //创建符号链接,不会增加链接次数

(2):支持对目录创建符号链接,可以跨文件系统

        (3):删除符号链接文件不影响源文件,但删除原文件,符号指定的路径即不存在

ln aa bb //为aa创建硬链接bb

-rw-r--r-- .3  ///3是被硬链接的次数

ln -s src link_file

-v 显示创建过程

注意:符号链接文件的大小是其指定的文件的路径字符的字节数

磁盘及文件管理系统入门(二)