Jul 102011
 

gcdemu-logo Avevo bisogno di montare qualche immagine da Nero, e così ho scoperto un piccolo programma molto utile: CDEmu .

CDEmu è un emulatore di dispositivi CD/DVD-ROM per linux, sotto licenza GPL v2 o successiva. Si tratta di una bozza di riscrittura del programma progetto CDEmu , che è stato iniziato da Robert Penz.

E mentre ero alla ricerca di qualche documentazione ho trovato questo utile documento dal Forum Gentoo , un po’ vecchio, ma ancora buono:

Ora che CDemu 1.0.0 è in Portage ho deciso di aggiornare il mio script Nautilus per il mount. Che cosa fa? Basta fare un clic con il tasto destro su un’immagine, scegliere Script, disk-mount. E caricherà la vostra immagine in un dispositivo disponibile, l’ automounter del desktop fa il resto. Facile. CDemu supporta tutti i tipi di immagini, al contrario di mount -o loop, che può gestire solo le iso. Inoltre, non è necessario disporre dei diritti di root per il mount.



Lo script può essere adattato anche per essere eseguito da linea di comando. Basta sostituire le occorrenze di zenity --error --text con echo e utilizzare lo script come questo: disk-mount /path/to/image

Requisiti: CDemu 1.0.0 in daemon mode, Zenity

In primo luogo, fare l’emerge cdemu (smascherarlo prima) e zenity. Consiglio di impostare i dispositivi su un valore superiore in /etc/conf.d/cdemud, altrimenti si può montare una sola immagine per volta.
Avviare il demone (/etc/init.d/cdemud start) e impostarlo per l’avvio automatico in fase di boot (rc-update add default cdemud)
Creare uno script in /home/*user*/.gnome2/nautilus-scripts e chiamarlo disk-mount o qualcosa del genere. Incollate questo nel file e rendetelo eseguibile:

#!/bin/bash
 
# CD image mounter for CDemu 1.0.0
# v0.2 by haarp
# Todo: Make it possible to parse more than one file at once ($2, $3, etc.)
 
# Make sure the daemon is running
if pgrep cdemud >/dev/null; then
:
else zenity --error --text "CDemu daemon is not running, aborting."; exit 1
fi
 
# Make sure we have a free device and save lowest free dev in $DEV
DEV=$(cdemu -b system status | grep "N/A" | head -n1 | awk '{print $1}')
if [ ! "$DEV" ]; then
zenity --error --text "You can not load any more images."; exit 1
fi
 
# Get filename extension and make it lower-case
EXT_LOW=$(tr '[:upper:]' '[:lower:]' <<< "${1##*.}")
 
SUPPORT="0"
 
# Automatically parse supported extensions and put them in $supported
supported=(); while read line; do supported+=(${line##*:}); done < <(cdemu -b system supported-parsers)
 
for ELEMENT in "${supported[@]#.}"; do      # If extension is part of supported extensions...
if [ "$ELEMENT" = "$EXT_LOW" ]; then
SUPPORT="1"
fi
done
 
if [ "$SUPPORT" = "1" ]; then
 
# Execute CDemu, load image into $DEV and save output in $CDEMU
CDEMU=$(cdemu -b system load $DEV "$1")
 
# Test whether it really got loaded. If not, pop message box containing $CDEMU
CDEMULINE=$(cdemu -b system status | grep "$1")
if [ ! "$CDEMULINE" ]; then
zenity --error --text "$CDEMU"
fi
 
# Note: CDemu doesn't return a proper exit value on failure, else below code would work
#if CDEMU=$(cdemu -b system load $DEV "$1"); then
#   :
#else zenity --error --text "$CDEMU"
#fi
 
else zenity --error --text "Selected file is not a supported image."; exit 1
fi

Ora tasto destro del mouse su un’immagine, selezionare “Script” e “disk-mount”. Sarà montato il disco, se possibile. In caso di errore, vi darà il messaggio di errore emesso da cdemu. Per scaricare l’immagine, semplicemente “espellere” il disco.

Per immagini .bin avrete bisogno di un cue-sheet. Ho uno script anche per questo. Si presuppone che l’immagine bin contenga solo una traccia di dati;

#!/bin/bash
# Create Cuesheet for BIN images
 
# Isolate the filename without the extension.
BASE=`echo "$1" | sed 's/\.[^.]*$//'`
 
cat << EOF > "${BASE}.cue"
FILE "$1" BINARY
  TRACK 01 MODE1/2352
    INDEX 01 00:00:00
EOF

Limitazioni :
– Non selezionare più di un file, solo il primo sarà montato
– Attualmente, questo script è impostato per funzionare con la modalità del demone cdemud.

Non ho testato la modalità utente cdemud, ma lo script deve essere modificato per funzionare con esso

Popular Posts:

Flattr this!

  3 Responses to “Facile montaggio di una immagine con CDemu e Nautilus”

  1. You can also try my indicator applet Mounty. It uses fuse-utils to mount iso, img, bin, mdf, nrg
    https://launchpad.net/mounty

  2. awk ‘ /N\/A/ { print $1; exit }

    Otherwise very cool! 😉

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*