读取超级块

2024-01-05

我知道在 Unix(特别是 Mac OS X)中,超级块存储有关磁盘上数据布局的信息,包括 inode 开始和结束的磁盘地址。我想扫描程序中的索引节点列表以查找已删除的文件。如何找到 inode 开始的磁盘地址?我查看了 statfs 命令,但它没有提供此信息。


既然您提到了 Mac OS X,我们假设您只想针对 HFS+ 执行此操作。这维基百科页面 http://en.wikipedia.org/wiki/HFS_Plus提供了一些有关可能的启动方式的信息,例如它说明了有关磁盘布局的信息:

卷的扇区 0 和 1 是 HFS 引导块。它们与 HFS 卷中的引导块相同。它们是 HFS 包装器的一部分。

扇区 2 包含卷标头,相当于 HFS 卷中的主目录块。卷标头存储有关卷本身的各种数据,例如分配块的大小、指示卷创建时间的时间戳或其他卷结构(例如目录文件或范围溢出文件)的位置。卷标头始终位于同一位置。

分配文件跟踪哪些分配块是空闲的以及哪些分配块正在使用。它类似于HFS中的Volume Bitmap,每个分配块由一位表示。零表示该块空闲,一表示该块正在使用。与 HFS 卷位图的主要区别在于,分配文件作为常规文件存储,它不占用卷开头附近的特殊保留空间。分配文件还可以更改大小,并且不必连续存储在卷内。

之后事情变得更加复杂。继续阅读B* trees http://en.wikipedia.org/wiki/B*-tree, 例如。

我不是 Mac OS 用户,但如果还没有编写用于扫描已删除文件的工具,我会感到惊讶,也许有些工具是开源的,可以提供更具体的起点?

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

读取超级块 的相关文章

  • 硬盘inode节点简单介绍

    一 inode是什么 xff1f 理解inode xff0c 要从文件储存说起 文件储存在硬盘上 xff0c 硬盘的最小存储单位叫做 34 扇区 34 xff08 Sector xff09 每个扇区储存512字节 xff08 相当于0 5K
  • inode节点(详解)

    首先 xff0c 要明确理解inode是理解Linux Unix文件系统和硬盘存储的基础 1 什么是inode xff1f 理解inode xff0c 要从文件存储说起 文件存储在硬盘上 xff0c 硬盘的最小存储单位叫做 扇区 每个扇区能
  • inode以及软硬链接

    一 inode 使用ls l查看文件元数据 xff0c 用来描述数据属性 模式 硬链接数 文件所有组 组 大小 最后修改时间 文件名 使用stat查看 xff0c 查看文件信息 span class hljs comment Access
  • Linux之索引节点inode(index node)

    inode就是索引节点 xff0c 它用来存放档案及目录的基本信息 xff0c 包含时间 档名 使用者及群组等 inode 是 UNIX Linux 操作系统中的一种数据结构 xff0c 其本质是结构体 它包含了与文件系统中各个文件相关的一
  • linux 下理解文件系统的inode

    目录 前言一 inode是什么 xff1f 三 inode的大小四 inode号码五 目录文件六 硬链接七 软链接八 inode的特殊作用 前言 inode是一个重要概念 xff0c 是理解Unix Linux文件系统和硬盘储存的基础 我觉
  • 从指定块地址中读出数据及F2FS inode分析

    有时候我们为了分析文件系统结构等目的 xff0c 需要从指定的块地址中读取数据出来分析 这时候我们可以用两个Ubuntu自带的工具 xff0c filefrag用于获取inode的块地址 xff0c dd命令或者nvme cli 仅适用于N
  • linux/fs/inode.c/_bmap() and bmap()

    bmap函数的实体 用来实现文件数据块号到设备中的逻辑块号的映射 inode是文件i节点指针 xff0c block是要操作的文件数据块号 xff0c creat为创建标志 有0和1两种情况 若create为0 xff08 不置位 xff0
  • PHP获取文件的修改时间、访问时间和inode 修改时间

    filemtime string filename 返回文件上次被修改的时间 xff0c 出错时返回 FALSE 时间以 Unix 时间戳的方式返回 xff0c 可用于 date 例如 xff1a a 61 filemtime 34 log
  • inode的若干锚

    insert inode hash hash an inode 64 inode unhashed inode 64 hashval unsigned long value used to locate this object in the
  • 如何在 ZFS 中设置文件创建时间?

    我刚刚有一台运行 ZFS 的 NAS 我想在将文件传输到其中时保留创建时间 linux ext4 数据现在所在的位置 和 zfs 都存储创建时间或出生时间 对于 zfs 甚至可以通过 stat 命令来报告 但我一直无法弄清楚如何设置文件的创
  • 如何在Linux上高效监控目录变化?

    我正在使用 Magento 有一个功能可以将 CSS 和 Javascript 合并到一个大文件中 不管其优点和缺点 都存在以下问题 最终文件会在多个级别进行缓存 包括但不限于 亚马逊云前 代理服务器 客户端浏览器缓存 Magento 使用
  • 每当在Linux中使用inode创建新文件时,如何获取文件名以及文件的绝对路径?

    我用我的linux操作系统 CentOS 做了一些实验 我想跟踪在同一环境下创建的所有工具日志 工具生成相应的日志 log extn 来跟踪这些更改我编写了一个perl观察程序 它实际上监视目录我设置的 当创建新文件时 它将显示在输出中 但
  • 有什么方法可以使用给定的索引节点号搜索文件或文件名吗?

    我正在从用户那里获取索引节点号 并且必须在文件系统中搜索该文件 如何搜索 inode 编号 我必须使用 C 和 unix 来完成此操作 到目前为止 这是我的代码 include
  • 如何从给定的 inode 获取路径名或 dentry 或结构文件?

    我需要知道如何获取路径名或dentry or struct file来自给定的索引节点 我正在使用file open获得struct file来自路径名 但总是引起内核恐慌 我需要一种方法来将我的 inode 列表中的 inode 与路径名
  • 读取超级块

    我知道在 Unix 特别是 Mac OS X 中 超级块存储有关磁盘上数据布局的信息 包括 inode 开始和结束的磁盘地址 我想扫描程序中的索引节点列表以查找已删除的文件 如何找到 inode 开始的磁盘地址 我查看了 statfs 命令
  • 了解 Ubuntu 中不同对象的相同 inode 编号

    为什么 cdrom 的 inode 号与 cdrom 的 inode 号相同 sys devices platform power在Ubuntu中 以下在我的 Ubuntu 中具有相同的 inode 编号 media BACKUP 1 MI
  • 每个索引节点有多少字节?

    我需要创建大量不是很大的文件 如 4kb 8kb 这在我的计算机上是不可能的 因为它会将所有 inode 占用高达 100 并且我无法创建更多文件 df i dev sda5 Filesystem Inodes IUsed IFree IU
  • 找到具有相同索引节点的所有文件的最快方法是什么?

    我知道的唯一方法是 find home xdev samefile file1 但确实很慢 我想找到一个类似的工具locate 当你有很多文件时 真正的问题就出现了 我认为操作是 O n 没有来自的映射inode命名 唯一的方法是遍历整个文
  • 为什么JDK NIO使用这么多anon_inode文件描述符?

    我正在使用 Sun 的 JDK 1 6 0 26 和 NIO 带有 Netty 在 lsof 中我看到数百个文件描述符anon inode lsof np 11225 fgrep w anon inode java 11225 nobody
  • 是否可以从打开的文件描述符重新创建文件?

    现在 这个问题可能看起来很奇怪 而且可能确实如此 但为了提供一些背景信息 我一直在阅读this http linuxgazette net 105 pitcher html要了解 i 节点 作者给出了一个有趣的例子 FILE fp fp f

随机推荐

  • 从 C 中的二进制文件调用函数 (main())

    我有简单的 c 程序 例如 my bin c include
  • 在多个设备上同步播放音乐

    我正在制作一个像 Galaxy S4 的 Group Play 这样的应用程序 如何在多个设备上同步播放音乐 终于在这里得到了演示项目a link https github com bryan y88 Musics Around 该演示项目
  • 如何设置索引变量的值? - 皮莫

    我正在开发一个与 AC OPF 最佳功率流 相关的项目 我试图使用 pyomo 解决 python 中的问题 有3条母线 母线电压和母线角度受到限制 然而 第 1 条总线的电压必须为 1 角度必须为 0 所以 我尝试了这个 model bu
  • 如何使用 AT 命令获取调制解调器的 SIM 号码 (ICCID)

    我正在尝试获取SIM number ICCID https en wikipedia org wiki Subscriber identity module ICCID not IMSI https en wikipedia org wik
  • 在混合供应商的硬件上运行 OpenCL

    我一直在他们的 Stream 2 0 beta 中使用 ATI OpenCL 实现 当前测试版中的 OpenCL 目前仅使用 CPU 下一版本应该支持 GPU 内核 我下载 Stream 是因为我的工作机器上有 ATI GPU 我编写的软件
  • 如何获得一系列时间块的所有非重叠排列?

    我有一个似乎很简单的问题 我很难在代码 C 中建模 我正在努力寻找参加会议的人可获得的最高潜在学分 课程有时间段 例如安全 101 9AM 10AM 金融 202 4PM 6PM 等 主要规则是 您不能同时参加两门课程 因此您将获得 9 1
  • 如何设置 CMake 为 iPhone 构建库

    我正在尝试使用 CMake 通过手动设置某些属性来生成 iPhone 的 Xcode 配置 这是否是解决此问题的正确方法 我的 CMake 文件如下所示 project MYLIB set LIBRARY OUTPUT PATH PROJE
  • PHPStorm 类型提示基类的子类

    关于这篇文章 在 PHPStorm 中 当我有一个从每个子类返回不同类型的超类方法时 如何使类型提示起作用 https stackoverflow com q 26470325 178728 这是关于 PHPStorm 类型提示中的一种边缘
  • c# 检测文件是否已完成写入

    我正在编写一个 PowerPoint 加载项 用于通过 FTP 传输已转换为 WMV 的文件 我有以下代码可以正常工作 oPres CreateVideo exportName oPres SaveAs String Format expo
  • 使用 Vee-validate 禁用按钮,直到正确填写表单

    我想禁用我的提交按钮 直到我的表单正确填写 这就是我到目前为止所拥有的
  • 在颤动中动态创建的复选框不会改变单击时的状态

    每次按下按钮时 我都会创建一个复选框字段 但生成的复选框在按下时不会更改状态 而是生成的下一个复选框带有更改后的状态 我已附上其当前工作方式的视频 https i stack imgur com dWxxK jpg https i stac
  • 基于 where 谓词从 Rails API 中删除的 Curl 命令?

    我可以看到从here https medium com ConnorFinnegan how to use curl to test a rails api 55fd2c43c999如何根据id删除表记录 即删除 id 1 的用户记录 cu
  • 如何在 SharePoint 2010 Web 部件中显示图像

    我想知道如何在我的 SharePoint 2010 Web 部件中显示本地图像 我真的不知道在CSS中写哪个url Add SharePoint Images mapped folder http msdn microsoft com en
  • this == null // 这怎么可能?

    最近我发现我的应用程序有一些奇怪的行为 它主要用 C 开发 但也使用 CLI C 来实现更好的性能 在 TimeSpan 比较中 我通过一个非常简单的方法得到了 System NullReferenceException TimeSpan
  • 用于编译和运行 C++ 程序的 Bash 脚本

    我正在编写一个 bash 脚本来编译和运行 C 程序 这是我的脚本 bin bash PROG NAME 1 output g PROG NAME redirect the error to a variable echo output s
  • 如何通过主机名 ping docker 网络中的其他容器?

    我有一个简单的 docker compose 设置如下 version 3 services main image python 3 5 2 entrypoint usr bin yes network mode bridge anothe
  • C++ 分配给隐式转换的左值

    考虑一下这段 C 代码 struct Foo float value operator float return this gt value int main Foo foo foo 1 0f Doesn t compile foo isn
  • 对于相同的代码,在 CodeSkulptor 上得到错误的答案

    在在线课程中 在进行与 Python 中的字典相关的作业时 我的一位同事遇到了输出错误 但奇怪的是 相同的代码在 IDLE 上运行良好并打印了正确的代码 autograger 软件支持 Python 2 7 并且基于 Skulpt和 Cod
  • Spring Batch - 读一次写两次

    我是 Spring Batch 的新手 我的要求是我有一个阅读器 它通过 Web 服务调用 数据库调用获取记录 目前我正在将这些记录写入一个表 现在我需要处理相同的记录 读取器读取的记录 并将其写入另一个表中 这里要注意的一点是 第二次写入
  • 读取超级块

    我知道在 Unix 特别是 Mac OS X 中 超级块存储有关磁盘上数据布局的信息 包括 inode 开始和结束的磁盘地址 我想扫描程序中的索引节点列表以查找已删除的文件 如何找到 inode 开始的磁盘地址 我查看了 statfs 命令