Jun 27, 2009

Εύκολη αποστολή αρχείων σε κοινούς φακέλους (shared folders) στο Virtualbox

Στο Virtualbox επιτρέπεται η ανταλλαγή αρχείων μεταξύ εικονικών μηχανών και του λειτουργικού συστήματος υποδοχής (host) με την χρήση κοινόχρηστων φακέλων. Η δημιουργία ενός τέτοιου καναλιού επικοινωνίας μπορεί να γίνει και δυναμικά, κατά τη διάρκεια της λειτουργίας μιας εικονικής μηχανής και μπορεί να έχει χαρακτήρα μόνιμο ή προσωρινό.

Σε ένα guest Linux σύστημα, θα χρειαστεί να προσαρτήσουμε μια τοποθεσία ώστε να αποκτήσουμε πρόσβαση σε αυτό τον κοινόχρηστο σύστημα αρχείων με μια τυπική εντολή όπως:

sudo mount t vboxsf vboxshare /tmp/vbox

Είχα αναφερθεί παλαιότερα στην κατασκευή context-menu scripts στο GNOME (http://serafeimk.blogspot.com/2007/12/context-menu-extensions-gnome-nautilus.html) οπότε είναι καλή ευκαιρία να κάνουμε κάτι ανάλογο με μια λειτουργία Send to. Προσθέτουμε στον κατάλογο $ΗΟΜΕ/.gnome2/nautilus-scripts ένα εκτελέσιμο αρχείο με τα περιεχόμενα:

#! /bin/bash
VBOX_SHARE_MOUNTED=`mount|grep vbox|wc -l`
if [ $VBOX_SHARE_MOUNTED = "0" ]; then
xterm -e "sudo mount -o uid=1000,gid=100 -t vboxsf vboxshare /tmp/vbox"
fi
export VBOX_SHARE_DIR=/tmp/vbox
export FILE_TO_COPY=`echo $NAUTILUS_SCRIPT_SELECTED_URIS|cut -c8-`
cp -r $FILE_TO_COPY $VBOX_SHARE_DIR


Επί της ουσίας, ελέγχουμε αν το κοινόχρηστο σύστημα αρχείων έχει ήδη γίνει mount, οπότε σε αντίθετη περίπτωση γίνεται για πρώτη φορά. Έπειτα, αντιγράφουμε το/τα επιλεγμένο(α) αρχεία στον κοινόχρηστο κατάλογο προορισμού.

No comments: