磁盘和文件系统创建

磁盘结构:主要是由盘体、控制电路、接口部件等组成。盘体里面封装了多个盘片的腔体;控制电路包含硬盘BIOS、主控芯片和硬件缓存等单元;接口部件包含电源、数据接口主从跳线等。读取硬盘数据时,主轴电机带动盘片旋转,副轴电机带动磁头臂将磁头放到相应的数据存放的柱面和磁道上,再由磁头读出相应扇区中的数据。(图1-1)

磁道(track):每个盘面被划分成了多个同心圆环,数据就是存储在这些同心圆环上。这些同心圆环被称为磁道。(图1-2)

扇区(sector):每个磁道上划分成若干个圆弧,这每一个圆弧称为扇区,扇区是硬盘上存储的物理单元通常一个扇区为(512byte)。硬盘的扇区与扇区之间隔了交叉因子,因为硬盘的转速很快,读完这个扇区来不及读下一个扇区,这时就必须等待转一圈才能读下一个扇区,造成时间浪费,所有就用交叉因子来解决这个问题。(图1-3)

柱面(cylinder):不同盘面上相同编号的磁道组成的一个同心的圆柱面,称为柱面。硬盘的数据读写和分区是按柱面进行的,磁头读写数据时首先在同一个柱面的0磁头开始依次向下直到所有的磁头全部读写完毕后,磁头在转向下一个柱面。

ceuyzVtrgdgrY.jpgjiaocha.jpgzhumian.jpg

     图1-1                                                          图1-2                                             图1-3

硬盘分区

MBR:主引导记录(Master Boot Record),计算机开机后根据主板设备的加载项去读取硬盘的第一个扇区(0柱面,0磁头,1扇区),该扇区大小为512byte,其中446byte负责找到系统的活动分区,并从活动分区中装载并运行系统引导程序(bootloader)。后面64byte为分区表,每16byte标识一个活动分区,最多支持4个活动分区。2byte的结束标识符。

文件系统:

文件系统是一套帮助操作系统管理和存储文件信息的软件。它对存储设备的空间进行管理和分配,负责文件的存储和检索。

fdisk对硬盘进行分区操作

fdisk  -l   [-u]    [DEVICE]    ##查看系统的硬盘信息
fdisk  [DEVICE]              ##管理设备##常用的子命令的管理功能
       p   print the partition table             ##显示已有分区
       n   add a new partition                ##创建新分区   
       d   delete a partition                 ##删除一个分区   
       w   write table to disk and exit           ##保存分区表并退出   
       q   quit without saving changes             ##退出不保存修改的内容
       m   print this menu                   ##显示帮助菜单   
       l   list known partition types             ##列表分区的ID和类型   
          change a partition's system id            ##调整分区的ID

查看/proc/parttions内核是否识别新分区

[root@mage ~]# cat /proc/partitions
       major minor  #blocks  name   
       8     0    8388608 sda   
       8     1     512000 sda1   
       8     2    7875584 sda2   
       8    16    4194304 sdb   
       8    17    2104483 sdb1   
       8    18    2088450 sdb2

如果当前硬盘正在使用,新划的分区未能识别则用partx命令重读硬盘分区表

[root@mage ~]# partx  -a  /dev/sdb          ##通知内核重新读取硬盘分区表   
BLKPG: Device or resource busy   
error adding partition 1    
BLKPG: Device or resource busy    
error adding partition 2

Linux支持多种文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap….

由于支持这么多的文件系统,为了方便进程或应用程序的调用,弱化各个文件系统之间的差异,所以就需要在内核与文件系统在有一层中间件。于是就有了虚拟文件系统VFS(Virtual File System),虚拟文件系统将不同文件系统的差异进行隐藏,并向进程或应用程序提供同一的调度接口。应用程序或进程要访问文件时,只需要使用VFS提供的接口,VFS确定要访问的文件所属的文件系统,通过存储在VFS中的指针调用该文件系统进行相应的操作。

ext2(second EXTended Filesysem)是一个被linux广泛使用的文件系统。文件的文件名不能超过255个字符。ext2文件系统第一块为引导扇区(boot sector)用于系统启动引导使用,即使该分区非系统分区也会保留。引导扇区的块被分成若干个块组。

QQ图片20151213162158.png

超级块:该文件系统的信息,包括inode和block的总数、空闲、块的大小、文件、块组的大小、文件系统创建时间、默认挂载的参数等。

超级块会备份到若干个块组内。

组描述符:存放block和inode的开始与结束的位置,空闲块数和inode的空闲数,块组中的目录数等信息,

inode位图:对位标识每个inode空闲与否的状态信息

块位图:对位标识每个block空闲与否的状态信息

inode表:大小为128字节,每个inode恰好描述了一个文件。文件类型,链接数据,文件的改变、修改、访问时间,文件的属主、属组、大小,以及12block硬盘物理地址和后面3个间接指针(直接指针、间接指针、三级指针)。

数据块:存放文件内容数据的位置,每个数据块的大小在文件系统创建时都已经确认了,一个文件至少占用一个数据块,可以占用多个数据块。

ext3是ext2文件系统的升级版,并加入了日志文件系统。系统在写入数据时会现将数据写入日志区。再通过日志信息将数据写入数据区中,这样的好处,一旦系统非正常关机成数据的损坏。可以通过日志信息快速检测错误区并加以修复。而不需要像ext2遍历全盘,节约了事件,也提高了数据的可靠性。

创建文件系统

   mkfs命令

  mkfs.cramfs   mkfs.ext2     mkfs.ext3     mkfs.ext4  
  mkfs.FS_TYPE   /dev/DEVICE             
  mkfs -t  FS_TYPE   /dev/DEVICE        
  mke2fs  ##ext文件系统专用管理工具    
  mke2fs  [OPTION]   /dev/DEVICE          
            -t    {ext2|ext3|ext4}      ##指定要创建的类型        
            -b    {1024|2048|4096}      ##指定块大小              
            -L  'LABEL'             ##指定卷标              
            -i #                ##数据空间每多少个字节创建一个inode;此大小不应该小于block的大小;        
            -N #             ##为数据空间创建个多少个inode              
            -m               ##为管理人员预留的空间占据的百分比;默认为5%              
            -O FEATURE[,....]        ##启用指定特性               
            -O ^FEATURE                ##关闭指定特性               
            
 [root@mage ~]# mke2fs  -t ext4   -b 4096  -L 'TEST'  -m 3   /dev/sdb1      
 mke2fs 1.41.12 (17-May-2010)Filesystem label=TEST                                            ##卷标
 OS type: Linux
 Block size=4096 (log=2)                                          ##块的大小
 Fragment size=4096 (log=2)
 Stride=0 blocks,Stripe width=0 blocks
 197600 inodes, 789185 blocks                        ##该文件系统总共的块和inode的数量
 23675 blocks (3.00%) reserved for the super user
 First data block=0
 Maximum filesystem blocks=809500672
 25 block groups                                                  ##块组数量
 32768 blocks per group, 32768 fragments per group                ##32768块组成一个块组
 7904 inodes per group                                            
 Superblock backups stored on blocks:                             ##超级块的备份        
        32768, 98304, 163840, 229376, 294912
 Writing inode tables: done                            
 Creating journal (16384 blocks): done                            ##创建的日志文件块
 Writing superblocks and filesystem accounting information: done
 This filesystem will be automatically checked every 26 mounts or      
 180 days, whichever comes first.  Use tune2fs -c or -i to override.

块属性的信息查看

  blkid  [OPTION].........[DEVICE]    
        -U UUID                 ##根据指定的UUID来查找对应的设备       
        -L LABEL                ##根据指定的LABEL来查找对应的设备 
  [root@mage ~]# blkid   /dev/sdb1
  /dev/sdb1: LABEL="TEST" UUID="65770a04-cacc-4a27-8c66-c8bdae1ff40d" TYPE="ext4"

修改ext文件系统的卷标

e2label  DEVICE [LABEL]
[root@mage ~]# e2label   /dev/sdb1   MYDATA
[root@mage ~]# blkid /dev/sdb1/dev/sdb1: LABEL="MYDATA" UUID="65770a04-cacc-4a27-8c66-c8bdae1ff40d" TYPE="ext4"

调整ext文件系统的参数

tune2fs  [OPTION]     /dev/DEVICE
     -l                             ##查看指定文件系统超级块信息;super block 
     -L 'LABEL'                        ##修改卷标     
     -m #                          ##修预留给管理员的空间百分比     
     -j                            ##将ext2升级为ext3     
     -O                           ##文件系统属性启用或禁用     
     -o                          ##调整文件系统的默认挂载选项     
     -U:UUID                        ##修改UUID号
[root@mage~]# tune2fs   -l  /dev/sdb1     ##查看超级块
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   TEST
Last mounted on:          <not available>
Filesystem UUID:          d2eda9dd-3c63-40d1-8dce-9f2c18b36602
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 
flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              197600
Block count:              789185
Reserved block count:     23675
Free blocks:              759231
Free inodes:              197589
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      192
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7904
Inode blocks per group:   494
Flex block group size:    16
Filesystem created:       Sun Dec 13 10:31:18 2015
Last mount time:          n/a
Last write time:          Sun Dec 13 10:31:18 2015
Mount count:              0
Maximum mount count:      26
Last checked:             Sun Dec 13 10:31:18 2015
Check interval:           15552000 (6 months)
Next check after:         Fri Jun 10 10:31:18 2016
Lifetime writes:          113 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      4dc8c1cb-a593-4f0f-8da7-2d787b789e4e
Journal backup:           inode blocks

dumpe2fs [OPTION]   /dev/DEV
     -h                              ##查看超级块信息                
     -x                              ##查看块组以信息十六进制显示
Group 0: (Blocks 0-32767) [ITABLE_ZEROED]              ##块组的block的范围  
Checksum 0xc867, unused inodes 7893                 ##校验码和未使用的inode的数量  
Primary superblock at 0, Group descriptors at 1-1  
Reserved GDT blocks at 2-193  
Block bitmap at 194 (+194), Inode bitmap at 210 (+210)      ##块位图,inode位图  
Inode table at 226-719 (+226)                     ##inode表  
24632 free blocks, 7893 free inodes, 2 directories, 7893 unused inodes  ##未使用的块,未使用的inode节点,2个目录  
Free blocks: 8136-32767                            ##未使用块的范围  
Free inodes: 12-7904                              ##未使用inode的范围

原创文章,作者:Y.sir,如若转载,请注明出处:http://www.178linux.com/9922

(0)
Y.sirY.sir
上一篇 2016-02-14 09:44
下一篇 2016-02-14 09:48

相关推荐

  • tomcat配置详解

    主程序: ·tomcat ·tomcat-admin-webapps ·tomcat-webapps ·tomcat-docs-webapp ·java-1.8.0-openjdk 配置文件: 配置文件目录:/etc/tomcat 主配置文件:server.xml webapps存放位置:/var/lib/tomcat/webapps/ webapps的根目…

    2017-08-08
  • Bind编译安装详解

    Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服…

    Linux干货 2016-07-22
  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-29
  • 马哥教育21期网络班—第六周课程+练习—-成长进行时

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/rc.sysinit&nbs…

    Linux干货 2016-08-03
  • N25-第十二周博客作业

    1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求;(2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程;(3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息;(4) 访问资源:获取请求报文中请求的资源;从磁盘中获取(5) 构建响应报文:(6) 发送响应报文:(7) 记录…

    Linux干货 2017-04-09
  • 第十三周作业

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加sa…

    Linux干货 2017-04-04