Script για mount-unmount εικονικών cd-dvd (iso-udf)

tom1972 | Τετ, 01/16/2013 - 00:52 | 8' | 1

Script για mount-unmount εικονικών cd-dvd (iso-udf)

Στα windows υπάρχουν προγράμματα όπως τα daemon tools, το alcohol, και άλλα παρόμοια, τα οποία μπορούν να φορτώνουν εικονικά cd-dvd (παρακάτω θα τα ονομάζω απλά "εικόνες").

Στο LINUX, υπάρχουν αντίστοιχα προγράμματα όπως τα isomaster, acetoneiso2 κ.ά.
Φυσικά υπάρχουν και οι εντολές κονσόλας mount-umount.
Το καλύτερο από όλα, είναι το cdemu, το οποίο φορτώνει όλα τα είδη "εικόνων" όπως iso9660, αλλά και udf.

Παλιά είχα προσπαθήσει να γράψω ένα script-ακι, το οποίο να χρησιμοποιεί τις "μαγικές" εντολές κονσόλας mount-umount iso-udf.

Έχει απλοικό κώδικα, αλλά λειτουργεί OK και σίγουρα δεν κολάει αφού χρησιμοποιεί ατόφιες εντολές του bash (mount, umount).

Όσοι θέλετε να το καλυτερεύσετε ή να το διορθώσετε πολύ ευχαρίστως !!

Μια 1η προσπάθεια είχα κάνει εδώ:
ΕΝΑ ΧΡΗΣΙΜΟ SCRIPT ΓΙΑ MOUNT ISO-UDF
Μια 2η προσπάθεια είχα κάνει εδώ:
MOUNT-UNMOUNT SCRIPT ΔΙΟΡΘΩΜΕΝΟ
όπου έκανα κάποιες διορθώσεις, σβήνοντας κάποια περιττά (όπου ζητούσε επιπλέον sudo κωδικό) κάνοντάς το πιο απλοποιημένο.
Μια 3η προσπάθεια κάνω εδώ, προσπαθόντας να το κάνω "δια-διανομικό"
(δεν ξέρω αν τα κατάφερα ...).
Το έχω γράψει τόσο για DEBIAN-οειδή (UBUNTU - LINUX MINT), όσο και για RPM-οειδή (FEDORA - OPENSUSE)

Όσοι θέλετε να το χρησιμοποιήσετε ακολουθήστε τα παρακάτω βήματα:

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ
1. Αντιγράψτε τον κώδικα σ'ένα αρχείο κειμένου, και αποθηκεύστε το σαν: "MOUNT_SCRIPT.sh"
2. Δεξί κλικ στο script, και properties και πάμε στην καρτέλα "άδειες", τσεκάρουμε την επιλογή "είναι εκτελέσιμο".
3a. [ΓΙΑ ΧΡΗΣΤΕΣ με KDE]
Ανοίγουμε το konsole, και κάνουμε drug & drop το script, μέσα στο konsole, επιλέγουμε "Επικόλληση τοποθεσίας" και πατάμε enter.
3b. [ΓΙΑ ΧΡΗΣΤΕΣ με GNOME]
Διπλό κλίκ στο script, και επιλέγουμε: Display - για επιπλέον επεξεργασία Run in terminal - για τρέξιμο του script.

ΒΑΣΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ
1. [ΠΡΟΣΟΧΗ] Μόνο οι χρήστες GNOME, να διορθώσουν το script ως εξής:
Όπου γράφω "dolphin", να το αντικαταστήσουν με το "nautilus" (και οι πιο άσχετοι με τον προγραμματισμό θα καταλάβουν - πιστεύω - το λόγο).
2. [ΠΡΟΣΟΧΗ] Προσοχή αν η επιλογή "Key [1]" του script δε δουλεύει, τότε το image cd-dvd δεν είναι iso9660 αλλά udf, οπότε επιλέξτε την επιλογή "Key [2]". Πολλή ερασιτεχνία εεε!! Απλά αν μάθει κάποιος τι είναι η εικόνα του, iso ή udf, κάνει την αντίστοιχη επιλογή.
3. Κάθε φορά που θέλει κάποιος να κάνει μια νέα ενέργεια, θα πρέπει να ξανατρέξει το script.
Σε κάποια άλλη έκδοση θα φροντίσω να το αλλάξω, ώστε να γίνονται όλες οι ενέργειες του χρήστη σε μια εκτέλεση του script...
4. Τη στιγμή που το παράθυρο εύρεσης του εικoνικού cd, μας ζητήσει να βρούμε το εικoνικό cd αυτό σε κάποιο partition, καλό είναι αυτό το partition να το έχουμε mount-αρει, αλλιώς πιθανών να βγάλει σφάλμα ...
5. Το έχω προγραμματίσει ώστε να φορτώνει όλα τα εικoνικά cd, στο ίδιο κατάλογο /mnt/CD_IMAGE.
Όταν mount-αρουμε, το ένα σύστημα αρχείων, "κάθεται" πάνω στο προηγούμενο που είχε mount-αριστεί (χωρίς να το βλάπτει).
Όταν τα ξε-mount-αρουμε, δεν "φεύγουν" όλα μονοκόμματα, αλλά επαλαμβάνουμε τη διαδικασία ώστε να ξε-mount-αριστούν όλα με τη σειρά το καθένα ....
6. Η έκδοση του script για RPM-οειδή, ισχύει και για DEBIAN-οειδή.
Αλλά το ανάποδο δεν ισχύει ΠΑΡΑ ΜΟΝΟΝ αν οι FEDOR-ιανοί ενεργοποιήσουν τους sudoers ...
7. Αν κατά την εκτέλεση στην κονσόλα εμφανιστούν σφάλματα, αγνοήστε τα και προχωρήστε στα βήματα του script ... Αν έχει αποτύχει (μην το γρουσουζεύω...) το mount θα φανεί στο τέλος.

ΤΟ SCRIPT ΓΙΑ DEBIAN-οειδή (UBUNTU - LINUX MINT)

#!/bin/bash

# ΕΙΣΑΓΩΓΙΚΟ ΠΑΡΑΘΥΡΟ
echo "
===========================================================================
=========================== MOUNT ISO-UDF IMAGES ==========================
===========================================================================

:-------------------------------------------------------------------------:
:              MANUAL :   Menus Of The Program                            :
:-------------------------------------------------------------------------:
: Key [1]   : Mount ISO IMAGE             Key [2]   : Mount UDF IMAGE     :
: Key [0]   : Unmount ISO-UDF IMAGE       Any Key   : Exit Program        :
:-------------------------------------------------------------------------:
      
Make A Selection ..."

MENU_SELECTION=`zenity --entry --title="MENU" --text="Select A Menu Key:"`

if [ $MENU_SELECTION = "1" ]; then

    ISO_UDF_IMAGE=`zenity --file-selection --title="Select An 'ISO IMAGE' To
Mount :"`
    sudo sh -c "mkdir /mnt/CD_IMAGE; mount -t iso9660 -o loop \
    '$ISO_UDF_IMAGE' /mnt/CD_IMAGE"
    dolphin /mnt/CD_IMAGE
 
elif [ $MENU_SELECTION = "2" ]; then
  
    ISO_UDF_IMAGE=`zenity --file-selection --title="Select An 'UDF IMAGE' To
Mount :"`
    sudo sh -c "mkdir /mnt/CD_IMAGE; mount -t udf -o loop '$ISO_UDF_IMAGE' \
    /mnt/CD_IMAGE"
    dolphin /mnt/CD_IMAGE
      
elif [ $MENU_SELECTION = "0" ]; then

     sudo sh -c "umount /mnt/CD_IMAGE; rmdir /mnt/CD_IMAGE"

else
    clear
    exit 0

fi

exit 0

ΤΟ SCRIPT ΓΙΑ RPM-οειδή (FEDORA - OPENSUSE)

#!/bin/bash

# ΕΙΣΑΓΩΓΙΚΟ ΠΑΡΑΘΥΡΟ
echo "
===========================================================================
=========================== MOUNT ISO-UDF IMAGES ==========================
===========================================================================

:-------------------------------------------------------------------------:
:              MANUAL :   Menus Of The Program                            :
:-------------------------------------------------------------------------:
: Key [1]   : Mount ISO IMAGE             Key [2]   : Mount UDF IMAGE     :
: Key [0]   : Unmount ISO-UDF IMAGE       Any Key   : Exit Program        :
:-------------------------------------------------------------------------:
      
Make A Selection ..."

MENU_SELECTION=`zenity --entry --title="MENU" --text="Select A Menu Key:"`

if [ $MENU_SELECTION = "1" ]; then

    ISO_UDF_IMAGE=`zenity --file-selection --title="Select An 'ISO IMAGE' To
Mount :"`
    su -c "mkdir /mnt/CD_IMAGE; mount -t iso9660 -o loop '$ISO_UDF_IMAGE' \
    /mnt/CD_IMAGE"
    dolphin /mnt/CD_IMAGE
 
elif [ $MENU_SELECTION = "2" ]; then
  
    ISO_UDF_IMAGE=`zenity --file-selection --title="Select An 'UDF IMAGE' To
Mount :"`
    su -c "mkdir /mnt/CD_IMAGE; mount -t udf -o loop '$ISO_UDF_IMAGE' \
    /mnt/CD_IMAGE"
    dolphin /mnt/CD_IMAGE
      
elif [ $MENU_SELECTION = "0" ]; then

    su -c "umount /mnt/CD_IMAGE; rmdir /mnt/CD_IMAGE"

else
    clear
    exit 0

fi

exit 0

Δώσε αστέρια!
Σχόλια

Ο φίλος από το Linux Mint Forum, το τσέκαρε σε Cinnamon και λειτουργεί .....
Προφανώς οι χρήστες Cinnamon (από το οποίο δεν ξέρω ...), πρέπει να αντικαταστήσουν όπου "dolphin" με "nemo"....
Να πως φαίνεται σε Cinnamon, είναι προς το τέλος ...
http://linuxmint.gr/index.php?topic=2035.msg18011;topicseen#new