web-dev-qa-db-fra.com

Comment vérifier si le DVD-R est fermé?

Lorsque je grave un DVD avec Brasero, il me demande si je veux fermer le DVD après la gravure ou le laisser ouvert pour ajouter des fichiers ultérieurement.

Comment vérifier si un DVD est en lecture seule ou s'il est encore inscriptible? Je parle bien sûr de DVD-R, pas de disques DVD-RW.

Je cherche une sorte de commande de console pour vérifier si le disque est fermé ou non.

3
David

le test de dessert répond exactement à la question de David.

Mais comme je l'ai dit dans mon commentaire, nous avons trois états possibles pour le DVD-R. Pour les distinguer tous, on peut utiliser l’option cdrskin -minfo. (Notez bien: -minfo sans le "s" de -msinfo.)

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

Cela devrait donner 4 résultats de texte possibles sur la sortie standard.

Avec un support vierge (non utilisé et inscriptible):

disk status:              empty

Avec un support annexable (écrit et toujours accessible en écriture):

disk status:              incomplete/appendable

Avec un support fermé (écrit et non en écriture):

disk status:              complete

Quatrième résultat possible, si quelque chose ne va pas avec l'accès au support, aucun texte n'apparaîtra du tout. Dans ce cas, vous devez répéter l’exécution sans 2>/dev/null | grep '^disk status:' afin de voir tous les messages.

(J'utilise /dev/sr0 dans l'exemple, car /dev/hdc n'est plus à la mode en tant que nom de périphérique depuis au moins la version 3 du noyau.)

1
Thomas Schmitt

Vous pouvez utiliser cdrskin pour obtenir cette information. Voici les deux options qui pourraient être utiles (de man cdrskin, souligné par moi):

-minfo
Imprime des informations sur le support chargé. Cela inclut le type de média, état d'inscriptibilité et une table de contenu assez lisible.
- msinfo
Récupérer informations multi-sessions pour préparer une session de suivi par option -C des programmes mkisofs, genisoimage ou xorriso -as mkisofs. Imprimer le résultat sur la sortie standard. Cette option redirige vers stderr toutes les sorties de message, à l'exception de l'option --tell_media_space et de sa propre chaîne de résultat, composée de deux nombres. La chaîne de résultat doit être utilisée comme argument de l'option -C avec lesdits programmes. Il donne l'adresse de début de la session la plus récente et l'adresse de départ prévue de la prochaine session à ajouter. La chaîne est vide si la session la plus récente n'a pas été écrite avec l'option -multi. Pour pouvoir travailler sur un support écrasable, cette option doit être accompagnée de l'option --grow_overwriteable_iso.

La page de manuel contient également une liste d’exemples, dont l’un montre l’utilisation de -msinfo:

Obtenir des informations sur plusieurs sessions pour l'option -C du programme mkisofs:

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

Pour résumer, vous devriez pouvoir tester l'applicabilité du script sur un CD/DVD au script suivant:

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

Version Oneliner:

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

cdrskin prend le lecteur par défaut, ce qui devrait convenir à presque tout le monde. S'il utilise le mauvais périphérique, spécifiez-le explicitement avec l'option, par exemple. dev=/dev/sr1. En cas de doute, vous pouvez afficher des informations sur un périphérique avec l'option -checkdrive.

1
dessert