Prüfen ob leere CD eingelegt ist

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
fiberkill
Beiträge: 221
Registriert: 28.03.2007 09:08:30

Prüfen ob leere CD eingelegt ist

Beitrag von fiberkill » 17.09.2018 10:01:04

Hallo zusammen,

kann man mit einem Shellskript prüfen ob eine leere CD bzw DVD eingelegt ist und entsprechend des Ergebnisses dann einen Brennvorgang starten?

lg FK

willy4711

Re: Prüfen ob leere CD eingelegt ist

Beitrag von willy4711 » 17.09.2018 10:15:32

Ist die Annahme richtig, dass du keine GUI hast ?

fiberkill
Beiträge: 221
Registriert: 28.03.2007 09:08:30

Re: Prüfen ob leere CD eingelegt ist

Beitrag von fiberkill » 17.09.2018 10:22:20

Ja, genau.
Ich lasse ein Skript laufen, das mir bestimmte Daten zusammenstellt und ein ISO daraus macht. Danach möchte ich prüfen, ob eine leere DVD im Laufwerk eingelegt ist und den Brennprozess entsprechend starten oder eben nicht starten.

lg FK

willy4711

Re: Prüfen ob leere CD eingelegt ist

Beitrag von willy4711 » 17.09.2018 10:41:41

Ist zwar nicht meinen Baustelle, da ich für so was die GUi benutze, aber ich denke, dass die Prüfung vom Brennprogramm eh vorgenommen wird:
Aus der Beschreibung von Debianburn ist das jedenfalls zu entnehmen.
Wenn du eh ein Skript zum erstellen des ISOs hast, kannst du doch die Befehle zum Brennen des ISOs hinten dran hängen.
Hier gibt es was dazu:
http://www.bigpaul.org/burn/

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Prüfen ob leere CD eingelegt ist

Beitrag von MSfree » 17.09.2018 11:34:18

fiberkill hat geschrieben: ↑ zum Beitrag ↑
17.09.2018 10:01:04
kann man mit einem Shellskript prüfen ob eine leere CD bzw DVD eingelegt ist und entsprechend des Ergebnisses dann einen Brennvorgang starten?
Nein.

Es gibt keine systemnahen Methoden, den Brenner auf vorhandensein eines beschreibbaren Rohlings zu testen. Das kann nur das Brennprogramm.

Wenn du den Brennvorgang einfach ohne vorherige Prüfung startest, führt das Brennprogramm ohnehin eine Prüfung aus und bricht ggfls. mit einer entsprechenden Fehlermeldung ab. Eine vorherige Prüfung ist also eigentlich überflüssig.

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Prüfen ob leere CD eingelegt ist

Beitrag von heisenberg » 17.09.2018 12:40:53

MSfree hat geschrieben: ↑ zum Beitrag ↑
17.09.2018 11:34:18
Wenn du den Brennvorgang einfach ohne vorherige Prüfung startest, führt das Brennprogramm ohnehin eine Prüfung aus und bricht ggfls. mit einer entsprechenden Fehlermeldung ab. Eine vorherige Prüfung ist also eigentlich überflüssig.
Ich finde die Vorgehensweise von fiberkill durchaus umsichtig und sinnvoll. Wenn man weiss, dass keine leere CD drin ist, dann braucht man gar nicht anfangen zu brennen. Dann kann man eine spezifische Fehlermeldung ausgeben, mit der ein Nutzer viel mehr anfangen kann als nur "Beim Brennen ist ein Fehler aufgetreten".

Über Kommandozeilenbrennprogramme kann man das auslesen, ob ein leeres Medium eingelegt wurde. Z. B. mit Debiancdrskin.

Beispiel

Code: Alles auswählen

# cdrskin -minfo 

cdrskin 1.4.6 : limited cdrecord compatibility wrapper for libburn
cdrskin: scanning for devices ...
cdrskin: ... scanning for devices done
cdrskin: pseudo-atip on drive 0
cdrskin: status 1 burn_disc_blank "The drive holds a blank disc"
scsidev: '8,0,0'
Device type    : Removable CD-ROM
Vendor_info    : 'HL-DT-ST'
Identifikation : 'DVDRAM GSA-5120D'
Revision       : 'A115'
Drive id       : 'K2449HE0739 '
Driver flags   : BURNFREE
Supported modes: TAO SAO
cdrskin: burn_drive_get_write_speed = 7056  (40.0x)
ATIP info from disk:
  Is not erasable
  ATIP start of lead in:  -11607 (97:27/18)
  ATIP start of lead out: 359849 (79:59/74)
  1T speed low:  4 1T speed high: 40
Product Id:    97m27s18f/79m59s74f
Producer:      Plasmon Data Systems Ltd

Mounted media class:      CD
Mounted media type:       CD-R
Disk Is not erasable
disk status:              empty
session status:           empty
first track:              1
number of sessions:       1
first track in last sess: 1
last track in last sess:  1
Disk Is not unrestricted
Disk type: undefined

Track  Sess Type   Start Addr End Addr   Size
==============================================
    1     1 Blank  0          359846     359847    

Next writable address:              0         
Remaining writable size:            359847  
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

MaGe
Beiträge: 1708
Registriert: 01.06.2014 17:12:16

Re: Prüfen ob leere CD eingelegt ist

Beitrag von MaGe » 17.09.2018 14:05:24

Vielleicht sowas? ein Script.
https://www.mrunix.de/forums/archive/in ... 35441.html
eventuell anpassen.


gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Prüfen ob leere CD eingelegt ist

Beitrag von reox » 21.09.2018 11:20:00

evt hilft dir das: https://www.kernel.org/doc/Documentatio ... /cdrom.txt

Du kannst CDROM_DISC_STATUS abfragen, das sollte dir einen dieser Werte liefern:

Code: Alles auswählen

	    CDS_NO_INFO
	    CDS_AUDIO
	    CDS_MIXED
	    CDS_XA_2_2
	    CDS_XA_2_1
	    CDS_DATA_1
evt steht CDS_NO_INFO für eine leere CD. Ich kann es mangels Rohlinge nicht testen...
Du kannst dieses Script als Template nehmen: https://github.com/reox/kodi-discdetect ... trayopen.c

soundrolf
Beiträge: 265
Registriert: 21.07.2009 13:50:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Köln

Re: Prüfen ob leere CD eingelegt ist

Beitrag von soundrolf » 21.09.2018 13:36:15

Das wird dir helfen.

#!/bin/bash

# Leider habe ich eine Menge CD's bei denen beide Seite absolut gleich Aussehen
# und ich nicht weiß welche Seite die Beschreibbare ist. Damit ist jetzt Schluss.
# Das nette Script sagt mir ob eine Disk eingelegt oder die Disk bereits Beschrieben ist
# und natürlich auch ob die Disk Beschreibbar ist.
# checkdisk v1.0 28.4.2014
# 20.9.2015 Fehlerabfrage eingebaut
# 14.10.2015 Kommandozeilen version fertig
# 17.10.2015 Farb definition
# checkdisk-cli v1.1 17.10.2015 von Rolf Klein soundrolf@web.de
# 26.10.2015 noch mehr Fehlerabfragen. Parameter ja nein und ist der
# Brenner Überhaupt vorhanden.

# Little help
if [[ $1 = "-h" ]]; then
echo -e
echo -e "Die Gerätedatei (device) kann als Parameter Übergeben werden.
Ohne Parameter Übergabe ist es Gerätedatei /dev/sr0"
echo -e "Benutzung: ${0##*/} [device] \nBeispiel:checkdisk /dev/sr0"
exit 1
fi

# Farbdefinition
RED='\e[1;31m'
YELLOW='\e[1;33m'
CYAN='\e[1;36m'
GREEN='\e[1;32m'
NC='\e[0m'

# Wo ist unser Brenner. evtl. anpassen, oder auf Kommandozeile übergeben.
brenner=/dev/sr0

# Falls wir ein device übergeben haben, dann nehmen wir das.
if [ "$1" != "" ]
then brenner=$1
fi

# Gibt es überhaupt einen Brenner ?
if [ -e "$brenner" ]; then
echo -e "${GREEN}Brenner $brenner vorhanden${NC}"
else
echo -e "${RED}Kein Brenner $brenner vorhanden${NC}"
exit 1
fi

# Fehlermeldung wenn 'udisks' fehlt.
if [ ! -f /usr/bin/udisks ]; then
echo -e "${CYAN}Das Programm 'udisks' fehlt. \nBitte erst das fehlende Paket 'udisks' Installieren${NC}"
exit 1
fi

# Ab hier gehts los.
# Check ob ein Rohling einliegt.
udisks --show-info $brenner |grep -c "blank: *1" >/dev/null

# Auswertung
if [ $? -eq 0 ]; then
# Treffer
echo -e "${YELLOW}Disk in $brenner ist leer und damit Beschreibbar.${NC}"
else
# Mist
echo -e "${RED}Keine Disk in $brenner eingelegt, oder Disk bereits beschrieben.${NC}"
fi

# Ende
exit

LG

Antworten