扇区和文件对应关系

文件系统块和内存页

在说fdisk之前,先说一下操作系统通过分页的方式使用内存,文件系统通过block使用存储,那么他们大小怎么获取呢
首先是获取内存分页大小

# getconf PAGESIZE
4096

然后是获取系统block大小

# sudo /sbin/tune2fs -l /dev/vda1|grep "Block size"  
Block size:               4096

因为文件系统嫌扇区太小,不好操作,所以一般都是将8个扇区合并成一个block,每个扇区大小是512个字节,所以block大小是4096字节。而且保持分页大小和块大小一致便于内存换出等操作。
磁盘本身是通过CHS的方式管理,文件系统是通过block。

fdisk的一点区别

fdisk这个命令大家可能都比较了解,我这篇blog不是和大家说怎么用它,而是它在不同系统上面的差异,先看一个
这里写图片描述
这个里面的start和end是柱面
而对于下面的系统
这里写图片描述
它的start和end代表的是扇区,所以要根据情况而定。而这里的blocks就更奇怪了,它是扇区数的一半。

查找对应关系

这里写图片描述
如果你通过内核得知扇区的位置,怎么有找到文件呢,下面就逐一介绍一下

1.扇区找块

fdisk -lu /dev/设备名称

就可以知道扇区所在操作系统分区,并且可以知道分区的起始扇区

2.确定block

Blocks值 = (出错扇区 – 分区起始扇区)/ 8

3.确定inode

debugfs  分区名称
icheck <block值>

4.确定文件

debugfs  分区名称
ncheck <inode>

这样就能找到相应的文件位置了。

猜你喜欢

转载自blog.csdn.net/u010278923/article/details/79901155