查找文件占用了哪些硬盘扇区

2024-01-04

我正在寻找一种简单的方法来查找哪些扇区占用了给定的文件。我的语言偏好是 C#。

从我的 A-Level 计算课程中,我了解到硬盘驱动器在磁盘的前几 KB 上有一个查找表。在此表中,每个文件都有一个链接列表,详细说明该文件占用的扇区。因此,我希望有一种方便的方法可以在此表中查找某个文件并查看它占用了哪些扇区。

我尝试过谷歌搜索,但没有发现任何有用的东西。也许我没有在寻找正确的东西,但我根本找不到任何东西。

如有任何帮助,我们将不胜感激,谢谢。


关于驱动器

现代硬盘驱动器的物理几何结构不再可由操作系统直接访问。早期的硬盘驱动器非常简单,可以根据其物理结构(柱面磁头扇区)对其进行寻址。现代驱动器更加复杂,并且使用诸如区域位记录 http://en.wikipedia.org/wiki/Zone_bit_recording,其中并非所有磁道都具有相同数量的扇区。根据它们的物理几何形状来寻址它们已不再实际。

从 fdisk 手册页:

如果可能,fdisk 将自动获取磁盘几何结构。这不一定是物理磁盘几何结构(事实上,现代磁盘实际上没有任何东西) 就像物理几何形状一样,当然不能用简单的圆柱体/磁头/扇区形式来描述)

为了解决这个问题,现代驱动器使用逻辑块寻址来寻址,这是操作系统所知道的。 LBA 是一种寻址方案,其中整个磁盘表示为一组线性块,每个块都是统一的字节数(通常为 512 或更大)。

关于文件

为了了解“文件”在磁盘上的位置(LBA 级别),您需要了解文件是什么。这将取决于您使用的文件系统。在 Unix 风格的文件系统中,有一种称为 inode 的结构来描述文件。 inode 存储文件的所有属性,并指向实际数据的 LBA 位置。

Ubuntu 示例

下面是查找文件数据的 LBA 位置的示例。

首先获取文件的索引节点号

$ ls -i  
659908 test.txt

运行文件系统调试器。 “yourPartition”类似于 sda1,它是您的文件系统所在的分区。

$sudo debugfs /dev/yourPartition 
debugfs: stat <659908>

  Inode: 659908   Type: regular    Mode:  0644   Flags: 0x80000
  Generation: 3039230668    Version: 0x00000000:00000001
  ...
  ...
  Size of extra inode fields: 28
  EXTENTS:
  (0): 266301

“EXTENTS”下的数字 266301 是文件所在的文件系统中的逻辑块。如果您的文件很大,则会列出多个块。可能有一种更简单的方法可以获取该号码,但我找不到。

为了验证我们是否拥有正确的块,请使用 dd 从磁盘读取该块。要找出文件系统块大小,请使用 dumpe2fs。

dumpe2fs -h /dev/yourPartition | grep "Block size"

然后将块大小放入 ibs= 参数中,将范围逻辑块放入 Skip= 参数中,然后像这样运行 dd :

sudo dd if=/dev/yourPartition of=success.txt ibs=4096 count=1 skip=266301

success.txt 现在应该包含原始文件的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找文件占用了哪些硬盘扇区 的相关文章

  • 如何找到 Cocoa 中剩余多少磁盘空间?

    我想我希望能够找到任何存储 而不仅仅是系统磁盘 但这是最重要的 Use NSFileManager attributesOfFileSystemForPath error
  • 在 Vista Ultimate 64 位上获取 HDD(而非卷)序列号

    我曾经想在不使用 WMI 的情况下获取 HDD 序列号 我找到了 我找到并发布在 StackOverFlow com 上的代码在 32 位 Windows XP 和 Vista 上运行良好 当我尝试在 64 位操作系统 特别是 Vista
  • 如何使用C#获取硬盘序列号?

    如何在不使用dll且受VI STA支持的情况下获取硬盘序列号 using System Management public string GetHDDSerial ManagementObjectSearcher searcher new
  • VBA Access 获取 RowSource 来查找查找值

    VBA菜鸟在这里 截至此哀悼 在 MS Access 中 我编写了一个测试函数 根据您传入的某些条件查找记录的值 该函数似乎工作正常 除非我正在搜索的列中有查找 基本上它可能返回 19 并且 19 对应于其他一些表值 看来该列的 RowSo
  • 安装和卸载硬盘

    如何在 Java 编程语言中挂载和卸载硬盘驱动器 与平台无关 因此不使用运行时执行硬编码命令 答案是 是和否 您无法在 java 中挂载或卸载设备 因为每个操作系统都有自己的方法来执行此操作 但是 您可以提供使用适配器模式作为本机接口的ja
  • 实现查找表

    我正在开发一个自定义数据结构 目前正在进行 beta 测试过程 数据将存储在一个数组中 并且该数组可以表示为 4D 2D 和 1D 数组 这三个数组在联合中声明 因为它代表相同的内存寻址 这是给我的班级的声明 一些类 h ifndef So
  • 是否可以确定Environment.SpecialFolder.System 驱动器的Win32_DiskDrive SerialNumber?

    我已经绕了一圈了 似乎在谷歌上也找不到答案 正如标题所说 如果我得到 Windows 正在运行的当前驱动器号 我们可以这样说 Path GetPathRoot Environment GetFolderPath Environment Sp
  • 基于 php 中的键查找值的有效方法[重复]

    这个问题在这里已经有答案了 通过大约 100 000 个键 值对 都是字符串 每个大约 5 20 个字符 的列表 我正在寻找一种有效查找给定键的值的方法 这需要在 php 网站中完成 我熟悉 java 中的哈希表 如果在 java 中工作
  • 如何检测硬盘是否通过USB连接?

    我正在尝试为朋友和家人编写一个小备份程序 并希望它尽可能简单易用 我不想询问用户将数据备份到哪里 我只想搜索并使用连接到计算机的第一个 USB 硬盘 获取硬盘驱动器的唯一 ID 可能也是一个好主意 就像下次运行备份时的双重检查一样 我花了一
  • 将 openCV 查找表 (LUT) 应用于图像

    我想申请定制颜色查找表 LUT 在图像上 我已经看过了openCV LUT Api但我似乎无法做对 bin bash coding utf 8 import os import numpy as np import cv2 b max 23
  • Java 中的查找表?

    在我的计算机科学课程中 我们正在学习查找表 但我们的老师没有在他发布的课程页面中提供任何示例 也没有在他提供的视频中提供任何示例 他所做的只是告诉我们那是什么 但他希望我们在下一次作业中使用它们 但他未能给我们提供如何做到这一点的例子 在学
  • Linux 中 C++ 的低级磁盘操作

    linux中有哪些方法可以用C 进行低级磁盘操作 我正在尝试在磁盘上编写自己的数据管理器 例如 我想在Linux环境中创建一个C 程序 在磁盘上分配一定数量 连续 的数据 然后自由地允许我读 写该数据块 我认为我不想使用该标准fstream
  • dplyr 查找表/模式匹配[重复]

    这个问题在这里已经有答案了 我一直在寻找一种聪明的或 更整洁 的方式来利用 tidyverse 中的查找表 但找不到令人满意的解决方案 我有一个数据集和查找表 Sample data data lt data frame patients
  • Javascript 中弱引用的查找表

    我有一个树结构 其中动态添加和删除元素 这些元素是从网络动态加载的 我想要实现的是拥有一个查找表 将元素的 id 映射到树中的实际元素 现在 使用简单的映射或对象时的问题是它持有对树元素的强引用 这会在一段时间后使内存膨胀 由于节点 gt
  • 用 C/C++ 计算 32 位 CRC 查找表

    我想计算一个 32 位 CRC 查找表 我尝试的一种方法是使用以下代码这个网站 http www barrgroup com Embedded Systems How To CRC Calculation C Code include
  • 如何使用C++在Linux中获取硬件信息

    我需要获取 Win 和 nix 机器上的硬盘规格 我用了
  • 从对象字面量获取链接值,onchange--Javascript/HTML select

    我知道如何使用 switch case 例程操作此菜单 但我想将 switch case 更改为对象文字 A 部分知道如何获取 onchange 值并打开一个窗口 B 部分知道如何在对象中的名称 值对中查找值 但前提是给它一个硬编码名称来匹
  • 逆向复数二维查找表

    I have some function which maps some input to the output The output is a complex number What I m actually interested in
  • MySQL 多 ID 查找

    我正在尝试向系统添加全文搜索 我想要编写的查询需要涉及多次查找 然后进行搜索 如果可能的话 我有一张教师表和一张科目表 teacherProfile teacherId int primary key subjectOneId int su
  • 计算硬盘吞吐量

    我的应用程序创建了一个 2GB 文件 需要选择系统上速度最快且有足够空间的驱动器 我尝试通过创建文件 设置长度 然后按顺序向其中写入数据来计算吞吐量 如下所示 FileInfo file null var drives DriveInfo

随机推荐

  • 如何在Gridview中添加标题和子标题

    Could Anyone explain How to add Header and Subheader in Gridview shown in the below picture 嗨 你可以这样做
  • ASP.NET Web API 中除 IQueryable 之外的 OData 查询和类型

    我正在构建一个返回 Atom 或 RSS feed 的 ASP NET Web API 应用程序 为此 它构建了一个System ServiceModel Syndication SyndicationFeed和一个习惯MediaTypeF
  • Favicon 在 IE11 中不工作;适用于 FF 和 Chrome

    问题 我的图标已经在 Firefox 和 Chrome 中工作了 在我的版本 Internet Explorer 11 中 我似乎无法让 d ng 图标工作 我的文件存储为 ico 并且我有一个 Firefox 的替代文件 因为您可以在其中
  • Cripy-forms Helper 不生效

    看来 FormHelper 根本就什么也没做 这是我的表格 class PerguntarForm forms Form title forms CharField label T tulo max length 200 categoria
  • 让 Python 使用我的目录中的代码(而不是 /usr/... 中的代码)

    我正在尝试使用已安装在我的 Ubuntu 系统上的Python库 我检查了该库 编辑了一些文件 并编写了一个小脚本来测试我的更改 尽管我将脚本放在与库相同的文件夹中 但 Python 似乎正在使用已安装的版本 中的版本 usr share
  • 二维数组与数组结构

    我是 C 语言新手 所以我的问题可能不符合高标准 我们可以使用 struct mat int a 10 m 10 代替 int mat 10 10 有什么不同 哪个更有效率 你将会拥有m x a y 这是比更复杂的语法m x y 但在词汇上
  • 相当于Python中R的`do.call`

    有没有相当于R的do call在Python中 do call what sum args list 1 10 1 55 do call what mean args list 1 10 1 5 5 do call Description
  • 在android中的表视图中显示数据

    我想从中获取数据database在我的安卓中table view 我应该使用循环吗 静态对此有好处吗 这可能对你有用 try JSONArray jArray new JSONArray result TableLayout tv Tabl
  • 带背景色的按钮,波纹效果仅在左上角呈现

    单击时具有背景颜色的按钮波纹效果呈现异常 左上角仅出现阴影或褪色的矩形选择区域而不是整个按钮区域 对比2017年 Xamarin 4 10 10 2 Xamarin Android SDK 8 3 3 2 已打开与此问题相关的问题更改 设置
  • 单击[关闭]后添加和删除div

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 Demo http jsfiddle net ramswarnak kjTBG 14 在此演示中 当我单击pop1它删除了 div 当我点击
  • 有关情节的一般问题

    Using R 我画了一个类似的阴影图this https stackoverflow com questions 15385063 easiest way to plot inequalities with hatched fill 我想
  • 在 C# 中从实体框架调用存储过程

    这是我的输出看起来像 https i stack imgur com EUHj1 png 这是我的后端 Beta DatabaseEntities db new Beta DatabaseEntities table2 tb new tab
  • 如何在 iPhone 上使用 CALayer?

    目前 我有一个 UIView 子类 可以在屏幕上 标记 单个 2px x 2px CGLayerRef 最多 160 x 240 次 目前 我通过将 UIView 在屏幕上 向上 移动 2 个像素 实际上是 UIImageView 然后绘制
  • 在 Ubuntu 上运行 pyspark.mllib

    我正在尝试在 python 中链接 Spark 下面的代码是test py 我把它放在下面 spark python from pyspark import SparkContext SparkConf from pyspark mllib
  • Java 中 GPGPU/CUDA/OpenCL 的最佳方法?

    图形处理单元上的通用计算 GPGPU http en wikipedia org wiki GPGPU 是一个非常有吸引力的概念 可以利用 GPU 的强大功能进行任何类型的计算 我喜欢使用 GPGPU 进行图像处理 粒子和快速几何运算 目前
  • 在 dart 中同步和等待返回一个值

    我试图了解 Dart 中 async 和 wait 的用法 不知何故 我在某些方法中返回值时遇到问题 考虑下面的代码 Future
  • CSS 文本溢出:省略号;不工作?

    我不知道为什么这个简单的 CSS 不起作用 app a height 18px width 140px padding 0 overflow hidden position relative margin 0 5px 0 5px text
  • 如何将小数值四舍五入到最接近的 0.05 值?

    Net 中有没有办法将小数值四舍五入到最接近的 0 05 值 Ex 7 125 gt 7 15 6 66 gt 6 7 如果现在可用 有人可以向我提供算法吗 怎么样 Math Ceiling myValue 20 20
  • 第一张图片仅来自索引页上的照片集,然后全部位于永久链接页上

    Hello 我一直在玩 tumblr 照片集 目前我正在使用基于砖石的主题 对于照片集 我希望只在索引页面上显示照片集的第一张图像 但在永久链接页面上我希望显示照片集的所有图像 谢谢 我发现的最简单 最有效的方法是在第一张照片后打开评论标签
  • 查找文件占用了哪些硬盘扇区

    我正在寻找一种简单的方法来查找哪些扇区占用了给定的文件 我的语言偏好是 C 从我的 A Level 计算课程中 我了解到硬盘驱动器在磁盘的前几 KB 上有一个查找表 在此表中 每个文件都有一个链接列表 详细说明该文件占用的扇区 因此 我希望