Пишите на pendrive с низким уровнем доступа - PullRequest
2 голосов
/ 28 февраля 2011

Я пытаюсь создать утилиту форматирования низкого уровня для Linux. Есть ли какая-либо библиотека C / C ++, которую можно использовать для доступа к дискам и записи в определенное положение?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 28 февраля 2011

В Linux (и других UNIX-подобных операционных системах) блочные устройства, например, жесткие диски, доступны через специальные файлы, например /dev/sda.Вы можете открыть его в виде файла, делать поиск, чтение и запись.Это не удастся, только если файловая система смонтирована с этого устройства.Смотрите также man sd.

На всякий случай, нет необходимости в утилите низкоуровневого форматирования для Linux.Вы можете заполнить диск 0 байтами, просто используя команду dd, то есть dd if=/dev/zero of=/dev/sda bs=512 count=....После этого просто создайте новую файловую систему, используя mkfs.Таким образом, вам действительно не нужен API C / C ++, он может вписаться в пару строк простого скрипта оболочки.

0 голосов
/ 28 февраля 2011

Я почти уверен, что вы не можете отформатировать эти устройства. Или любое современное запоминающее устройство. Каждое устройство в настоящее время поставляется предварительно отформатированным и не может быть переформатировано (за исключением, возможно, программного обеспечения или встроенного программного обеспечения).

Вы не сказали, почему хотите этого достичь. Я предполагаю, что если вы попробуете достаточно сильно, вы "кирпич" устройства.

Вы можете легко писать в определенную «логическую позицию» через стандартный блочный интерфейс, но на практике, на любом современном диске (то есть, произведенном в последние 15 лет), который не имеет фиксированной связи с физической позицией. Это даже более верно для SDD, чем для дисков.

...