读取启动盘上的扇区

2024-01-10

这是我的问题的延续读取超级块 https://stackoverflow.com/questions/339795/reading-the-superblock.

假设我想以 Mac OS X 中的 HFS+ 文件系统为目标。我如何读取启动盘的第 2 扇区?据我所知,Unix 只提供系统调用来读取文件,而这些文件永远不会存储在该位置。

这是否需要 1)程序运行内核模式,或 2)程序以汇编语言编写?我宁愿避免这些限制中的任何一个,尤其是后者。


我自己在 Mac 上完成了此操作,请参阅我的磁盘编辑器工具:http://apps.tempel.org/iBored http://apps.tempel.org/iBored

您可以使用 /dev/diskN 或 /dev/rdiskN 打开驱动器(N 是从 0 开始的磁盘索引号)。然后您可以使用 lseek(确保使用 64 位范围版本!)并对打开的文件进行读/写调用。

另外,使用 shell 命令“ls /dev/disk*”查看当前存在哪些驱动器。请注意,驱动器还具有“sM”扩展名,其中 M 是分区号。这样,也可以直接读取分区。

或者,您可以只使用 shell 工具“xxd”或“dd”来读取数据,然后使用它们的输出。可能会更容易。

不过,除非您以 root 身份运行,否则您将无法读取根磁盘和其他内部磁盘。只要用户安装了其他驱动器,或者禁用了它们的权限,您就可以访问它们。但您可能还需要先卸载驱动器的卷。在 shell 命令“diskutil”中查找卸载命令。

希望这可以帮助。

2017 更新:在 OS X 10.11 及更高版本上SIP https://stackoverflow.com/q/30768087/43615也可能会阻止您直接访问磁盘扇区。

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

读取启动盘上的扇区 的相关文章

  • 复制时如何使用 NSFileManager 覆盖文件?

    我正在使用此方法来复制文件 fileManager copyItemAtPath sourcePath toPath targetPath error error 我想覆盖已经存在的文件 此方法的默认行为是引发异常 错误 文件存在 当文件存
  • 如何使用 C++ 在 Windows 上创建具有 UNICODE 路径的文件

    我想知道哪个 Win32 API 调用正在创建具有 UNICODE 路径的文件 只是为了确保 我在这里谈论的不是内容 而是文件路径 如果有人能用 MSDN 网址打我 我将不胜感激 这次我的 google fu 失败了 预先感谢一百万 See
  • 存储大量数据:数据库还是文件系统?

    假设我的应用程序创建 存储和检索大量条目 数千万 每个条目具有可变数量的不同数据 例如 某些条目仅具有几个字节 例如ID 标题 而某些条目可能具有兆字节的补充数据 每个条目的基本结构相同 并且采用 XML 格式 条目是任意创建和编辑的 很可
  • 如何在 C++ 中生成独立于操作系统的路径

    我有一个目标路径和一个字符串文件名 我想用 c 将它们连接起来 有没有办法做到这一点 让程序 编译器在 Windows 或 UNIX 系统的 和 之间进行选择 如果您想在编译时执行此操作 您当然可以执行类似的操作 ifdef WIN32 d
  • 监视目录的更改 - 潜在的高内存

    我目前正在使用nodeJS 中的脚本来监视目录 及其子目录 并在将文件放置在那里后执行一些功能 实际上 这将是一个 FTP 用户上传文件 对其进行处理 然后删除 显然 我已经看到脚本的 CPU 使用量很高 因为它遍历目录 等待文件可见 但令
  • Windows C# 实现linux dd 命令

    我正在编写一个在 Windows 上运行的 C Net 应用程序 它需要拍摄可移动磁盘的映像并将其放入 Linux Live USB 上 Live USB 被插入目标机器并启动 启动时它会运行一个脚本 该脚本使用 dd 命令 如下所示将其闪
  • 有没有一种异步方式知道文件已更改?

    我想异步监视文件的任何更改 也就是说 当文件被修改 删除时 我希望在我的程序中进行回调 可能来自内核 该文件只是一个纯文本文件 我知道可以使用轮询机制来做到这一点 但我正在寻找一种基于事件的解决方案 我读到了有关 inotify 的内容 但
  • 创建文件系统“驱动程序”

    我想为 Windows 物理磁盘上的自定义文件系统创建一个 驱动程序 我不完全知道解释它的最佳方式 但该设备已经具有适当的驱动程序以及 Windows 与之通信的所有内容 但我希望用户能够将设备插入到他们的电脑 将其显示在 我的电脑 中 并
  • C++ FileIO Copy -VS- System("cp file1.x file2.x)

    编写文件复制例程会更快 更高效 还是应该执行对 cp 的系统调用 文件系统可能不同 nfs local reiser 等 但它始终位于 CentOS Linux 系统上 Invoking http en wikipedia org wiki
  • 使用 fnmatch.filter 按多个可能的文件扩展名过滤文件

    给出以下一段 python 代码 for root dirs files in os walk directory for filename in fnmatch filter files png pass 如何过滤多个扩展名 在这种特殊情
  • 路径组件应该是“/”

    我正在尝试创建一个FileSystem保存 ext2 文件系统的对象 我的URI似乎无效 给我一个路径组件应该是 运行时错误 我使用的是 Windows 我的项目位于 Eclipse 中 有一个名为 fs 的子目录 用于保存文件系统映像 我
  • 读取 NTFS 格式的 MFT

    在网上寻找如何读 写 MFT 的解释时 我发现了以下部分 http www installsetupconfig com win32programming 1996 20AppE apnilife pdf http www installs
  • 如何在嵌入式Linux中高效地在VFAT分区上创建大文件

    我正在尝试在嵌入式 Linux 盒子中使用 dd 命令在 VFAT 分区上创建一个大的空文件 dd if dev zero of mnt flash file bs 1M count 1 seek 1023 目的是跳过前 1023 个块并在
  • 使用 FileSystemWatcher 从文件中获取新行

    我正在观看一个包含以下代码的文件 FileSystemWatcher watcher new FileSystemWatcher watcher Path C watcher Filter t log watcher Changed new
  • Java (JGIT) Files.delete() 删除文件失败,但 file.delete() 成功

    我正在使用 jgit 版本4 8 0 201706111038 r 并添加一个关闭钩子以在终止后删除临时目录 但是 关闭挂钩无法从内部删除某些文件 git子目录 尽管按照 jgit 的要求关闭了 Git 对象 但有趣的是 只有当我使用 Pa
  • 检查lua中是否存在目录?

    如何检查 lua 中是否存在目录 如果可能的话最好不使用 LuaFileSystem 模块 尝试做类似以下 python 行的事情 os path isdir path 这是一种在 Unix 和 Windows 上都适用的方式 无需任何外部
  • 在Python中写入文件之前如何确保文件存在或可以创建?

    我正在编写一个函数 我希望它能够touch一个文件 以便我可以写入该文件 如果该文件不存在 我会收到错误消息 我怎么能这么说呢 只需打开要写入的文件 如果该文件不存在 则会创建该文件 假设您具有写入该位置的适当权限 f open some
  • 如何从 ext2/ext3 文件系统上的稀疏文件中删除一些块

    当您写入稀疏文件时 ext2 ext3 文件系统会自动分配块 但是当我不再需要其中的某些块时 我发现没有办法做到这一点 感觉就像使用 malloc 而不使用 free 是否可以 释放 稀疏文件的某些块 如果是的话 怎么样 不要告诉我将其复制
  • 程序关闭后,Windows 中的文件可以锁定多长时间?

    在我使用的几个脚本中 我遇到了间歇性的问题 有时 尝试删除文件时脚本会失败 根据错误日志 由于该文件被其他进程访问 我猜测在对文件执行的上一个操作结束后 Windows 没有时间释放该文件 窗口应该有时间再次释放文件的时间是多少时间 如果
  • 如何在Android data/data/project文件系统中创建文件目录和文件夹

    我正在开发一个视频编辑器程序 并且对 android 和 java 相当陌生 我希望发生的是 当用户按下 创建新项目 按钮时 会弹出一个对话框 询问用户项目的名称 我已经把那部分写下来了 但是我想要的是 当用户在该对话框上按 确定 时 我的

随机推荐