硬盘与文件系统

一、硬盘:

1、机械硬盘:

  硬盘,HDDHard Disk Drive):是一种存储介质,传统的机械硬盘的物理结构一般由电动机带动一至数片高速转动的磁盘以及放在执行器悬臂上的磁头组成;

  每个碟片都有两面,因此也会相对应每碟片有2个磁头。


  磁道,Track:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道;


  柱面,Cylinder:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面;


  扇区,Sector:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区;硬盘的第一个扇区,叫做引导扇区;


  主引导记录,MBRMaster Boot Record):又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,主引导扇区记录著硬盘本身的相关消息以及硬盘各个分区的大小及位置消息,是数据消息的重要入口。


  机械硬盘的第0磁道0扇区存放着主引导记录:

    MBR只有512Bytes:

      446bytes:bootloader,主程序

      64bytes: 硬盘分区表,每16bytes标记一个分区,一共4分区;3个主分区,1个扩展分区,扩展分区还可以划分为若干个逻辑分区。

      2bytes: 5A,MBR有效性标记


二、文件系统:

  文件系统是一种用于向用户提供底层数据访问的机制。它将设备中的空间划分为特定大小的块(扇区),一般每块512字节。数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分配给了哪个文件,以及哪些块没有被使用。

  Linux的文件系统的类型:

    ext(2,3,4),xfs,ffs,ufs,reiserfs,jfs,vfat(fat32),ntfs

    交换文件系统:swap

    网络文件系统:nfs,smbfs(cifs)

    分布式文件系统:ceph

    光盘文件系统:isso9660


  文件系统的日志功能:Journal

      ext2:无日志功能

      ext3,ext4,xfs:日志文件系统


1、创建文件系统:

  格式化分区:文件系统在创建的时候就会把扇区组合划分成多个块(block;大小一般为2N次方大小;分区是被分成数据区、元数据区、日志区(如果文件系统支持的话):

    引导扇区(Boot Record):位于每一个分区的第一个扇区,用来界定分区的物理位置;若分区中装有操作系统,可用于系统引导;

    块组(Block Group)每个块组大小一样;

    数据块(Date Block):存储数据的地方;

    索引节点(Inode):记录数据所占用的块编号;

    块位图(Block Bitmap):记录block的状态;0为空闲可用,1为非空闲;

    索引节点位图Inode Bitmap):记录inode状态;0为空闲可用,1为非空闲;

    超级块(Super Block):记录文件系统的整体信息,包括blockinode的总量、已使用量和空闲量、block大小、等文件系统信息。

    文件系统描述(FilesystemDescription):描述每个块组的开始和结束的block号码,以及说明每个区段分别介于哪个block号码之间。


2、查看文件信息:

  index node: 索引区域中每个文件元数据条件

    每个inode都有其编号,使用命令#ls�i查看

    如果某inode指向的常见类型的文件(f,d),指定向磁盘的数据区中的某个或某些个磁盘块

                         wKiom1WMto3xcXPAAAI8qMD513Q504.jpg


  查看元数据:文件名,大小,时间戳,权限,属主、属组,对应的数据存储在哪些磁盘块上;

#stat [OPTION] FILE

wKiom1WMtpyBIlPsAADx3hfTu9Q177.jpg


  查看超级块信息: 

#tune2fs -l DEVICE
#dumpe2fs -h DEVICE


  注意:目录的数据区存储的是(直接附属于此目录)文件名,以及与其对应的inode编号;


3、文件管理操作说明:

  文件被删除:inode被标记为空闲,此inode指向的磁盘块被标记为空闲;如果inode被引用了多次,且此次删除未使得其引用计数降低为的话,这意味着文件被删除仅删除了一个访问路径;


  文件复制:创建一个新文件,并原文件中数据在新文件指向的磁盘块中再写一次的过程;


  文件移动:

    在同一个分区移到:移动文件仅是改变了文件访问路径;

    跨分区移到:在新分区创建文件,把数据复制过去,删除原分区数据;


4、设备文件:

  设备文件是特殊文件,只有inode,而没有数据;关联至一个驱动程序,进而跟对应的硬件设备打交道;


  创建设备文件:

#mknod [OPTION]... NAMETYPE [MAJOR MINOR]


  设备号:

    主设备号:用于标记设备类型;

    次设备号:用于标记同一类型中的不同设备;


  磁盘设备文件:

    /dev/hd

      IDE:并口,133MB/s

     /dev/sd

      USB:串行

      SATA:串行,6Gbps/8

      SCSI:并行,(SmallComputer System Interface

      SAS:串行SCSI

 

    /dev/sd[a-z]#

      多块硬盘由a-z表示;

      分区编号为数字:

        主+扩展:1-4

        逻辑:5-#


5、链接文件:

  在Linux下有两种链接文件;硬链接和符号链接(软链接)。

    硬链接:两个路径的文件名,指向同一个inode它们的内容是共享的,即修改其中一个文件的内容,其它硬链接的文件内容也会随之更改。

      不能对目录文件创建硬链接;

      硬链接不能跨分区

      创建硬链接会增加inode引用计数

 

    一个inode可以被引用多次,其有计数器:在引用次为降为0之前是不会被标记为未用的;可通过命令#ls �l查看文件文件链接次数;

 

    符号链接:类似于window中的快捷方式;符号链接文件会占用新的inode,所以被符号链接的文件移动或删除的话,符号链接文件也即失效;

      可以对目录创建

      不受分区限制

      对文件创建符号链接不会增加引用计数

 

  创建链接文件: 

#ln [-sv]SRC DEST

    -v:硬链接

    -s:符号链接

 

6dfdu

  #dfDisk Free,显示文件系统使用状况:

    -aall,显示所有文件系统使用状况

    -hhuman-readable,单位以易读方式显示

    -i:显示inode的使用信息而非默认的磁盘空间使用信息;

 

  #duDisk Usage,显示目录容量;

     -s:显示目录容量;

     -aall,显示所有文件和目录容量;

     -hhuman-readable,单位以易读方式显示;

 

示例:

1、为/tmp/hellobash/functions创建硬链接:

wKiom1WMu8mh32xCAADObh221F4345.jpg


2、在不同分区下为/tmp/hellobash/functions创建符号链接:

wKioL1WMvZmiJy_VAACP91EyFr0010.jpg

wKioL1WMvbWgrwrBAAF3QieeuXM448.jpg


本文出自 “小马的学习记录” 博客,请务必保留此出处http://masachencer.blog.51cto.com/8683770/1665833

你可能感兴趣的:(linux文件系统)