Существуют команды basicly 2, чтобы сделать это...
необходимо выполнить их, имеет корень. Просто прочитайте их руководства, чтобы узнать, как использовать их.
Попробуйте сделать это из интерфейса командной строки примерно так:
# 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
И если вы хотите сделать это из программы, просто используйте комбинацию системных вызовов от человек 2 ...
например open, lseek,
и read
с параметрами из примера dd
.
Остальные в значительной степени покрыли это. Вам необходимо
получить доступ к файлу устройства на диске (либо быть пользователем root, либо, лучше, изменить права доступа к нему)
использовать функции ввода-вывода файла для чтения секторов = фрагментов (обычно) 512 байт с указанного диска.
Я не уверен, какой программный подход лучше всего, но из командной строки Linux вы можете использовать команду dd в сочетании с необработанным устройством для вашего диска, чтобы напрямую читать с диска .
Вам необходимо выполнить sudo эту команду, чтобы получить доступ к необработанному диску (например, /dev/rdisk0).
. Например, следующее будет читать один 512-байтовый блок со смещением 900 блоков от вверху disk0 и выведите его на стандартный вывод.
sudo dd if=/dev/rdisk0 bs=512 skip=900 count=1
См. справочную страницу dd, чтобы получить дополнительную информацию о параметрах для dd.