计算机基础实战课
彭东
网名 LMOS,Intel 傲腾项目关键开发者
19719 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
计算机基础实战课
15
15
1.0x
00:00/00:00
登录|注册

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

你好,我是 LMOS。
上一节课,我们一起了解了什么是文件和文件系统。接下来的两节课,我们继续深入学习 Linux 上的一个具体的文件系统——Ext3,搞清楚了文件究竟是如何存放的。
这节课我会带你建立一个虚拟硬盘,并在上面建立一个文件系统。对照代码实例,相信你会对 Ext3 的结构有一个更深入的认识。课程配套代码,你可以从这里下载。话不多说,我们开始吧。

建立虚拟硬盘

要想建立文件系统就得先有硬盘,我们直接用真正的物理硬盘非常危险,搞不好数据就会丢失。所以,这里我们选择虚拟硬盘,在这个虚拟硬盘上操作,这样怎么折腾都不会有事。
其实我们是用 Linux 下的一个文件来模拟硬盘的,写入硬盘的数据只是写入了这个文件中。所以建立虚拟硬盘,就相当于生成一个对应的文件。比如,我们要建立一个 100MB 的硬盘,就意味着我们要生成 100MB 的大文件。
下面我们用 Linux 下的 dd 命令(用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换)生成 100MB 的纯二进制的文件(就是向 1~100M 字节的文件里面填充为 0 ),代码如下所示:
dd bs=512 if=/dev/zero of=hd.img count=204800
;bs:表示块大小,这里是512字节
;if:表示输入文件,/dev/zero就是Linux下专门返回0数据的设备文件,读取它就返回0
;of:表示输出文件,即我们的硬盘文件
;count:表示输出多少块
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了在Linux系统上建立虚拟硬盘并在其上建立Ext3文件系统的过程。通过使用dd命令生成虚拟硬盘文件,并通过losetup命令将其变成Linux的回环设备,然后使用mkfs.ext3命令对其进行格式化。文章详细讨论了Ext3文件系统的结构,包括超级块、块组描述表、块位图、inode节点位图、inode节点表和数据块区等重要结构。此外,还展示了Ext3文件系统的超级块的C语言定义,以及块组描述符表、位图块、inode节点和目录项的结构。通过本文,读者可以快速了解Linux文件系统的建立过程和Ext3文件系统的内部结构,为进一步深入学习和理解提供了基础知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》
新⼈⾸单¥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
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部