文件系统支持

查看Linux支持的文件系统

cat /proc/filesystems

linux-格式化

这个列举出来的并不就是全部能够支持的全部文件系统类型。

VFS基本涵盖了全部的文件系统,只是支持的程度问题。

不过是代码级别的支持,编译之后,可能会删减一些,所以这个看到的就是删减之后能支持的了。

想要支持更多,那就得重新加载一下。

还有一点,就是显示的很多文件系统,并不就是真的文件系统,可能是虚拟的文件系统。

关于这点,随着使用的深入,会有更深入的了解的。

格式化

mkfs -t type dev

看名称大概就能够理解了吧

command description
mkfs 格式化命令,创建文件系统
make filesystem
-t 指定文件系统类型
type 具体的文件系统类型
比如:ext2,ext3
dev 设备文件,一般是分区
千万别对整个磁盘直接进行格式化

linux-格式化

顺序解读一下,更深入理解格式化的操作。

卷标

首先是文件 系统标签,其实就是卷标,对于Windows而言,就是cdef盘啦,我们一般可以重命名的吧。

卷标就是这个重命名,相对的cdef盘已经成了sda5678了。

块大小

之前所说的分块,多个扇区sector划做一个块。

前面说整体比例是一定的,但是具体比例不确定,关于这点,其实我们可以手动调整,后续说明。

可以看到块大小是4096,一个扇区512的话,这一个块就占据了8个扇区。

预留

接下里看到一个5%,这些块呢,你是用不上的。这是预留给管理员用的。

当你磁盘用完以后,管理啦,修复啥的也需要预留一些空间,这就是给管理员做这个用的。

一般来说,预留的都是5%,不过有时候太大太多了反而不好,后面可以进行修改。

inodeblock

接下来就是块个inode了,你可以看到这些在最初就已经创建好了的。

至于比例呢,一般说是4k一个inode,不过这个随便啦,目前不影响。

分组

嗯,块要分组,之前说过了,看来这就是文件系统了,只不过数据组织方式不一样,结构还是一样的。

超级块

超级块也有哦,可以看到并不是全部组都有,具体备份哪些位置也有显示。

前面说过,可以回顾一下。

日志文件系统

格式化ext3

当创建新的文件系统时,原来的数据块就会被重新分配,数据就会被清除了。

所以之前认为格式化就是清空磁盘,就是合格原因。
linux-格式化

嗯,多了一个journal,这就是日志文件系统的区别了。

区别

为什么要有journal呢?

想象一下,数据写到一半了断电了该怎么办。

接下来就是修复了,要么把已经写好的半截数据给删除掉,要么就和断电续传一样继续写入。

问题来了,断点在哪呢?

ext2中,要找寻断点,只能够全盘进行扫描,找到那些信息不全的块,然后进行后续操作。

说道全盘扫面,bitmap出来就是防止全盘扫描的,全盘扫描真的太浪费时间和资源了。

journal日志于是就出来了,相较于原来磁盘划分的数据区和元数据区,增加了一个日志区。

每次的写入,先往日志区中写入,写入完毕之后,然后才挪到元数据区和数据区。

如果断电了,还在日志区,都不用区找,直接就锁定了,接下来做什么就简单了。

我们分区的时候也一样,操作vim也一样,往缓冲区写就避免了重复的硬件修改了。

不过,当重复的IO操作,而且不出错的话,这样也浪费。

反正各有优劣,不能 吹毛求疵。

更多命令

mkfs

which mkfs
# 查看使用的命令的位置
# /usr/sbin/mkfs

# 列举一下
ll /usr/sbin/mkfs*

linux-格式化

可以看到好多后缀的mkfs,其实我们的-t指定了类型,就是分别调用这些命令的。

mkfs.ext2

linux-格式化

ext3

linux-格式化

-j就是ext3了,毕竟除了journal没啥太大区别。

选项

option description
-j 日志文件系统
-b 指定块大小
-L 指定卷标
-m 指定预留空间
-i 指定多少空间创建一个inode
-N 指定inode个数
-F 强制执行
如果正在使用一般是不允许格式化的,不过可以强制执行

linux-格式化

嗯,卷标,日志,块大小,预留百分比,inode对应大小,都对上了,没问题。

更多的可以自己man一下。

mke2fs

如果man了,你会发现man mke2fsman mkfs.ext2是一样的。

也就是说,两个命令使用方式是一样的。

所以呢,你就替换着用吧,没啥问题。

两个一样的,我仔细ll了一下,发现不是符号链接,然后ll -i看了一下
linux-格式化

inode是一样的,确认是同一个文件,难怪用法一样,这下骗不到我了吧。

blkid

blkid /dev/sda5

linux-格式化

卷标,类型,UUID都会显示。

之前说过,识别是没有固定顺序的,当同样的卷标显示时,更不能锁定硬盘。

唯一能做区分你的,就是UUID,这将唯一标识一块硬盘,即使sda变成了sdbUUID不变。

更多选项就自己man blkid了。

如果空参的话,就会显示所有的块设备
linux-格式化

e2label

一看就知道和卷标相关

e2label /dev/sda5

linux-格式化

也可以用来修改卷标
linux-格式化

空参的用法是错误用法哦

tune2fs

options description
-j 调整为日志文件系统,从ext2变为ext3
这个不属于重新格式化,数据不丢失,无损升级
-L 显示或调整卷标
-m 调整预留百分比
-r 调整预留块数
-o 挂载选项
-c 挂载次数自检
-i 挂载天数自检
-l 显示超级块信息
相当于GDT的内容
tune2fs -l /dev/sda5

linux-格式化

说实话,在块结构的时候说这个效果会更好,不过和格式化相关,现在也不迟。

现在对块是不是更了解了呢,不论是分块,格式化,文件系统,都是一个事物的角度不一。

慢慢分析,总能有体会。

dumpe2fs

dumpe2fs /dev/sda5

linux-格式化

关于每个块的信息就更多了,超级块的话最初几个能够看见,但是并不是所有块都会有。

dumpe2fs -h /dev/sda5

linux-格式化

-h只显示超级块信息,这个就方便多了。

不过更多信息也只能man dumpe2fs了解了,这里不多说了。

fsck

options description
-t 指定文件系统类型
-a 自动修复

e2fsck

options description
-f 强制检查
-p 自动修复

加上e2的一般都是针对ext2/ext3的,从好多命令能够看出来。

关于修复,现在也不不能做啥,也不知道具体含义,后续再补充吧。

小结

关于磁盘的硬件结构,到接下来的分区,格式化都已经完毕了。

接下来就是挂载了,当挂载以后,正式使用,关于磁盘的使用就结束了。

到时候真正能够说是了解磁盘, 运用?这只是基础知识啊,路还很长,哎~~~。

看一下闯关进度

  • 磁盘结构
  • 低级格式化
  • 分区
  • 高级格式化
  • 挂载
  • 使用

嗯,快了,加油。

相关文章:

  • 2022-12-23
  • 2021-11-01
  • 2021-07-21
  • 2021-04-30
  • 2021-10-18
  • 2021-04-08
  • 2021-09-23
  • 2022-12-23
猜你喜欢
  • 2021-06-15
  • 2021-04-27
  • 2021-12-24
  • 2022-02-22
  • 2021-09-13
  • 2021-05-27
  • 2022-12-23
相关资源
相似解决方案