文件系统的创建
这几天,博主学习了一些关于文件系统的知识,觉得挺有意思的,就拿来给大家分享一下。那么究竟什么是文件系统呢?
操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,复制文件存储,并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的读取,安全控制,日志,压缩,加密等。
查看当前操作系统支持的文件系统有哪些,可以使用
ls /lib/modules/`uname–r`/kernel/fs
接下来就具体说一下如何创建文件系统,即格式化。
一、mkfs命令:
-t type /dev/device 表示将/dev/device格式为指定类型的文件系统
例如 mkfs -t ext4 /dev/sdb1 (等同于mkfs.ext4 /dev/sdb1)
表示将/dev/sdb1格式为ext4类型的文件系统
可以使用blkid查看其文件系统类型
-f 强制格式化
比如将ext类型的文件系统格式化为xfs类型时,会拒绝格式化,此时可以使用-f强制格式化,请对比以下两幅图
-L LABEL /dev/device 设置卷标名,如果不手动设置,则只有系统安装时的分区才有卷标名。
例如:设置/dev/sdb2的卷标名为CHEN
mke2fs -t ext2/ext3/ext4 /dev/device
-j /dev/sdXX 会把设备格式化为ext3类型(具备日志功能) 如下图
-b {1024|2048|4096...}/dev/sdb1 设置该设备的block大小(必须是2次幂,且最大65536),设置完不能更改,要不然会损坏文件系统。在文件系统中,最小的存储单位就是block。
-L 卷标名 /dev/device 设置卷标名,用法同上面的mkfs
-m # :默认5%,为管理人员预留空间的百分比。
例如:设置/dev/sdb2的block大小为4096,卷标名为TING,为管理人员预留空间2%。
三、blkid命令: 查看具有文件系统的所有的块设备的信息(包括UUID和文件类型,以及ext类型的LABEL)
blkid /dev/device 查看该设备对应的UUID和文件类型
-L LABEL 根据卷标名查看对应的设备
-U UUID 根据UUID查看对应的设备
四、e2label命令:管理ext系列文件系统的LABEL
e2label /dev/device 查看该设备卷标名
e2label /dev/device LABEL 将该设备卷标名改为指定的
五、findfs命令:指定LABEL或UUID显示分区名,用法如下:
六、tune2fs命令: 修改文件系统信息(superblock信息)
-l /dev/device 显示文件系统信息
-L 卷标名 /dev/device 更改卷标名,用法同上面的mkfs
-U UUID /dev/device 更改UUID
七、dumpe2fs 命令:查看文件系统信息(superblock信息及block group信息)
-h 不显示block group而只显示superblock ,与tune2fs -l一致
1、首先了解下block,对于extX文件系统而言,硬盘分区首先被划分为一个个的block,同一个ext3文件系统上的每个block大小都是一样的。但是对于不同的ext3文件系统,block的大小可以有区别,这个大小在创建文件系统的时候被决定。一个硬盘分区上的block计数是从0开始的。
2、理解了block的概念后,接着就是对block group的理解,硬盘分区上所有的block被聚在一起分成几个大的block group。其中每个block group中有多少个block是固定的。
3、接下来就是对super block的理解了。Super block即为超级块,硬盘分区开头的第一个byte是byte 0,从 byte 1024开始往后的一部分数据就是Super block。由于 block size最小是 1024 bytes,所以super block可能是在block 1中(此时block 的大小正好是 1024 bytes)。
超级块中的数据很丰富,比如硬盘分区中每个block的大小、硬盘分区上一共有多少个block group、以及每个block group中有多少个inode,卷标名等都在其中有显示。如果super block损坏,则会导致硬盘加载不起来,可以使用以下命令来修复。
八、fsck/e2fsck命令: 需先取消挂载再修复
fsck /dev/device 修复该设备的超级块
-f 强制修复(有时候可能造成的小破坏检查不到,就不给修复,此时可以使用-f强 制修复)
-y 非交互式(自动回答yes)
-r 交互式
-p 自动修复
取消挂载时,有可能别的进程占用着,就需要结束占用才能取消挂载。
lsof 设备名或挂载点 查看占用的进程
fuser -v 挂载点 查看占用的进程
-km 挂载点 强制结束所有执行在挂载点上的进程
转载于:https://blog.51cto.com/13150617/1957855