Как я могу использовать LibC / WINAPI, чтобы использовать DVD в качестве двоичного двоичного объекта? - PullRequest
0 голосов
/ 28 апреля 2018

Я недавно думал, что всякий раз, когда я использую диск, я использую его, либо записывая на него изображение, либо форматируя его и используя его как USB. Я никогда не использовал его как сырой носитель для записи байтов в / чтения байтов.

Теперь мне любопытно, можно ли использовать DVD в качестве двоичного объекта двоичных данных, на которые я могу записывать биты по своему усмотрению.

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

Мне любопытно, могу ли я сделать то же самое без форматирования диска, так что единственными битами на нем являются те, на которые я пишу, или те, которые по умолчанию.

Подводя итог, я хочу иметь возможность выполнять следующие операции на неотформатированном DVD-RW

  1. чтение группы байтов со смещением в пул байтов в памяти
  2. перезаписать группу байтов со смещением от пула байтов в памяти, не затрагивая другие байты на диске

Как это можно сделать?

Спасибо заранее.

1 Ответ

0 голосов
/ 29 апреля 2018

В Linux вы можете просто открыть блочное устройство и сделать достаточно выровненные записи:

Вам нужно только один раз отформатировать носитель как DVD + RW, используя dvd+rw-format. Это относительно простая процедура, поэтому вы можете извлечь ее из исходного кода этого инструмента.

Однако, согласно документации ядра, что такое «достаточно выровненная запись», в некоторой степени зависит от интерпретации - в спецификации указано 2 КиБ, но некоторые диски требуют большего выравнивания. На этом уровне также отсутствует выравнивание износа или переназначение секторов, поэтому для хороших результатов действительно необходимо использовать структуры данных на диске, которые отражают, что эта технология в действительности ближе к однократной записи, а не к произвольному доступу.

...