Loading... <h1 style="text-align:center"><span style="font-family:宋体">文件系统知一二</span></h1> <h2>What?<span style="font-family:宋体">文件系统是什么?</span></h2> <p><span style="font-size:19px;font-family:仿宋"> </span><strong><span style="font-size:19px;font-family:仿宋">我们经常说文件系统,那么文件系统是什么东西呢?</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">计算机的文件系统是一种存储和组织计算机数据的组织结构。</span></strong></p> <h3 style="text-indent:28px"><span style="font-family:宋体">常见的文件系统有哪些?</span></h3> <p> <strong><span style="font-size:19px;font-family:仿宋">Linux</span><span style="font-size:19px;font-family:仿宋">文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,swap</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> Windows</span><span style="font-size:19px;font-family:仿宋">文件系统:fat32,ntfs</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> Unix</span><span style="font-size:19px;font-family:仿宋">文件系统:FFS,UFS,JFS2</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">网络文件系统:NFS,CIFS</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">集群文件系统:GFS2,OCFS2</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">分布式文件系统:ceph,</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> mosefs, mogilefs, GlusterFS, Lustre</span></strong></p> <h3 style="text-indent:28px"><span style="font-family:宋体">根据其是否支持</span>“journal(<span style="font-family:宋体">日志</span>)”<span style="font-family:宋体">功能分为:</span></h3> <p> <span style="font-size:19px;font-family:仿宋"> </span><strong><span style="font-size:19px;font-family:仿宋">日志型文件系统:ext3,ext4,xfs……</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">非日志型文件系统:ext2,vfat</span></strong></p> <h3 style="text-indent:28px"><span style="font-family:宋体">文件系统的组成部分</span></h3> <p><strong> <span style="font-size:19px;font-family:仿宋">内核中的模块:ext4,xfs,vfat,……</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">用户空间的管理工具:mkfs.ext4,mkefs.xfs,mkfs.vfat</span></strong></p> <h3 style="text-indent:28px">Linux<span style="font-family:宋体">上常见的文件系统</span></h3> <p class="MsoListParagraph" style="margin-left:56px"><strong><span style="font-size:19px;font-family:仿宋">1) </span><span style="font-size:19px;font-family:仿宋">ext</span><span style="font-size:19px;font-family:仿宋">系列的ext[2-4],ext2系统没有日志功能,ext[3-4]文件系统有日志功能。</span></strong></p> <p class="MsoListParagraph" style="margin-left:56px"><strong><span style="font-size:19px;font-family:仿宋">2) </span><span style="font-size:19px;font-family:仿宋">XFS</span><span style="font-size:19px;font-family:仿宋">文件系统,一种性能强大的日志文件系统,CentOS 7和RHEL 7在安装时默认使用XFS文件系统</span></strong></p> <p class="MsoListParagraph" style="margin-left:56px"><strong><span style="font-size:19px;font-family:仿宋">3) </span><span style="font-size:19px;font-family:仿宋">btrfs</span><span style="font-size:19px;font-family:仿宋">文件系统,也是一个日志型文件系统,对大文件和小文件有很高的处理效率。</span></strong></p> <p class="MsoListParagraph" style="margin-left:56px"><strong><span style="font-size:19px;font-family:仿宋">4) </span><span style="font-size:19px;font-family:仿宋">JFS(Journaling File System)</span><span style="font-size:19px;font-family:仿宋">,由IBM创建的一种日志型文件系统</span></strong></p> <p class="MsoListParagraph" style="margin-left:56px"><strong><span style="font-size:19px;font-family:仿宋">5) </span><span style="font-size:19px;font-family:仿宋">Swap</span><span style="font-size:19px;font-family:仿宋">,交换分区,当内存不足时,可以将一部分硬盘空间虚拟成内存使用,解决内存容量不足的问题,但是速度比较慢。</span></strong></p> <h2>Why?<span style="font-family:宋体">为什么需要文件系统?文件系统的存在意义是什么?</span></h2> <p><strong> <span style="font-size:19px;font-family:仿宋">文件系统使得对硬盘数据的访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。 在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件系统中。</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">早期没有文件系统的时期,计算机用户在使用计算机时,需要人工的去查找<span style="color:red">磁盘关系表</span>去查看要找的数据保存在硬盘上的地址以及要通过磁盘关系表了解哪些地址没有被使用,以便对磁盘进行正确的读写操作。</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">目前的计算机存储,查找数据地址这些事情都是由文件系统来完成,用户只需要知道存储的数据文件名是什么在哪个目录下。 </span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">任何事物的发展都是从麻烦到简单,用户体验也都是越来越完善。</span></strong></p> <p><strong> <span style="font-size:19px;font-family:仿宋">文件系统的存在意义也就是为了提高的用户对磁盘的使用效率,用户体验更加友好。</span></strong></p> <h2>When<span style="font-family:宋体">?什么时候会用到文件系统?</span></h2> <p><strong> <span style="font-size:19px;font-family:仿宋">当我们创建一块儿新分区的时候,需要对其进行格式化指定的文件系统,否则就无法对这块儿分区进行读写操作。</span></strong></p> <h2>Where<span style="font-family:宋体">?在哪儿使用文件系统</span></h2> <p><strong> <span style="font-size:19px;font-family:仿宋">新建一块儿分区的时候,这时候我我们就要对其进行格式化,在命令行终端中使用指定的文件系统的管理命令即可完成。</span></strong></p> <h2>How<span style="font-family:宋体">?文件系统的使用方法?</span></h2> <h3> <strong><span style="font-family:宋体">创建文件系统:</span></strong></h3> <h4><strong> <span style="font-family:仿宋"> mkfs</span><span style="font-family:仿宋">命令:</span></strong></h4> <p class="MsoListParagraph" style="margin-left:84px"><strong>1) <span style="font-size:19px;font-family:仿宋"> # mkfs.FS_TYPE /dev/DEVICE</span></strong></p> <p style="margin-left:84px;text-indent:28px"><strong><span style="font-size:19px;font-family:仿宋">FS_TYPE(</span><span style="font-size:19px;font-family:仿宋">文件系统类型): </span></strong></p> <p style="margin-left:84px;text-indent:28px"><strong><span style="font-size:19px;font-family:仿宋"> ext4</span></strong></p> <p style="margin-left:84px;text-indent:28px"><strong><span style="font-size:19px;font-family:仿宋"> xfs</span></strong></p> <p style="margin-left:84px;text-indent:28px"><strong><span style="font-size:19px;font-family:仿宋"> btrfs</span></strong></p> <p style="margin-left:84px;text-indent:28px"><strong><span style="font-size:19px;font-family:仿宋"> vfat</span></strong></p> <p class="MsoListParagraph" style="margin-left:84px"><strong>2) <span style="font-size:19px;font-family:仿宋"> # mkfs –t FS_TYPE /dev/DEVICE</span></strong></p> <p style="margin-left:140px"><strong><span style="font-size:19px;font-family:仿宋">-L ‘LABEL’</span><span style="font-size:19px;font-family:仿宋">:设定卷标</span></strong></p> <pre class="brush:bash;toolbar:false"> [root@Daniel ~]# mkfs -t btrfs -L 'mydata' -f /dev/sda6 # -f 表示强制,因为之前/dev/sda6的文件系统为ext3 SMALL VOLUME: forcing mixed metadata/data groups btrfs-progs v3.19.1 See http://btrfs.wiki.kernel.org for more information. Turning ON incompat feature 'mixed-bg': mixed data and metadata block groups Turning ON incompat feature 'extref': increased hardlink limit per file to 65536 Turning ON incompat feature 'skinny-metadata': reduced-size metadata extent refs Created a data/metadata chunk of size 8388608 fs created label mydata on /dev/sda6 nodesize 4096 leafsize 4096 sectorsize 4096 size 500.00MiB [root@Daniel ~]# blikd /dev/sda6 bash: blikd: 未找到命令... 相似命令是: 'blkid' [root@Daniel ~]# blkid /dev/sda6 /dev/sda6: LABEL="mydata" UUID="a66d6fcb-6930-4506-8afa-9bcf6abe49bd" UUID_SUB="0a0420dd-be44-486d-9d0b-7055dcf24c6b" TYPE="btrfs"</pre> <h4><strong><span style="font-family:仿宋"> mke2fs:ext</span><span style="font-family:仿宋">系列文件系统专用管理工具</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋">-t {ext2|ext3|ext4}</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -b {1024|2048|4096}</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -L 'LABEL'</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -j: </span><span style="font-size:19px;font-family:仿宋">相当于 -t ext3</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -i #: </span><span style="font-size: 19px;font-family:仿宋">为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -N #</span><span style="font-size:19px;font-family:仿宋">:为数据空间创建个多少个inode;</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -m #: </span><span style="font-size: 19px;font-family:仿宋">为管理人员预留的空间占据的百分比;</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -O FEATURE[,…]</span><span style="font-size:19px;font-family:仿宋">:启用指定特性</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -O ^FEATURE</span><span style="font-size:19px;font-family:仿宋">:关闭指定特性</span></strong></p> <pre class="brush:bash;toolbar:false"> [root@Daniel ~]# mke2fs -t ext3 /dev/sda7 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=1024 (log=0) 分块大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 128016 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user 第一个数据块=1 Maximum filesystem blocks=67633152 63 block groups 8192 blocks per group, 8192 fragments per group 2032 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@Daniel ~]# blkid /dev/sda7 /dev/sda7: UUID="7c80361d-517b-4b29-aa27-b2fa8b1a8263" SEC_TYPE="ext2" TYPE="ext3"</pre> <h4><strong><span style="font-family:仿宋"> mkswap</span><span style="font-family:仿宋">:创建交换分区</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋"> mkswap [options] device</span></strong></p> <p><span style="font-size:19px;color:#555555"> </span><strong><span style="font-size:19px;color:#555555"> </span><span style="font-size:19px;font-family: 仿宋">-c, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">check </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">创建交换区前检查坏块</span></strong></p> <p><strong><span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋">-f, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">force </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">允许交换区大于设备大小</span></strong></p> <p><strong><span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size: 19px;font-family:仿宋">-p, </span><span style="font-size:19px;font-family: 仿宋">–</span><span style="font-size:19px;font-family:仿宋">pagesize SIZE </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">指定页大小为 SIZE 字节</span></strong></p> <p><strong><span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">-L, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">label LABEL </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">指定标签为 LABEL</span></strong></p> <p><strong><span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋">-v, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">swapversion NUM </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">指定交换空间版本号为 NUM</span></strong></p> <p><strong><span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋">-U, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">uuid UUID </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">指定要使用的 UUID</span></strong></p> <p><strong><span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋">-V, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">version </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px;font-family:仿宋">输出版本信息并退出</span></strong></p> <p><strong><span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋">-h, </span><span style="font-size:19px;font-family:仿宋">–</span><span style="font-size:19px;font-family:仿宋">help </span><span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span> <span style="font-size:19px"> </span><span style="font-size:19px;font-family:仿宋">显示此帮助并退出</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> </span><span style="font-size:19px;font-family:仿宋">前提:调整其分区的ID为82;</span></strong></p> <h3> <span style="font-family:宋体">其他常用工具:</span></h3> <h4> <strong><span style="font-family:仿宋">blkid:</span><span style="font-family:仿宋">块设备属性信息查看</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋"> blkid [OPTION]… [DEVICE]</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -U UUID: </span><span style="font-size:19px;font-family:仿宋">根据指定的UUID来查找对应的设备</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -L LABEL</span><span style="font-size:19px;font-family:仿宋">:根据指定的LABEL来查找对应的设备</span></strong></p> <pre class="brush:bash;toolbar:false"> [root@Daniel ~]# blkid /dev/sda5 /dev/sda5: UUID="1ffe8df2-9df0-4260-a9e5-c59aaf6b5215" TYPE="xfs" [root@Daniel ~]# blkid /dev/sda6 /dev/sda6: UUID="9583a476-da62-4836-aee5-8847d7b79381" UUID_SUB="4a86922c-9293-4b4a-8958-f961f7c9b96c" TYPE="btrfs" [root@Daniel ~]# blkid /dev/sda7 /dev/sda7: UUID="7c80361d-517b-4b29-aa27-b2fa8b1a8263" SEC_TYPE="ext2" TYPE="ext3" [root@Daniel ~]# blkid /dev/sda8 /dev/sda8: LABEL="mydata" UUID="81a0c29c-8f66-407e-a338-dd1468407100" TYPE="ext4" [root@Daniel ~]# blkid -L 'mydata' /dev/sda8</pre> <h4><strong><span style="font-family:仿宋"> e2lable:</span><span style="font-family:仿宋">管理ext系列文件系统的LABEL</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋"># e2label DEVICE [LABEL]</span></strong></p> <pre class="brush:bash;toolbar:false"> [root@Daniel ~]# e2label /dev/sda8 'TEST' [root@Daniel ~]# blkid /dev/sda8 /dev/sda8: LABEL="TEST" UUID="81a0c29c-8f66-407e-a338-dd1468407100" TYPE="ext4"</pre> <h4><strong><span style="font-family:仿宋"> tune2fs:</span><span style="font-family:仿宋">重新设定ext系列文件系统可调整参数的值</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋">-l</span><span style="font-size:19px;font-family:仿宋">:查看指定文件系统超级块信息;super block</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -L 'LABEL'</span><span style="font-size: 19px;font-family:仿宋">:修改卷标</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -m #</span><span style="font-size:19px;font-family:仿宋">:修预留给管理员的空间百分比</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -j: </span><span style="font-size:19px;font-family:仿宋">将ext2升级为ext3</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -O: </span><span style="font-size:19px;font-family:仿宋">文件系统属性启用或禁用</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -o: </span><span style="font-size:19px;font-family:仿宋">调整文件系统的默认挂载选项</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -U UUID: </span><span style="font-size: 19px;font-family:仿宋">修改UUID号;</span></strong></p> <h4><strong><span style="font-family:仿宋"> dumpe2fs:</span><span style="font-family:仿宋">查看超级块信息</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋">-h</span><span style="font-size:19px;font-family:仿宋">:查看超级块信息</span></strong></p> <h4> <span style="font-family: 宋体">文件系统检测:</span></h4> <h4> <strong> fack: File System Check</strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋">fsck.FS_TYPE</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> fsck -t FS_TYPE</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -a: </span><span style="font-size: 19px;font-family:仿宋">自动修复错误</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -r: </span><span style="font-size: 19px;font-family:仿宋">交互式修复错误</span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> Note: FS_TYPE</span><span style="font-size:19px;font-family:仿宋">一定要与分区上已经文件类型相同;</span></strong></p> <h4><strong> e2fsck:ext<span style="font-family:仿宋">系列文件系统专用的检测修复工具</span></strong></h4> <p><strong> <span style="font-size:19px;font-family:仿宋">-y</span><span style="font-size:19px;font-family:仿宋">:自动回答为yes; </span></strong></p> <p><strong><span style="font-size:19px;font-family:仿宋"> -f</span><span style="font-size:19px;font-family:仿宋">:强制修复;</span></strong></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信