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

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

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

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

2 ответа

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

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

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

Получить многосессионную информацию для опции -C программы mkisofs:

c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null)
mkisofs ... -C "$c_values" ...

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

#!/bin/bash
if [ "$(cdrskin -msinfo 2>/dev/null)" ]; then
  echo "Medium is appendable"
else
  echo "Medium is blank or closed"
fi

Версия Oneliner:

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

cdrskin берет диск по умолчанию, который должен подойти почти всем. Если он использует неправильное устройство, укажите это явно с помощью опции, например dev=/dev/sr1, Если вы сомневаетесь, вы можете отобразить информацию об устройстве с опцией -checkdrive,

Тест десерта точно отвечает на вопрос Дэвида.

Но, как сказал мой комментарий, у нас есть три возможных состояния для DVD-R. Чтобы отличить их всех, можно использовать опцию cdrskin -minfo, (Обратите внимание: -minfo без "с" из -msinfo.)

cdrskin dev=/dev/sr0 -minfo 2>/dev/null | grep '^disk status:'

Это должно дать 4 возможных текстовых результата при стандартном выводе.

С пустым носителем (не используется и доступен для записи):

disk status:              empty

С добавляемым носителем (записанным и доступным для записи):

disk status:              incomplete/appendable

С закрытым носителем (записанным и недоступным для записи):

disk status:              complete

Четвертый возможный результат: если с доступом к среде что-то пойдет не так, текст вообще не появится. В этом случае вы должны повторить прогон без 2>/dev/null | grep '^disk status:' для того, чтобы увидеть все сообщения.

(Я использую /dev/sr0 в примере, потому что /dev/hdcвышло из моды в качестве имени устройства, по крайней мере, версии ядра 3.)

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