一个有趣的文件系统实验

本文详细介绍了如何进行一个有趣的Linux ext2文件系统实验,包括使用dd创建和格式化磁盘文件,分析文件系统信息,以及利用e2fsprogs工具进行文件系统动态分析。实验涉及查看数据块、inode、超级块等内容,旨在帮助读者深入理解文件系统的工作原理。
摘要由CSDN通过智能技术生成

本文节选自《实验指导手册》第二版第14.1章,下载《实验指导手册》:登陆“奔跑吧linux社区”微信公众号,输入“奔跑吧2”获取下载地址。

有趣的文件系统实验

入门篇第二版第14章是新增的一章,讲文件系统相关的入门知识。实验14-1非常有趣,群里有小伙伴问笨叔,这个实验怎么做啊?这个实验是这样的:
使用dd命令创建磁盘文件file.img并格式化为ext2文件系统,然后通过mout命令挂载到Linux主机文件系统。
(1)查看文件系统的信息,比如数据块的数量、数据块的大小、inode 个数、空闲数据块的数量等信息,并画出文件系统的布局图。
(2)在文件系统中创建文件test.txt,写入一些数据。查看test.txt文件的inode编号,统计test.txt文件占用了哪几个数据块。
(3)使用dd或hexdump命令导出file.img磁盘文件的二进制数据并且分析超级块。读者可以对照Linux内核中的ext2_super_block数据结构来分析磁盘文件的二进制数据。

实验详解

我们在QEMU+runninglinuxkernel平台上做实验。我们首先保证RLK系统能支持ext2文件系统。
修改arch/arm64/configs/debian_defconfig文件支持ext2文件系统。

CONFIG_BLK_DEV_LOOP=y
CONFIG_EXT2_FS=y

然后重新编译内核,并运行。

$ ./run_rlk_arm64.sh build_kernel
$ ./run_rlk_arm64.sh run

使用dd命令来创建一个ext2.img文件。

benshushu:benshushu# dd if=/dev/zero of=ext2.img bs=4K count=64
64+0 records in
64+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0176809 s, 14.8 MB/s

格式化。

benshushu:benshushu# mkfs.ext2 ext2.img 
mke2fs 1.45.0 (6-Mar-2019)
Discarding device blocks: done                            
Creating filesystem with 256 1k blocks and 32 inodes

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

我们先挂载该文件系统。

benshushu:#mkdir /home/benshushu/ext2
benshushu:ext2# mount -t ext2 -o loop ext2.img /home/benshushu/ext2

我们在ext2文件系统中新建一个test.txt文件,然后在该文件里输入一个字符串“I am benshushu”。

上面准备工作完成之后,我们来开始分析这个文件系统了。首先使用dumpe2fs命令来查看这个ext2.img文件系统的布局情况。

benshushu:benshushu# dumpe2fs ext2.img 
dumpe2fs 1.45.0 (6-Mar-2019)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          d56e86f3-afd6-4edd-b1a3-3d7c366655bf
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file
Filesyst
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值