我想直接从磁盘读取一个特定的扇区。我目前已经用完了想法,并且提出了一些关于如何去做的建议将会很棒! (我是一个Linux新手)阅读单扇区
Q
阅读单扇区
5
A
回答
5
尝试是这样的,从CLI做到这一点:
# df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 27G 24G 1.6G 94%/
# dd bs=512 if=/dev/sda2 of=/tmp/sector200 skip=200 count=1
1+0 records in
1+0 records out
从man 4 sd
:
FILES
/dev/sd[a-h]: the whole device
/dev/sd[a-h][0-8]: individual block partitions
如果你想从内做到这一点程序,只需使用来自man 2 ...
(如open, lseek,
和read
)的系统调用组合,并使用来自dd
示例的参数。
2
我不确定什么是最好的编程方法,但是从Linux命令行中,您可以将dd命令与您的磁盘的原始设备结合使用,以便直接从磁盘读取数据。
您需要sudo此命令才能访问原始磁盘设备(例如/ dev/rdisk0)。
例如,以下内容将从disk0顶部的900个块的偏移量中读取一个512字节的块并将其输出到stdout。
sudo dd if=/dev/rdisk0 bs=512 skip=900 count=1
查看dd手册页以获取有关dd参数的更多信息。
0
其他人已经涵盖了它。您需要
访问磁盘的设备文件(或者是根,或者更好,更改它的权限)
使用文件IO功能读取的扇区=(通常)块512来自所述磁盘的字节。
+0
你能否提到一些特定的c编程语言函数来读写扇区 – Mehdi 2016-07-02 15:47:05
0
你会用这个dd,或者你可以写一个c程序并使用write sys调用。
相关问题
- 1. MFRC522和特定扇区/块阅读
- 2. 从mifare classic中读取特定扇区
- 3. 磁盘扇区读取目标c
- 4. 在C#中读取和写入扇区#
- 5. 读取扇区的引导程序
- 6. 复制扇区?
- 7. 简单的引导扇区代码:0
- 8. 加载pendrive扇区
- 9. 从扇区软盘
- 10. 阅读清单
- 11. 阅读区域设置
- 12. C#TryParseExact阅读时区
- 13. 在MATLAB中着色扇区
- 14. 从CD加载扇区
- 15. 在扇区0写入?
- 16. libparted确定使用扇区
- 17. JFreechart填充扇区系列
- 18. CD/DVD引导扇区
- 19. U1扇区向左移动
- 20. 简单的引导程序无法在真机上读取int 13h的扇区
- 21. 如何使用Android NDK读取和写入SD卡中的单个扇区
- 22. 分区的开始和结束扇区?
- 23. ReadFile FILE_FLAG_NO_BUFFERING如何读取两个扇区之间的数据
- 24. 如何在Windows中使用DeviceIoControl()读取各个扇区/群集?
- 25. Writefile,坏扇区的读取文件代码错误
- 26. 无法读取磁盘扇区的汇编语言
- 27. 在linux内核级别,如何读写硬盘扇区
- 28. 在启动盘上读取一个扇区
- 29. 在Linux上使用C++读取硬盘扇区
- 30. Assembly - 读取虚拟磁盘的下一个扇区
考虑到现在磁盘的大小,可以使用'lseek64()'或'#define _FILE_OFFSET_BITS 64'来确保'off_t'是一个64位类型。 – caf 2009-11-18 02:04:27
您能否给一些c编程语言特定的函数来读写磁盘扇区? – Mehdi 2016-07-02 15:50:37