如何在磁盘上表示文件

时间:2010-10-21 02:16:38

标签: file filesystems disk representation

所以我想问一下,如果这是显而易见的,请原谅我,或新手问题: 如果我创建一个文件,说一个文本文件 - 保存它,(我正在使用Ubuntu),所以我创建的这个文件有一些与之相关的额外信息,比如我硬盘上的位置保存。如何查看这些信息?这些信息存储在我的特定文件中的哪个位置?如何检查存储在我的磁盘上的文件,我假设是什么,字节?

也许我需要关注这个问题,

谢谢,

2 个答案:

答案 0 :(得分:5)

这是file system的责任。简而言之,文件系统是一个数据结构,它布置在整个磁盘上 - 这就是磁盘的“格式化” - 并且您的文件被保存到该数据结构中。有很多文件系统,它们的细节差异很大。 http://www.forensics.nl/filesystems有大量关于文件系统设计和组织的论文。我从McKusick的A Fast File System for UNIX开始;它已经过时了,但它包含了许多今天仍然具有影响力的想法。

如果要查看 磁盘上的数据结构,则需要特定于文件系统的取证工具。 Ubuntu可能会在ext2系列中使用某些内容,因此请尝试debugfs

答案 1 :(得分:2)

我想也许你需要关注一点: - )

对于UNIX文件系统,有许多不同的类型。

我最熟悉的那个(ext2)在磁盘上有一个包含目录条目的“文件”。这些条目是简单的名称和指向文件本身的指针(这就是为什么你可以有多个目录条目指向同一个文件,hard links)。

文件本身是inode,其中包含文件的属性(所有者,大小,权限等)。

inode还包含指向文件内容的直接和间接指针。直接,我的意思是指向数据块的指针。

间接指针是指向内容指针的指针。我相信你可以进入另外两个级别的间接,这会给你真正庞大的文件大小:

alt text

有关Wikipedia的更多详情。