Как проверить, закрыт ли DVD-R?

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

Как проверить, доступен ли DVD только для чтения или он все еще доступен для записи? Я говорю, конечно, о дисках DVD-R, а не о DVD-RW.

Я ищу какую-то консольную команду, чтобы проверить, закрыт ли диск или нет.

3
задан 9 February 2018 в 03:34

2 ответа

Вы можете использовать cdrskin для получения этой информации. Вот два варианта, которые могут быть полезны (из man cdrskin, мой удар):

-minfo Распечатать информацию о загруженном носителе. Это включает в себя тип носителя, состояние записи и вполне читаемую таблицу содержимого. -msinfo Получить многосессионную информацию для подготовки последующего сеанса по выбору -C программ mkisofs, genisoimage или xorriso -as mkisofs. Распечатайте результат до стандартного вывода. Эта опция перенаправляет на stderr весь вывод сообщения, кроме одного из параметра --tell_media_space и собственной строки результата, которая состоит из двух чисел. Строка результата должна использоваться как аргумент опции -C с указанными программами. Он дает начальный адрес последней сессии и предсказываемый начальный адрес следующего сеанса. Строка пуста, если последний сеанс не был написан с параметром -multi. Чтобы иметь возможность работать с перезаписываемыми носителями, этот параметр должен сопровождаться опцией --grow_overwriteable_iso.

В manpage также есть список примеров, один из которых показывает использование -msinfo:

-minfo Распечатать информацию о загруженном носителе. Это включает в себя тип носителя, состояние записи и вполне читаемую таблицу содержимого. -msinfo Получить многосессионную информацию для подготовки последующего сеанса по выбору -C программ mkisofs, genisoimage или xorriso -as mkisofs. Распечатайте результат до стандартного вывода. Эта опция перенаправляет на stderr весь вывод сообщения, кроме одного из параметра --tell_media_space и собственной строки результата, которая состоит из двух чисел. Строка результата должна использоваться как аргумент опции -C с указанными программами. Он дает начальный адрес последней сессии и предсказываемый начальный адрес следующего сеанса. Строка пуста, если последний сеанс не был написан с параметром -multi.

Получить многосессионную информацию для опции -C программы mkisofs: c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null) mkisofs ... -C "$c_values" ... [ ! d11] #!/bin/bash if [ "$(cdrskin -msinfo 2>/dev/null)" ]; then echo "Medium is appendable" else echo "Medium is blank or closed" fi

Чтобы подвести итог, вы должны проверить, может ли CD / DVD быть добавленным со следующим скриптом:

[ "$(cdrskin -msinfo 2>/dev/null)" ] && echo "appendable" || echo "blank or closed"

Версия Oneliner:

1
ответ дан 17 July 2018 в 21:18

Вы можете использовать cdrskin для получения этой информации. Вот два варианта, которые могут быть полезны (из man cdrskin, мой удар):

-minfo Распечатать информацию о загруженном носителе. Это включает в себя тип носителя, состояние записи и вполне читаемую таблицу содержимого. -msinfo Получить многосессионную информацию для подготовки последующего сеанса по выбору -C программ mkisofs, genisoimage или xorriso -as mkisofs. Распечатайте результат до стандартного вывода. Эта опция перенаправляет на stderr весь вывод сообщения, кроме одного из параметра --tell_media_space и собственной строки результата, которая состоит из двух чисел. Строка результата должна использоваться как аргумент опции -C с указанными программами. Он дает начальный адрес последней сессии и предсказываемый начальный адрес следующего сеанса. Строка пуста, если последний сеанс не был написан с параметром -multi. Чтобы иметь возможность работать с перезаписываемыми носителями, этот параметр должен сопровождаться опцией --grow_overwriteable_iso.

В manpage также есть список примеров, один из которых показывает использование -msinfo:

-minfo Распечатать информацию о загруженном носителе. Это включает в себя тип носителя, состояние записи и вполне читаемую таблицу содержимого. -msinfo Получить многосессионную информацию для подготовки последующего сеанса по выбору -C программ mkisofs, genisoimage или xorriso -as mkisofs. Распечатайте результат до стандартного вывода. Эта опция перенаправляет на stderr весь вывод сообщения, кроме одного из параметра --tell_media_space и собственной строки результата, которая состоит из двух чисел. Строка результата должна использоваться как аргумент опции -C с указанными программами. Он дает начальный адрес последней сессии и предсказываемый начальный адрес следующего сеанса. Строка пуста, если последний сеанс не был написан с параметром -multi.

Получить многосессионную информацию для опции -C программы mkisofs: c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null) mkisofs ... -C "$c_values" ... [ ! d11] #!/bin/bash if [ "$(cdrskin -msinfo 2>/dev/null)" ]; then echo "Medium is appendable" else echo "Medium is blank or closed" fi

Чтобы подвести итог, вы должны проверить, может ли CD / DVD быть добавленным со следующим скриптом:

[ "$(cdrskin -msinfo 2>/dev/null)" ] && echo "appendable" || echo "blank or closed"

Версия Oneliner:

1
ответ дан 23 July 2018 в 21:57
  • 1
    Тест работает для меня со всеми тремя средними состояниями. Но сообщения ошибочны. Скорее: «Средняя является добавочной». и «среда является пустой или закрытой». Бланк не используется и доступен для записи. Прикрепляемый файл написан и доступен для записи. Закрыто написано и не записывается. Имейте в виду, что wodim с удовольствием читает -msinfo с закрытого DVD-R, но не из пустых. – Thomas Schmitt 9 February 2018 в 00:22
  • 2
    Я просто понял, что cdrskin достаточно работоспособен, чтобы нормально работать без указания устройства вообще - я предполагаю, что он просто использует обычную символическую ссылку /dev/cdrom или подобное внутри. Я адаптировал свой ответ, избавился от всего (не цитируемого) материала /dev/ и добавил абзац для 1%. – dessert 13 February 2018 в 12:43
  • 3
    Отсутствие адреса устройства является проблематичным, если имеется более одного оптического дисковода. libburn приобретает все из них, немного нащупывая их, чтобы получить список дисков и их имена. Затем используется первый, а остальные снова освобождаются. Если вы даете диск явно, то только тот коснется. В GNU / Linux / dev / sr0 теперь очень уверенно первый диск. Чтобы получить список запущенных дисков: cdrskin --devices – Thomas Schmitt 14 February 2018 в 12:52

Другие вопросы по тегам:

Похожие вопросы: