磁盘上的文件如何表示

Posted

技术标签:

【中文标题】磁盘上的文件如何表示【英文标题】:how is a file represented on a disk 【发布时间】:2011-04-28 09:11:55 【问题描述】:

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

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

谢谢,

B

【问题讨论】:

..所以只是为了确定,不是文件系统,而是磁盘上的位置磁道、扇区等。直接浏览磁盘... 非常感谢您的回复 【参考方案1】:

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

如果您想查看您的磁盘上的数据结构,您需要一个特定于文件系统的取证工具。 Ubuntu 可能使用了 ext2 家族中的某些东西,所以试试 debugfs。

【讨论】:

【参考方案2】:

我想也许你确实需要稍微集中注意力:-)

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

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

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

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

间接指针是指向内容指针的指针。我相信您可以转到另外两个间接级别,这会为您提供真正庞大的文件大小:

更多详情请关注Wikipedia。

【讨论】:

以上是关于磁盘上的文件如何表示的主要内容,如果未能解决你的问题,请参考以下文章

Emacs基本的按键与命令

怎样查看服务器内存和磁盘空间?

Linux的磁盘分区格式有何区别?

一次磁盘占用率 100% 的排查记录

一次磁盘占用率 100% 的排查记录

保存文件格式