详谈Linux文件系统基础和相关操作以及swap分区

一、基础概念

文件系统是一种管理存储设备上所存储的文件的一种内生性软件。

能与硬件的存储设备进行交互的只有内核。在操作系统还没有启动的时候,内核也没有启动,由于内核必须依靠文件系统才能启动。然而文件系统由存放于内核中,内核启动前文件系统不存在。这样环绕的问题,类似一个“鸡生蛋,蛋生鸡”的问题。其实,在操作系统启动时,MBR中的Bootloader会自动识别根文件系统(/),随之根文件系统中的内核便会启动,操作系统启动完成。

二、文件系统类型

   虚拟文件系统(VFS:可以识别其他不同的文件系统,并转换成本机可以识别的文件系统。

   基本文件系统ext2ext3ext4xfsjfsntfs等。

   网络文件系统NFS等。

   光盘文件系统iso9660。

   集群文件系统GFS,其分布于多台计算机上,计算机之间通过某种方式通行,将集群内所有存储空间的资源整合,并向外以统一的接口提供文件访问的一种文件系统等。 

   交换分区swap

三、ext4文件系统对于文件的管理方式

   ext4是目前比较常用的文件系统,一下就该文件系统的管理做简单介绍。

wKiom1bhdyDT1wWkAAB4i_NFmc4317.png

    block:文件系统管理文件的基本单元,block的大小通常是2^nK。

    inode:存放文件的属主、属组、访问权限、时间戳。最重要的是存放文件所在的数据块信息。

    inode位图:存放闲置的inode和已使用的inode信息。方便在存储文件时,为文件分配相应的inode。

    block位图:与inode位图类似,存放闲置的block和已使用的block。方便为文件分配block,存储文件内容。

    super block:存放inode、inode位图以及block位图的在文件系统中的存储位置。

    日志记录区:防止在存储文件过程中,由于断电等硬件故障导致文件存储失败,再次开机时,删除该无效文件。在存储文件的时候,给文件分配一个inode之后,在inode区和日志记录区均有记载,如果存储成功,该inode会被删除,如果在存储过程中遇到故障,就会记录该inode,便于下次开机对文件系统的检测和清理。

四、文件系统操作:

  1、分区只能由4个主分区,为什么?

  启动操作系统的MBR一共含有512字节,前446字节存放Bootloader用于启动操作系统,接着64字节存放分区信息,每16个字节存放一个分区信息,所以一个操作系统只能由四个主分区,若想使用多个分区,可以将其中一个或者两个分区设置为扩展分区,然后再扩展分区中可以创建多个逻辑分区。

  2、分区操作:

     命令:fdisk <device-name>, 进入交互式界面。

wKiom1bhd9vx24VDAABnXoa8vaw960.png 

   交互式的常用Command:

     n:增加新分区

     d:删除分区

     p:打印当前磁盘的分区信息

     t:调整分区标记(分区ID)

     L:列出所有分区的ID信息

     w:保存分区信息并退出

     q:不保存退出

     m:获取帮助

    新建的分区信息查看方式:

      1、/proc/partition文件中保存所有存储设备的分区信息。

      2、使用命令。fdisk -l <device-name>

  2、格式化

  命令:mke2fs [option] <device-name>、mkfs;

    Option:

      -t fs-type: 指定文件系统类型(常用)

     -L label: 指定卷标

     -b block-size: 指定数据块大小

     -i byte_per_inode: 指定几个字节对应一个inode

     -N inode-num; 指定inode数目

     -I inode-size: 指定inode大小

   创建ext4分区的不同方式(其他文件系统类似):

      1、mke2fs -t ext4 /dev/sdb1;

      2、mkfs.ext4

      3、mkfs -t ext4 /dev/sdb1

    其他命令:

       1、blkid <device-name> 查看存储设备的文件系统类型。

        # blkid /dev/sdb1

       2、dumpe2fs [option] <device-mname> 查看块组信息。

        Option:-h 只显示super block中的信息。

       3、tune2fs [option] <device-name> 调整超级块中的信息

        Option:

      -l :查看超级块信息

      -L label :修改卷标信息

      -j:如果原文件系统为ext2,则升级为ext3,并不影响数据。

      -o mount-option:指定挂载属性 

      -O:调整分区特性

          关闭某特性:tune2fs ^feature <device-path>

          打开某特性:tune2fs feature <device-path>

       4、fsck、e2fsck。检测文件系统。

    3、挂载|卸载存储设备

      挂载:mount <device-path> <destdir-name>

          # mount /dev/sdb1 /mnt/sdb_data

        自动挂载:将需要挂载的设备在/etc/fstab文件中进行编辑,然后执行命令“mount -a”即可。

       卸载:umount {device-path | destdir-name}

          # umount /dev/sdb1

          # umount /mnt/sdb_data

    4、查看磁盘使用情况

       命令:df,du

       df [option] <device-name>:查看挂在设备使用情况

          Option:-h 换算成人容易识别的单位

                -i 查看inode 使用情况

       du [option] <file-name>:查看文件占用存储设备的情况

          Option:-h human-readable    

                -s 整个目录在磁盘中的使用情况

五、交换分区的创建

   1、调整分区类型:

    wKiom1bheRSieqIlAABBB_8rEWg942.png 

2、格式化交换分区:

    命令:mkswap <device-name>

        # mkswap  /dev/sdb1

3、启动|关闭交换分区

  命令:swapon [option] <device-path>、swapoff [option] <device-path>

     Option: -a :(启动|禁用)所有交换分区

         -p # :启动时指定优先级

  启动:# swapon /dev/sdb1

  关闭:# swapoff /dev/sdb1


=================  以上就是我对文件系统的浅谈,如有不妥欢迎指出 j_0057.gif=========================



 























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章