Я записываю файлы на DVD с пометкой один раз в день. Каждый раз, когда я добавляю DVD, мне нужно извлечь DVD, а затем перезагружать DVD, чтобы увидеть файл, который я только что написал. Я использую RHEL 5.0 и для инициализации чистого DVD, я использую команду:

growisofs -Z /dev/dvd -rJ -use-the-force-luke=notray file1

который запишет файл1 на DVD. Далее я попытаюсь записать файл2 на DVD (без извлечения диска между ними) с помощью команды:

growisofs -M /dev/dvd -rJ -use-the-force-luke=notray file2

и это не с ошибкой:

"/usr/bin/mkisofs: неверный аргумент. Искать ошибку на старом изображении

: - (mkisofs не удалось: 22 "

Если я извлеку, а затем снова попытаюсь выполнить команду growisofs -M, она успешно запишет файл2, но если я попытаюсь записать файл3, произойдет сбой файла3 с той же ошибкой.

Я помню, как читал кое-где, где (возможно, это была справочная страница), что между сеансами записи вам, возможно, придется извлечь и повторно загрузить DVD, однако у меня не было этой проблемы с дисками, не совместимыми с Blue-Ray.

Даже если это проблема с дисками Blue-Ray, которые я пробовал, есть ли способ имитировать извлечение без фактического извлечения диска? Или какой-то другой способ обойти это без физического извлечения DVD? Я не могу выполнить извлечение -T, потому что это накопитель для ноутбука, поэтому накопитель не может закрыться самостоятельно.

Любая помощь или идеи будут с благодарностью. Я посмотрел на команды ioctl, такие как:

ioctl(file_descriptor, CDROMSTART)
ioctl(file_descriptor, CDROMSTOP)

но я не смотрел на многие другие команды или нашел команду, которая решает мою проблему ... пока

Благодарю.

2 ответа2

2

Кажется, что ioctl CDROMRESET заставляет систему перечитывать оглавление устройства. Вы можете попробовать это к вашей проблеме, я думаю, что это должно работать

1

Извлечение требуется некоторыми приводами - оно заставляет их перечитать содержимое диска после того, как сеанс записи изменил это содержимое. Это аппаратная вещь, поэтому, чтобы ее подделать, вам нужно убедить накопитель в том, что он только что загрузил новый носитель и должен выполнить первоначальное сканирование этого нового носителя.

Я не знаю, возможно ли это через стандартные IOCTL - я ожидаю, что вам придется взломать прошивку диска (и, возможно, добавить свой собственный специальный IOCTL в код драйвера), чтобы сделать это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .