Как проверить, закрыт ли 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.)