35|Linux文件系统(一):Linux如何存放文件?
LMOS

你好,我是 LMOS。
上一节课,我们一起了解了什么是文件和文件系统。接下来的两节课,我们继续深入学习 Linux 上的一个具体的文件系统——Ext3,搞清楚了文件究竟是如何存放的。
建立虚拟硬盘
要想建立文件系统就得先有硬盘,我们直接用真正的物理硬盘非常危险,搞不好数据就会丢失。所以,这里我们选择虚拟硬盘,在这个虚拟硬盘上操作,这样怎么折腾都不会有事。
其实我们是用 Linux 下的一个文件来模拟硬盘的,写入硬盘的数据只是写入了这个文件中。所以建立虚拟硬盘,就相当于生成一个对应的文件。比如,我们要建立一个 100MB 的硬盘,就意味着我们要生成 100MB 的大文件。
下面我们用 Linux 下的 dd 命令(用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换)生成 100MB 的纯二进制的文件(就是向 1~100M 字节的文件里面填充为 0 ),代码如下所示:
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

本文深入介绍了在Linux系统上建立虚拟硬盘并在其上建立Ext3文件系统的过程。通过使用dd命令生成虚拟硬盘文件,并通过losetup命令将其变成Linux的回环设备,然后使用mkfs.ext3命令对其进行格式化。文章详细讨论了Ext3文件系统的结构,包括超级块、块组描述表、块位图、inode节点位图、inode节点表和数据块区等重要结构。此外,还展示了Ext3文件系统的超级块的C语言定义,以及块组描述符表、位图块、inode节点和目录项的结构。通过本文,读者可以快速了解Linux文件系统的建立过程和Ext3文件系统的内部结构,为进一步深入学习和理解提供了基础知识。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》,新⼈⾸单¥68
《计算机基础实战课》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- sN0wpeak为什么block_size = 123
作者回复: 在哪儿呢
2022-12-10归属地:湖北 - 南城忆潇湘一级间接储存块里的块号索引的储存块中不是文件数据,而是储存的指向储存块的块号,它可以储存 1024/4 个块号,即可索引 1024/4 个储存块。 请问:1024/4这个计算公式的原理是啥
作者回复: 是的
2022-10-24归属地:湖北2 - 极客酱酱请问一下:为什么在hdisk目录下能创建出超出255个字符的目录呢?
作者回复: 文件名称 不能超过这个字符数
2022-10-24归属地:湖北 - 苏流郁宓超级块存放在硬盘分区的第2个扇区,文中建立的硬盘不能直接打开(在home下建立hdisk,挂载这上面 单独显示硬盘),需要特殊字符设备软件。这也是真实的硬盘以二进制形式储存,日常能打开的硬盘都是在二进制基础上建立了ext4或者ntfs文件系统! 但建立能打开的文件系统硬盘,它显示的存储空间小于二进制硬盘(无字符设备软件打不开)的存储空间(假如两块硬盘一样大) 实际上硬盘的打开,读写,存储都需要cpu的配合!文件系统的基础是数学,比如画曲线只要5个点就可以确定sin x或者cos x曲线!硬盘存储系统,就是用更少的点储存更多更准确的信息,通过cpu把这些点翻译成信息或者图形!所以二进制硬盘区别于纸质的书籍储存方式,通过类似以点代线的方式(cpu翻译),存储更多的信息!包括图像视频信息!
作者回复: 嗯嗯
2022-10-23归属地:湖北 - peter请问:文件的连接数是指什么?
作者回复: 有多少链接直向这个文件
2022-10-21归属地:湖北 - 赵国辉mac下与losetup相对的命令是什么呢老师。2023-03-12归属地:北京
- 顾琪瑶老师, 有个问题不理解. 看您给的图中描述, 超级块是在快组下的, 但超级快描述的是全局信息, 为什么还需要每个快组都有超级快信息呢? 还是我理解的不对?2023-01-06归属地:上海1
收起评论