我想直接從磁盤讀取一個特定的扇區。我目前已經用完了想法,並且提出了一些關於如何去做的建議將會很棒! (我是一個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. 從mifare classic中讀取特定扇區
- 2. 磁盤扇區讀取目標c
- 3. 讀取扇區的引導程序
- 4. 複製扇區?
- 5. 加載pendrive扇區
- 6. 簡單的引導程序無法在真機上讀取int 13h的扇區
- 7. 如何使用Android NDK讀取和寫入SD卡中的單個扇區
- 8. crc檢查usb pendrive扇區
- 9. U1扇區向左移動
- 10. 在MATLAB中着色扇區
- 11. 從CD加載扇區
- 12. CD/DVD引導扇區
- 13. 分區的開始和結束扇區?
- 14. 需要讀取U盤的扇區0並將其移動
- 15. 如何在Windows中使用DeviceIoControl()讀取各個扇區/羣集?
- 16. ReadFile FILE_FLAG_NO_BUFFERING如何讀取兩個扇區之間的數據
- 17. APDU MIFARE經典4K讀取特定扇區/塊的值
- 18. 在linux內核級別,如何讀寫硬盤扇區
- 19. 在Linux上使用C++讀取硬盤扇區
- 20. 正在讀取FAT32文件系統的引導扇區
- 21. 在啓動盤上讀取一個扇區
- 22. 閱讀單個字符java
- 23. 簡單的XML閱讀foreach
- 24. 閱讀單行pickle python
- 25. 閱讀單元格的值
- 26. 閱讀所選單元格
- 27. 閱讀樹菜單Xml C#
- 28. 簡單的UDP閱讀器
- 29. 從JSP文本區閱讀案例
- 30. PowerShell不要閱讀區正確
考慮到現在磁盤的大小,可以使用'lseek64()'或'#define _FILE_OFFSET_BITS 64'來確保'off_t'是一個64位類型。 – caf 2009-11-18 02:04:27
您能否給一些c編程語言特定的函數來讀寫磁盤扇區? – Mehdi 2016-07-02 15:50:37