文件系统管理

文件系统管理

文件系统包含着文件中的数据而且还有文件系统的结构;所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

Linux中普通文件和目录文件保存在称为块物理设备的磁盘上。一套Linux系统支持若干物理盘,每个物理盘可定义一个或者多个文件系统。每个文件系统由逻辑块的序列组成,一个逻辑盘空间一般划分为几个用途各不相同的部分,即引导块、超级块、inode区以及数据区等

引导块:在文件系统的开头,通常为一个扇区,其中存放引导程序,用于读入并启动操作系统;超级块:用于记录文件系统的管理信息。特定的文件系统定义了特定的超级块;inode区(索引节点):一个文件或目录占据一个索引节点。第一个索引节点是该文件系统的根节点。利用根节点,可以把一个文件系统挂在另一个文件系统的非叶节点上;数据区:用于存放文件数据或者管理数据。

磁盘也叫硬盘;硬盘的接口类型有并行和串行,并行的有IDEHSCSI,串行的有SATASASUSB

磁盘设备的设备文件命令格式为:/dev/DEV_FILE

         IDE:  /dev/hd...

         SCSI,SATA,SAS,USB:  /dev/sd...

                不同的设备后面跟的不同,一般是a-z

                        例:/dev/sda/dev/sdb......

            同一设备上的不同分区:12...

                  例:/dev/sda1/dev/sda5

硬盘现在有机械式硬盘和固态硬盘。机械式硬盘包括磁道、柱面和扇区。分区是按柱面进行的。还有一个扇区不属于任何分区,就叫0磁道0扇区吧,它有512bytes;里面存放上整个磁盘管理的内容后,就叫MBRMaster Boot Record)了。这512bytes中,前446bytes用来存bootloader(引导加载器)的,后面64bytes用来存放分区表,最后2bytes存放416进制数,来标识MBR的有效性(如果是55AA,前面的字节所存的信息有效;否则,无效)。16bytes标识一个分区,所以一个磁盘最多有4个主分区。随着科技的发展,磁盘越来越大,所以一般是3个主分区和一个扩展分区(这个扩展分区可以再分多个逻辑分区,这个扩展分区不能存储数据,逻辑分区的编号一般从5开始)

MBR只能识别2T大小的硬盘,要是更大的硬盘就需要使用GPT

分区管理工具有fdiskpartxsfdisk

fdisk:对于一块硬盘来说,最多只能管理15个分区

fdisk -l [-u] [device...]——查看磁盘分区的信息,如果后面不跟设备名,显示所有设备磁盘分区信息

wKioL1XcRWGwRASCAAL51Vq5Ljk891.jpg

fdisk  device(设备名)

      子命令:管理功能

             p:print, 显示已有分区

    m: 获取帮助

    n: new, 创建

             d:delete, 删除

             w:write, 保存并退出

             q:quit, 放弃更新并退出

             t:调整分区id

             l:列表显示所有分区id

wKiom1XcRPLwH571AAJ_XsEokoQ500.jpg

在里面分好后查看下,在这里查看到,并不意味着在内核中已经实现了,需要查看/proc/partitions文件,如果里面也同步了,意味着在内核中实现了新的分区

wKiom1XcRQGA6S4kAAILF-J8fgE495.jpg

wKiom1XcRSGBs8LJAALdAmJ3-nY941.jpg

从中可以看出没有同步到内核中,

要通知内核读取新的分区需要使用partx命令来识别

partx  –a /dev/sda就行了;或者使用partx  –a –n 4:6 /dev/sda

使用kpartx  –a  /dev/sda同样可以

wKioL1XcR0yjn1cDAAHy_99Ocso748.jpg

         再次查看,就可以看到存在了

                 wKiom1XcRUrRSwF_AADxYPtBuq4838.jpg

Linux文件系统:

Linux文件系统包括 ext2, ext3, ext4,xfs, btrfs, reiserfs, jfs, swap(交换分区,就是把磁盘空间当内存使用)等

根据其是否支持“journal”(日志)功能分为:

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

      非日志型文件系统:ext2,vfat

文件系统的组成部分:

    内核中的模块:ext4

     用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat

用户面对的不是这个组成部分,而是Linux虚拟文件系统(VFS),就是消除底层的不同,为上层提供一个相同的服务

创建文件系统:

    (A)、mkfs命令:

         使用格式:(1mkfs.FS_TYPE /dev/DEVICE

                                                                 ext4xfsbtrfsvfat

              2mkfs -t FS_TYPE /dev/DEVICE

                                                                   -L 'LABEL': 设定卷标

wKioL1XcR3HB6hFbAABRbA5FaFs435.jpg

wKioL1XcR4eQ5QmJAAJs_w9jM9E152.jpg

使用blkid /dev/sda5可以查看磁盘分区的信息

wKiom1XcRX7B8HQYAAB6Gfy1F4g733.jpg

 

    (B)、mke2fsext系列文件系统专用管理工具

       -t {ext2|ext3|ext4}

       -b {1024|2048|4096}

       -L 'LABEL'

       -j: 相当于 -t ext3

-i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;

       -N #:为数据空间创建个多少个inode

       -m #: 为管理人员预留的空间占据的百分比;

       -O FEATURE[,...]:启用指定特性

       -O ^FEATURE:关闭指定特性

创建ext3的文件系统可以使用:mkfs.ext3 mkfs -t ext3 mke2fs -j mke2fs -t ext3

      C)、mkswap:创建交换分区

            mkswap [options]device

               -L 'LABEL'

这个命令有个前提:其分区的ID必须为为82;如果不是要使用fdisk命令的-t选项调整为82

其它常用工具:

1blkid:块设备属性信息查看

blkid [OPTION]... [DEVICE]

-U UUID: 根据指定的UUID来查找对应的设备

-L LABEL:根据指定的LABEL来查找对应的设备

2e2label:管理ext系列文件系统的LABEL

# e2label DEVICE [LABEL]

3tune2fs:重新设定ext系列文件系统可调整参数的值

-l:查看指定文件系统超级块信息;super block

-L 'LABEL':修改卷标

-m #:修预留给管理员的空间百分比

-j: ext2升级为ext3

-O: 文件系统属性启用或禁用

-o: 调整文件系统的默认挂载选项

-U UUID: 修改UUID号;

文件系统检测:

           1fsck: File System CheCk

                  fsck.FS_TYPE/dev/DEVICE

(检测某个文件系统,必须使用相对应的文件系统,FS_TYPE一定要与分区上已经文件类型相同)

                 fsck-t FS_TYPE

                    -a:自动修复错误

                    -r:交互式修复错误

                   wKioL1XcR67goEPHAAB_6MYet94472.jpg

           2e2fsckext系列文件专用的检测修复工具

                 -y:自动回答为yes;

                 -f:强制修复;

设备文件的挂载使用mount命令,卸载使用umount,查看当前内核已挂载的设备,使用mount回车,或者使用cat /pron/mounts,或者df都可以。


    


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