文件系统2

转载 2011年01月16日 17:19:00

本文将介绍怎样读取一个分区的superblock:

1. 首先我们查看一下在磁盘上有哪些分区,通过fdisk -l

image

这里有三个分区,我们下面查看/dev/sda3(这是一个device file)

2. 从/dev/sda3拷贝1024B-2048B(这就是superblock的位置)到一个叫superblock的文件

image

这里我们用到了dd这个工具,它在对磁盘进行这样读写操作时非常有用,具体请见man。

bs=1k 每次读写的块大小

skip=1 偏移多少块开始读(这里块为bs=1k,偏移1,表示从1k开始读)

count=1 读的大小(这里表示读1k)

if,of 分别表示从哪里读和写到哪里去。

这里你也许会问为什么要从1k处开始读,并且就读1k的大小呢?下图就是一个分区的物理存储结构:

Partition_Structure

从图中我们可以看到第一个Block的第一个1k处是存储的Boot Block,而superblock是从1k开始,大小为1k。

 

3. 查看superblock文件

用vim打开我们刚才从/dev/sda3复制出来的superblock文件,由于是二进制文件,我们在用vim打开之后要用:%!xxd转换成16进制形式。

image

到这里其实我们已经看到了在磁盘上superblock的形式了。下面我想验证一个这个superblock的正确性。

首先,通过查看/usr/include/linux/ext3_fs.h头文件中的struct ext3_super_block:

image

我们可以知道在superblock的头上记录着inodes的个数和block的个数,它们分别是32位。

那从superblock中可以看出:

inodes_count: 0000 3a04(注意:这里是小数端) –> 043a0000 = 70909952

blocks_count: fdc4 3904 –> 0439c4fd = 70894845

那么该如何验证这个结果呢?linux为我们提供了dumpe2fs这个工具:

dumpe2fs /dev/sda3 |less
我们可以看到如下的输出(一部分)

 

 

 

 

 

 

image

到这里,有关如果看superblock的方法,这里就全部都讲完了,同样我们可以用dd查看磁盘上任意的部分

yaffs2文件系统实现原理分析

  • 2017年12月07日 09:55
  • 496KB
  • 下载

iscsi用gfs2文件系统实现磁盘共享

环境: target: storage1:172.25.15.10 initiator: iscsi1:172.25.15.14 iscsi2:172.25.15.15 用iscis方式实...

2文件系统.ppt

  • 2015年06月03日 15:22
  • 765KB
  • 下载

jffs2文件系统工具

  • 2016年10月21日 16:20
  • 4.9MB
  • 下载

制作CRAMFS + YAFFS2文件系统

1.文件系统简述 随着32位CPU价格不断下跌,片上存储设备的容量相比越来越大,越来越多的嵌入式系统开始应用各种嵌入式操作系统。一般在嵌入式领域,只要应用到操作系统的必然会需要一个,甚至是多个文件系统...

支持Yaffs2文件系统的U-Boot的实现

  • 2014年07月23日 17:48
  • 1.71MB
  • 下载

EXT2文件系统

  • 2014年08月15日 17:14
  • 838KB
  • 下载

Linux文件系统:ext2/ext3

Linux之ext2/ext3文件系统
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件系统2
举报原因:
原因补充:

(最多只允许输入30个字)