发布时间:2025-12-09 16:13:02 浏览次数:3
查看Linux支持的文件系统
cat /proc/filesystems这个列举出来的并不就是全部能够支持的全部文件系统类型。
VFS基本涵盖了全部的文件系统,只是支持的程度问题。
不过是代码级别的支持,编译之后,可能会删减一些,所以这个看到的就是删减之后能支持的了。
想要支持更多,那就得重新加载一下。
还有一点,就是显示的很多文件系统,并不就是真的文件系统,可能是虚拟的文件系统。
关于这点,随着使用的深入,会有更深入的了解的。
看名称大概就能够理解了吧
| mkfs | 格式化命令,创建文件系统 make filesystem |
| -t | 指定文件系统类型 |
| type | 具体的文件系统类型 比如:ext2,ext3 |
| dev | 设备文件,一般是分区 千万别对整个磁盘直接进行格式化 |
顺序解读一下,更深入理解格式化的操作。
首先是文件 系统标签,其实就是卷标,对于Windows而言,就是cdef盘啦,我们一般可以重命名的吧。
卷标就是这个重命名,相对的cdef盘已经成了sda5678了。
之前所说的分块,多个扇区sector划做一个块。
前面说整体比例是一定的,但是具体比例不确定,关于这点,其实我们可以手动调整,后续说明。
可以看到块大小是4096,一个扇区512的话,这一个块就占据了8个扇区。
接下里看到一个5%,这些块呢,你是用不上的。这是预留给管理员用的。
当你磁盘用完以后,管理啦,修复啥的也需要预留一些空间,这就是给管理员做这个用的。
一般来说,预留的都是5%,不过有时候太大太多了反而不好,后面可以进行修改。
接下来就是块个inode了,你可以看到这些在最初就已经创建好了的。
至于比例呢,一般说是4k一个inode,不过这个随便啦,目前不影响。
嗯,块要分组,之前说过了,看来这就是文件系统了,只不过数据组织方式不一样,结构还是一样的。
超级块也有哦,可以看到并不是全部组都有,具体备份哪些位置也有显示。
前面说过,可以回顾一下。
当创建新的文件系统时,原来的数据块就会被重新分配,数据就会被清除了。
所以之前认为格式化就是清空磁盘,就是合格原因。
嗯,多了一个journal,这就是日志文件系统的区别了。
为什么要有journal呢?
想象一下,数据写到一半了断电了该怎么办。
接下来就是修复了,要么把已经写好的半截数据给删除掉,要么就和断电续传一样继续写入。
问题来了,断点在哪呢?
ext2中,要找寻断点,只能够全盘进行扫描,找到那些信息不全的块,然后进行后续操作。
说道全盘扫面,bitmap出来就是防止全盘扫描的,全盘扫描真的太浪费时间和资源了。
journal日志于是就出来了,相较于原来磁盘划分的数据区和元数据区,增加了一个日志区。
每次的写入,先往日志区中写入,写入完毕之后,然后才挪到元数据区和数据区。
如果断电了,还在日志区,都不用区找,直接就锁定了,接下来做什么就简单了。
我们分区的时候也一样,操作vim也一样,往缓冲区写就避免了重复的硬件修改了。
不过,当重复的IO操作,而且不出错的话,这样也浪费。
反正各有优劣,不能 吹毛求疵。
可以看到好多后缀的mkfs,其实我们的-t指定了类型,就是分别调用这些命令的。
-j就是ext3了,毕竟除了journal没啥太大区别。
| -j | 日志文件系统 |
| -b | 指定块大小 |
| -L | 指定卷标 |
| -m | 指定预留空间 |
| -i | 指定多少空间创建一个inode |
| -N | 指定inode个数 |
| -F | 强制执行 如果正在使用一般是不允许格式化的,不过可以强制执行 |
嗯,卷标,日志,块大小,预留百分比,inode对应大小,都对上了,没问题。
更多的可以自己man一下。
如果man了,你会发现man mke2fs和man mkfs.ext2是一样的。
也就是说,两个命令使用方式是一样的。
所以呢,你就替换着用吧,没啥问题。
两个一样的,我仔细ll了一下,发现不是符号链接,然后ll -i看了一下
inode是一样的,确认是同一个文件,难怪用法一样,这下骗不到我了吧。
卷标,类型,UUID都会显示。
之前说过,识别是没有固定顺序的,当同样的卷标显示时,更不能锁定硬盘。
唯一能做区分你的,就是UUID,这将唯一标识一块硬盘,即使sda变成了sdb,UUID不变。
更多选项就自己man blkid了。
如果空参的话,就会显示所有的块设备
一看就知道和卷标相关
e2label /dev/sda5也可以用来修改卷标
空参的用法是错误用法哦
| -j | 调整为日志文件系统,从ext2变为ext3 这个不属于重新格式化,数据不丢失,无损升级 |
| -L | 显示或调整卷标 |
| -m | 调整预留百分比 |
| -r | 调整预留块数 |
| -o | 挂载选项 |
| -c | 挂载次数自检 |
| -i | 挂载天数自检 |
| -l | 显示超级块信息 相当于GDT的内容 |
说实话,在块结构的时候说这个效果会更好,不过和格式化相关,现在也不迟。
现在对块是不是更了解了呢,不论是分块,格式化,文件系统,都是一个事物的角度不一。
慢慢分析,总能有体会。
关于每个块的信息就更多了,超级块的话最初几个能够看见,但是并不是所有块都会有。
dumpe2fs -h /dev/sda5-h只显示超级块信息,这个就方便多了。
不过更多信息也只能man dumpe2fs了解了,这里不多说了。
| -t | 指定文件系统类型 |
| -a | 自动修复 |
| -f | 强制检查 |
| -p | 自动修复 |
加上e2的一般都是针对ext2/ext3的,从好多命令能够看出来。
关于修复,现在也不不能做啥,也不知道具体含义,后续再补充吧。
关于磁盘的硬件结构,到接下来的分区,格式化都已经完毕了。
接下来就是挂载了,当挂载以后,正式使用,关于磁盘的使用就结束了。
到时候真正能够说是了解磁盘, 运用?这只是基础知识啊,路还很长,哎~~~。
看一下闯关进度
嗯,快了,加油。