VirtualBox (Ελληνικά)
Το VirtualBox είναι ένας υπερεπόπτης (hypervisor) που χρησιμοποιείται για να τρέχουμε λειτουργικά συστήματα σε ένα ιδιαίτερο περιβάλλον, που λέγεται εικονική μηχανή (virtual machine) και που τρέχει πάνω από το υπάρχον λειτουργικό σύστημα. Βρίσκεται υπό συνεχή εξέλιξη και διαρκώς του προστίθενται νέα χαρακτηριστικά. Είναι εφοδιασμένο με διεπαφή γραφικού περιβάλλοντος (GUI) που έχει αναπτυχθεί σε Qt, καθώς και με εργαλεία γραμμής εντολών (command line tools) είτε χωρίς κεφαλίδες (headless) είτε σε SDL, για τη διαχείριση και τη λειτουργία εικονικών μηχανών.
Για να μπορεί να ενσωματώνει λειτουργίες του συστήματος βάσης (host) στο φιλοξενούμενο σύστημα (guest), στις οποίες συμπεριλαμβάνονται κοινοί φάκελοι και κοινό πρόχειρο (clipboard), επιτάχυνση γραφικών (video acceleration) και αδιάλειπτη λειτουργία ενσωμάτωσης παραθύρων (seamless window integration mode), διατίθεται το πακέτο guest additions για κάποια εικονικά λειτουργικά συστήματα.
Εγκατάσταση στον υπολογιστή βάσης
Η βασική σουίτα του VirtualBox, που καλύπτεται από την άδεια GPL, μπορεί να εγκατασταθεί από τα επίσημα αποθετήρια με το πακέτο virtualbox.
Το πακέτο virtualbox-host-modules[broken link: replaced by virtualbox-host-modules-arch], που περιέχει τα προ-μεταγλωττισμένα αρθρώματα για τον κοινό πυρήνα του archlinux, θα πρέπει να έχει εγκατασταθεί μαζί με τη σουίτα. Αν χρησιμοποιείτε τον πυρήνα linux-lts, θα πρέπει να εγκαταστήσετε μόνοι σας το πακέτο virtualbox-host-modules-ltsAUR. Για επεξεργασμένους (custom) πυρήνες, διαβάστε παρακάτω[broken link: invalid section].
Προκειμένου να χρησιμοποιήσετε την διεπαφή γραφικού περιβάλλοντος, που βασίζεται στην πλατφόρμα Qt (εντολή VirtualBox
), θα χρειαστεί να εγκαταστήσετε επίσης το πακέτο qt4AUR. Κάτι τέτοιο δεν χρειάζεται για το απλούστερο γραφικό περιβάλλον SDL (εντολή VBoxSDL
) ούτε για την εντολή VBoxHeadless
.
Host με επεξεργασμένο (custom) πυρήνα
Το VirtualBox συνεργάζεται πολύ καλά με custom πυρήνες, όπως ο πυρήνας Linux-ck, χωρίς να χρειάζεται να διατηρηθεί κάποιο από τα πακέτα του επίσημου πυρήνα ArchLinux στο σύστημα. Δεδομένου ότι αυτά τα επίσημα πακέτα είναι εξαρτήσεις του πακέτου virtualbox-host-modules
, αν θέλετε να αποτρέψετε τον pacman να εγκαταστήσει αυτά τα περιττά πακέτα, προτείνεται να εγκαταστήσετε το πακέτο virtualbox-host-dkms. Αυτό το τελευταίο έρχεται μαζί με τον πηγαίο κώδικα των αρθρωμάτων πυρήνα του VirtualBox που θα χρησιμοποιηθεί για τη δημιουργία τους έτσι, ώστε να ταιριάζουν με τον πυρήνα σας.
Από τη στιγμή που θα εγκατασταθεί το virtualbox-host-dkms, απλώς δημιουργήστε τα αρθρώματα πυρήνα για τον custom πυρήνα σας, τρέχοντας την εξής δομή εντολών:
# dkms install vboxhost/<αριθμός έκδοσης του virtualbox-host-source> -k <όνομα του custom πυρήνα σας>/<αρχιτεκτονική του συστήματός σας>
ή με την όλα-σε-ένα εντολή:
# dkms install vboxhost/$(pacman -Q virtualbox|awk {'print $2'}|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')
Your kernel headers for kernel <το όνομα του custom πυρήνα σας> cannot be found at /usr/lib/modules/<το όνομα του custom πυρήνα σας>/build or /usr/lib/modules/<το όνομα του custom πυρήνα σας>/source
.
Αφού δημιουργήσετε το άρθρωμα του VirtualBox, το φορτώνετε με την:
# modprobe vboxdrv
Για να ξαναμεταγλωττίσετε/ξαναφορτώσετε το άρθρωμα VirtualBox στον πυρήνα σας, μετά από αναβάθμισή του, μπορείτε να ενεργοποιήσετε την υπηρεσία dkms
με την εντολή:
# systemctl enable dkms
Αν δεν έχετε ενεργή την υπηρεσία dkms
την ώρα που ενημερώνεται ο πυρήνας σας (επίσημος ή custom), το άρθρωμα VirtualBox δεν θα ενημερωθεί και ίσως να μη δουλεύει με τη νέα έκδοση του πυρήνα σας πλέον. Αν θέλετε να ξαναμεταγλωττίσετε/ενημερώσετε το άρθρωμα VirtualBox κατά την επανεκκίνηση του συστήματός σας μετά την εγκατάσταση νέας έκδοσης του πυρήνα, μπορείτε να χρησιμοποιήσετε ένα άγκιστρο (hook) στο initramfs, το οποίο θα καλεί αυτόματα την εντολή dkms
που προαναφέρθηκε.
Για να ενεργοποιήσετε αυτό το χαρακτηριστικό, εγκαθιστάτε το πακέτο vboxhost-hookAUR[broken link: package not found] από το AUR και προσθέτετε το vboxhost
στο πεδίο HOOKS του αρχείου /etc/mkinitcpio.conf
. Στη συνέχεια πρέπει να εξασφαλίσετε ότι ενημερώνεται πρώτα το πακέτο linux-headers του συστήματός σας, με:
# pacman -Sy linux-headers && pacman -Su
dkms
, το άγκιστρο (hook) vboxhost
θα σας ενημερώσει αν κάτι δεν πάει καλά κατά την επαναμεταγλώττιση του αρθρώματος του VirtualBox.Στήσιμο
Προσθήκη ονομάτων χρηστών στην ομάδα (group) vboxusers
Προσθέστε τα ονόματα χρηστών που θέλετε στην ομάδα vboxusers
. Ενδέχεται όλα να δουλεύουν ρολόι και χωρίς αυτό το βήμα, αλλά οι κοινόχρηστοι φάκελοι - και πιθανώς κάποια άλλα προαιρετικά χαρακτηριστικά - τα χρειάζονται για να λειτουργήσουν. Η νέα ομάδα δεν εντάσσεται αυτόματα σε ενεργές συνεδρίες· ο χρήστης πρέπει να κάνει επανασύνδεση (log out / log in) ή να ξεκινήσει ένα νέο περιβάλλον με μία εντολή όπως newgrp
ή
sudo -u $USER -s
. Η προσθήκη γίνεται με την:
# gpasswd -a $USER vboxusers
Φόρτωση αρθρωμάτων πυρήνα
Τὸ VirtualBox σε host με Linux χρησιμοποιεί τα δικά του αρθρώματα πυρήνα, στα οποία περιλαμβάνεται ένα υποχρεωτικό άρθρωμα, το vboxdrv
, που πρέπει να φορτωθεί πριν μπορέσουν να τρέξουν οι εικονικές μηχανές. Αυτό το άρθρωμα μπορεί να φορτώνεται αυτόματα με την εκκίνηση του ArchLinux ή μπορεί να φορτώνεται «με το χέρι» όποτε χρειάζεται.
Για να φορτώσετε το άρθρωμα με το χέρι:
# modprobe vboxdrv
Για νά φορτώσετε τη μονάδα δίσκου VirtualBox driver από την αρχή, ανατρέξτε στο Kernel modules#Loading[broken link: invalid section] και χρησιμοποιήστε το όνομα αρχείου virtualbox.conf
no such file or directory
κατά τη φόρτωση του vboxdrv
, ίσως χρειαστεί να ενημερώσετε τη βάση δεδομένων με τα αρθρώματα του πυρήνα, μέσω της depmod -a
.Για να ξεκινήσετε τον γραφικό διαχειριστή του VirtualBox:
$ VirtualBox
Για να εξασφαλίσετε πλήρη λειτουργικότητα στις δικτυώσεις γέφυρας (bridged networking), βεβαιωθείτε ότι έχουν φορτωθεί προηγουμένως τα αρθρώματα πυρήνα vboxnetadp
, vboxnetflt
και vboxpci
και ότι το πακέτο net-tools είναι ήδη εγκατεστημένο.
Ο δίσκος Guest additions
Το πακέτο virtualbox προτείνει επίσης την εγκατάσταση του virtualbox-guest-iso στον υπολογιστή βάσης (host) που τρέχει το VirtualBox. Πρόκειται για μια εικόνα δίσκου που μπορεί να χρησιμοποιηθεί για την εγκατάσταση πρόσθετων δυνατοτήτων στα φιλοξενούμενα (guest) συστήματα. Μπορείτε να τον κάνετε διαθέσιμο σε κάποιο εν λειτουργία εικονικό σύστημα, πηγαίνοντας στο μενού Συσκευές (Devices) και δίνοντας Install Guest Additions... Host+D, για να τρέξετε την εγκατάσταση των πρόσθετων μέσα από το εικονικό σύστημα.
Εκκίνηση εικόνας live δίσκου
Κάντε κλίκ στο κουμπί Νέο (New) για να δημιουργήστε ένα νέο εικονικό περιβάλλον. Δώστε του ένα κατάλληλο όνομα και επιλέξτε τύπο και έκδοση λειτουργικού συστήματος. Επιλέξτε μέγεθος βασικής μνήμης (σημείωση: τα περισσότερα λειτουργικά συστήματα θα χρειαστούν τουλάχιστον 512 MiB για να λειτουργήσουν απρόσκοπτα). Δημιουργήστε μια καινούργια εικόνα σκληρού δίσκου (εικόνα σκληρού δίσκου είναι ένα αρχείο που θα περιέχει το σύστημα αρχείων και τα αρχεία του λειτουργικού συστήματος).
Όταν θα έχει δημιουργηθεί η νέα εικόνα, κάντε κλικ στο Ιδιότητες (Settings), έπειτα στο CD/DVD-ROM, επιλέξτε με τικ στο κουτάκι του το Mount CD/DVD Drive και μετά επιλέξτε μια εικόνα ISO.
Εκκίνηση εικονικών μηχανών με ενεργή μια υπηρεσία
Παρακάτω θα βρείτε πώς μπορείτε να εγκαταστήσετε μια υπηρεσία systemd που θα χρησιμοποιηθεί για να αντιμετωπίσει το σύστημα την εικονική μηχανή ως υπηρεσία.
/etc/systemd/system/vboxvmservice@.service
[Unit]
Description=VBox Virtual Machine %i Service
Requires=systemd-modules-load.service
After=systemd-modules-load.service
[Service]
User=<user>
Group=vboxusers
ExecStart=/usr/bin/VBoxHeadless -s %i
ExecStop=/usr/bin/VBoxManage controlvm %i savestate
[Install]
WantedBy=multi-user.target
<user>
με το όνομα ενός χρήστη-μέλους της ομάδας vboxusers
. Βεβαιωθείτε ότι ο χρήστης που επιλέξατε είναι ο ίδιος χρήστης που θα δημιουργεί και θα εκκινεί τις εικονικές μηχανές, ειδάλλως δεν θα μπορεί να βλέπει τις εγκατεστημένες εικονικές μηχανές.Για να ενεργοποιήσετε την υπηρεσία που θα ξεκινά την εικονική μηχανή στην επόμενη εκκίνηση συστήματος, δώστε:
# systemctl enable vboxvmservice@your virtual machine name
Για να ξεκινήσετε την υπηρεσία που θα ξεκινά απευθείας την εικονική μηχανή, δώστε:
# systemctl start vboxvmservice@το όνομα της εικονικής μηχανής σας
Από την έκδοση 4.2 του VirtualBox εισάγεται μια νέα μέθοδος[dead link 2021-11-19 ⓘ] ώστε συστήματα τύπου UNIX να μπορούν να ξεκινούν αυτομάτως εικονικές μηχανές, σε αντικατάσταση της μεθόδου που καλεί υπηρεσία του systemd.
Το Arch Linux ως guest σύστημα σε εικονική μηχανή
Η εγκατάσταση του Arch Linux σε εικονική μηχανή του VirtualBox γίνεται ακριβώς όπως και μια κανονική εγκατάσταση. Όμως οι προσθήκες (guest additions) θα πρέπει να εγκατασταθούν μέσω pacman (σύμφωνα με τις οδηγίες που ακολουθούν) και όχι μέσω της επιλογής Install Guest Additions από το μενού του VirtualBox στο σύστημα του υπολογιστή βάσης, ούτε με φόρτωση εικόνας ISO.
Εγκατάσταση των Guest Additions
Εγκαταστήστε το πακέτο virtualbox-guest-utils. Τα αρθρώματα φορτώστε τα «με το χέρι», δίνοντας:
# modprobe -a vboxguest vboxsf vboxvideo
Φτιάξτε ένα αρχείο *.conf
(π.χ. virtualbox.conf
) στη διαδρομή /etc/modules-load.d/
, το οποίο θα έχει αυτές τις γραμμές:
/etc/modules-load.d/virtualbox.conf
vboxguest vboxsf vboxvideo
Προσθέστε την ακόλουθη γραμμή στην κορυφή του ~/.xinitrc
, πάνω από όποια επιλογή exec
. (Αν δεν υπάρχει το αρχείο, φτιάξτε ένα καινούργιο):
~/.xinitrc
/usr/bin/VBoxClient-all
~/.xinitrc
, θα πρέπει να συμπεριλάβετε και έναν διαχειριστή παραθύρων ή ένα desktop environment.Αυτόματη αναμεταγλώττιση (re-compilation) των αρθρωμάτων guest του VirtualBox σε κάθε ενημέρωση οποιουδήποτε πυρήνα
Αυτό είναι εφικτό χάρη στο πακέτο vboxguest-hookAUR[broken link: package not found] από τα αποθετήρια AUR. Στο vboxguest-hook η 'αυτόματη αναμεταγλώττιση' εξασφαλίζεται μέσω ενός άγκιστρου vboxguest στο mkinitcpio μετά την αναγκαστική ενημέρωση του πακέτου linux-headers. Θα χρειαστεί να προσθέσετε το vboxguest
στο πεδίο των HOOKS στο αρχείο /etc/mkinitcpio.conf
. Ίσως χρειαστεί να ξαναδημιουργήσετε μόνοι σας το initramfs μετά από αναβάθμιση του πακέτου linux-headers.
Το εν λόγω άγκιστρο θα καλέσει την εντολή dkms
για να ενημερωθούν τα αρθρώματα VirtualBox guest modules για κάθε έκδοση του νέου πυρήνα σας.
Εκκίνηση των διαμοιραζόμενων υπηρεσιών
Μετά την εγκατάσταση του πακέτου virtualbox-guest-utils που είδαμε πιο πάνω, θα πρέπει να ξεκινήσετε την εντολή VBoxClient-all
για να ξεκινήσουν οι υπηρεσίες διαμοιρασμού του προχείρου (clipboard), του επανακαθορισμού μεγέθους της οθόνης κ.λπ.
- Αν τρέχετε κάτι που ενεργοποιεί το
/etc/xdg/autostart/vboxclient.desktop
, όπως π.χ. το GNOME ή το KDE, δεν χρειάζετε να κάνετε τίποτε. - Αν, αντίθετα, χρησιμοποιείτε το
.xinitrc
για να ενεργοποιήσετε λειτουργίες, θα πρέπει να προσθέσετε στο αρχείο σας.xinitrc
την εξής εντολή, πριν εκκινήσετε τον διαχειριστή παραθύρων σας:
# VBoxClient-all &
Χρήση USB webcam / μικροφώνου
- Βεβαιωθείτε ότι δεν τρέχει η εικονική μηχανή σας και ότι δεν είναι σε χρήση η webcam και/ή το μικρόφωνό σας.
- Ανοίξτε το κεντρικό παράθυρο του VirtualBox και πηγαίνετε στις ρυθμίσεις για τη μηχανή του Arch. Πηγαίνετε στο πεδίο USB.
- Βεβαιωθείτε ότι έχει επιλεγεί το «Ενεργοποίηση ελεγκτή USB» (Enable USB controller). Επίσης βεβαιωθείτε ότι είναι επιλεγμένο το "Enable USB 2.0 (EHCI) Controller".
- Επιλέξτε το κουμπί «Προσθήκη φίλτρου από συσκευή» (Add filter from device) - είναι το καλώδιο με το +.
- Επιλέξτε τη USB συσκευή σας (webcam/μικρόφωνο) από τη λίστα
- Δώστε OK και ξεκινήστε την εικονική μηχανή σας.
Χρήση του Arch σε περιβάλλον VirtualBox με εκκίνηση EFI
Η προσωπική μου εμπειρία με αυτές τις συνθήκες ήταν τρομακτική, αλλά το θέμα είναι ότι δουλεύει.
UPD. Η χρήση του efibootmgr έχει το ίδιο αποτέλεσμα όπως και η χρήση του μενού εκκίνησης του VirtualBox (βλ. σημείωση παρακάτω): Οι ρυθμίσεις χάνονται μετά το κλείσιμο της εικονικής μηχανής. Εν πρώτοις, ο efibootmgr
ΔΕΝ δουλεύει. Θα φαίνεται ότι δουλεύει, αλλά όλες οι αλλαγές που θα κάνει φαίνεται ότι ξαναγυρίζουν στις αρχικές ρυθμίσες μετά από επανεκκίνηση. Αφού κάνετε μία τυπική εγκατάσταση UEFI/GPT, δοκιμάστε να επανεκκινήσετε το σύστημα και θα βρεθείτε στο περιβάλλον με το κέλυφος του EFI. Δώστε exit και θα βρεθείτε σε ένα μενού. Εκεί επιλέξτε: Boot Management Manager, Boot Options, Add Boot Option. Με τον περιηγητή αρχείων σας (file browser) βρείτε το αρχείο του grub efi και επιλέξτε το. Αν θέλετε, προσθέστε του και μια ετικέτα (label). Έπειτα επιλέξτε Change Boot Order από το μενού, με τα βελάκια επιλέξτε το Arch και δώστε +
για να το μετακινήσετε στην κορυφή της λίστας. Τώρα πια ο GRUB θα πρέπει να είναι η κατ' αρχήν επιλογή εκκίνησης.
Άλλες εναλλακτικές είναι: 1) πηγαίνετε την επιλογή φόρτωσης στο \EFI\boot\bootx64.efi
, 2) δημιουργήστε ένα σκριπτάκι \startup.nsh
που θα τρέχει το επιθυμητή πρόγραμμα φόρτωσης, κάπως έτσι:
\startup.nsh
HD16a0a1:\EFI\refind\refindx64.efi
Εδώ έδωσα ένα συμβατό όνομα για την απεικόνιση (mapping). Σαν ιδέα είναι μάλλον καλή, αφού επιβιώνει σε τυχόν αλλαγές προδιαγραφών.
c
μέσα στο περιβάλλον του GRUB και να πληκτρολογήσετε exit
. Προφανώς αυτός ο τρόπος θα δουλέψει μόνο με το grub-efi
, όχι με το grub-bios.
Μπορεί ακόμη να χρειάζεται αναδημιουργία του αρχείου grub.cfg
προκειμένου να επιδιορθωθούν κατεστραμμένοι σύνδεσμοι UUID. Ελέγξτε την ορθότητά τους με την εντολή lsblk -f
.
F12
αμέσως μόλις εκκινήσουμε την εικονική μηχανή. Είναι κάτι που βολεύει, όταν χρησιμοποιούμε, για παράδειγμα, rEFInd + EFISTUB.Συγχρονισμός ημερομηνίας/ώρας μεταξύ guest και host
Για να διατηρήσετε σε συγχρονισμό την ημερομηνία και την ώρα, βεβαιωθείτε ότι έχετε εγκατεστημένο το πακέτο virtualbox-guest-utils στον υπολογιστή βάσης (host - δείτε παραπάνω[broken link: invalid section]). Για να έχετε ενεργή την υπηρεσία και σε επόμενες εκκινήσεις, τρέξτε την εντολή:
# systemctl enable vboxservice
Για να την ενεργοποιήσετε αμέσως, δώστε
# systemctl start vboxservice
Θα χρειαστεί να τρέξετε αυτόν τον «δαίμονα» και για να χρησιμοποιήσετε το χαρακτηριστικό της αυτόματης φόρτωσης (auto-mount) των κοινόχρηστων φακέλων, που προαναφέρθηκε.
Ενεργοποίηση κοινόχρηστων φακέλων
Τους κοινόχρηστους φακέλους τους διαχειρίζεται το πρόγραμμα του VirtualBox στον host υπολογιστή. Από εκεί μπορούν να προστεθούν, να φορτώνονται αυτόματα και να χαρακτηρίζονται ως μόνον-ανάγνωσης (read-only).
Αν έχει ενεργοποιηθεί η αυτόματη φόρτωση (auto-mount) και είναι ενεργή και η υπηρεσία vboxservice
, δημιουργώντας έναν κοινόχρηστο φάκελο μέσα από το πρόγραμμα VirtualBox του host υπολογιστή, θα φορτώσουμε αυτόν τον φάκελο και στον guest, στη διαδρομή /media/sf_ΟΝΟΜΑ_ΚΟΙΝΟΧΡΗΣΤΟΥ-ΦΑΚΕΛΟΥ
. Για να έχετε αυτόν τον φάκελο και στον Arch Guest, αφού έχετε εγκαταστήσει το Guest Additions, θα χρειαστεί να προσθέσετε το όνομα χρήστη σας στην ομάδα vboxsf
:
# groupadd vboxsf # gpasswd -a $USER vboxsf
Αν θέλετε να δημιουργήσετε έναν συμβολικό δεσμό (symlink) ανάμεσα σε έναν κοινόχρηστο φάκελο και κάποιον άλλο φάκελο του home καταλόγου σας, για ευκολότερη πρόσβαση, μπορείτε να δώσετε στο guest σύστημα:
$ ln -s /media/sf_Dropbox/* ~/dropbox
Το σκριπτ VBoxLinuxAdditions.run
που περιέχεται στον εικονικό δίσκο (iso) των Guest Additions το κάνει αυτό από μόνο του. Ωστόσο στο Arch δεν συνιστάται να το χρησιμοποιήσετε.
iso does this for you, however, Arch does not recommend using it.
Αν δεν φορτώνονται αυτόματα οι κοινόχρηστοι φάκελοί σας, δοκιμάστε αυτό: manually mount.
Για να αποτρέψετε προβλήματα στην εκκίνηση κατά τη χρήση του systemd, θα πρέπει να προσθέσετε το comment=systemd.automount
στο αρχείο σας /etc/fstab
. Κατ' αυτό τον τρόπο, θα γίνεται αυτόματη φόρτωση μόνο κατά την πρόσβαση στα αντίστοιχα σημεία πρόσβασης (mount points) και όχι κατά την εκκίνηση. Ειδάλλως, το σύστημα σας ενδέχεται να γίνει ασταθές μετά από μία αναβάθμιση πυρήνα (αν εγκαθιστάτε τα guest additions «με το χέρι»).
desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0
Μη χάνετε το χρόνο σας δοκιμάζοντας την επιλογή nofail
. Το mount.vboxsf
δεν είναι σε θέση να την χειριστεί (2012-08-20).
desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0
Εξαγωγή των εικονικών μηχανών του VB για χρήση από άλλους hypervisors
Αν σκοπεύετε να χρησιμοποιήσετε την εικονική μηχανή που δημιουργήσατε με το VirtualBox σε άλλον υπολογιστή, που δεν έχει κατ' ανάγκην εγκατεστημένο VirtualBox, ίσως να ενδιαφέρεστε να ακολουθήσετε τα παρακάτω βήματα:
Αφαιρέστε τα πρόσθετα (additions)
Αν έχετε εγκαταστήσει τα πρόσθετα (VirtualBox additions) του VirtualBox στην εικονική μηχανή σας, καλό είναι να τα απεγκαταστήσετε. Το guest μηχάνημά σας, ιδίως αν χρησιμοποιεί λειτουργικό σύστημα από την οικογένεια των Windows, ενδέχεται να αρχίσει να συμπεριφέρεται παράξενα, να «σπάσει» (crash) ή ακόμη και να μην εκκινεί καθόλου, αν χρησιμοποιήσετε τους ειδικούς οδηγούς (drivers) του VirtualBox σε άλλον υπερεπόπτη (hypervisor).
Χρήση του σωστού format για τον εικονικό δίσκο
Formats που χρησιμοποιεί το VirtualBox
Το VirtualBox εμπεριέχει δικό του τύπο εικονικών σκληρών δίσκων: Πρόκειται για αρχεία με format Virtual Disk Image (VDI). Όμως, ακόμα κι αν αυτό το format είναι προεπιλογή κατά τη δημιουργία εικονικής μηχανής μέσω του VirtualBox, μπορείτε να ορίσετε άλλο. Πράγματι, το VirtualBox υποστηρίζει άμεμπτα και άλλα format:
- Το VMDK: Αυτό το format αναπτύχθηκε αρχικά από την VMware για τα προϊόντα της, αλλά σήμερα είναι πλέον ανοιχτό (open) format. Αν σκοπεύετε να χρησιμοποιήσετε κάποιο προϊόν της VMware, θα χρειαστεί να βαδίσετε με αυτό το format, αφού είναι το μόνο που υποστηρίζει η VMware.
- Το VHD: Αυτό είναι το format που χρησιμοποιεί η Microsoft στα Windows Virtual PC και Hyper-V. Αν λογαριάζετε να χρησιμοποιήσετε οποιοδήποτε από αυτά τα προϊόντα της Microsoft, θα πρέπει να διαλέξετε αυτό το format.
- Συμβουλή: Από τα Windows 7 και μετά, αυτό το format μπορεί να φορτωθεί απευθείας, χωρίς κάποια επιπρόσθετη εφαρμογή.
- Η Version 2 του HDD format που χρησιμοποιεί η Parallels (Desktop for Mac).
- Τα QED and QCOW που χρησιμοποιεί το QEMU.
Το ποιο format θα χρειαστεί να επιλέξετε εξαρτάται από τον υπερεπόπτη που θα χρησιμοποιήσετε.
Διαφορές συγκεκριμένων format εικονικών δίσκων
Πριν μετατρέψετε τον εικονικό δίσκο σας, καλό θα ήταν να λάβετε υπόψιν σας τις παρακάτω διαφορές συγκεκριμένων format εικονικών δίσκων:
- Το VMDK προσφέρει τη δυνατότητα να «σπάσει» σε περισσότερα του ενός αρχεία μεγέθους μέχρι 2GB. Αυτό το χαρακτηριστικό είναι ιδιαίτερα χρήσιμο, αν θέλετε να αποθηκεύσετε την εικονική μηχανή σας σε υπολογιστές που δεν υποστηρίζουν πολύ μεγάλα αρχεία. Τα άλλα format δεν παρέχουν κάποιο αντίστοιχο χαρακτηριστικό.
- Η αλλαγή στη λογική χωρητικότητα ενός ήδη υπάρχοντος εικονικού δίσκου μέσω της εντολής
VBoxManage
του VirtualBox υποστηρίζεται μόνο για τα format VDI και VHD που χρησιμοποιούνται στη λειτουργία δυναμικής εκχώρησης (dynamic allocation mode) για να μεγαλώσουν (και όχι για να μικρύνουν) τη χωρητικότητά τους.
Μετατροπή του format του εικονικού δίσκου
Το VirtualBox υποστηρίζει μόνο μετατροπές εικονικών δίσκων από και προς VDI, VMDK και VHD formats. Ακολουθεί ένα παράδειγμα μετατροπής εικονικού δίσκου VDI σε VMDK:
$ VBoxManage clonehd ArchLinux_VM.vdi ArchLinux_VM.vmdk --format VMDK
Αν θέλετε να αντικαταστήσετε τον εικονικό δίσκο που καθορίσατε όταν δημιουργήσατε την εικονική μηχανή σας με αυτόν που μόλις μετατρέψατε, χρησιμοποιήστε την εντολή VBoxManage storagectl
(συμβουλευτείτε το εγχειρίδιο χρήσης VirtualBox manual), ή χρησιμοποιήστε το γραφικό περιβάλλον, ή τροποποιήστε το .vbox configuration file[broken link: invalid section].
Δημιουργήστε τη διαμόρφωση της εικονικής μηχανής για τον υπερεπόπτη σας
Αν ο υπερεπόπτης σας (όπως π.χ. το VMware) δεν υποστηρίζει την εισαγωγή αρχείων διαμόρφωσης του VirtualBox (.vbox), θα χρειαστεί να φτιάξετε μια νέα εικονική μηχανή και να καθορίσετε τις προδιαγραφές της για προσομοίωση του hardware όσο γίνεται πιο παραπλήσιες προς εκείνες της αρχικής εικονικής μηχανής σας (του VirtualBox).
a new virtual machine and specify its hardware configuration as close as possible as your initial VirtualBox virtual machine.
ArchLinux_vm.vmx
firmware = "efi"
Τέλος ζητήστε από τον υπερεπόπτη σας να χρησιμοποιήσει τον υπάρχοντα εικονικό δίσκο που μετατρέψατε και ξεκινήστε την εικονική μηχανή σας.
Προχωρημένη διαμόρφωση
Αντικατάσταση του εικονικού δίσκου «με το χέρι» από το αρχείο .vbox
Αν θεωρείτε ότι η επεξεργασία ενός απλού XML αρχείου σας βολεύει περισσότερο από το γραφικό περιβάλλον ή το VBoxManage
και θέλετε να αντικαταστήσετε (ή να προσθέσετε) έναν εικονικό δίσκο στην εικονική μηχανή σας, τότε στο αρχείο διαμόρφωσης .vbox που αντιστοιχεί στην εικονική μηχανή σας απλώς αντικαταστήστε το GUID, τη θέση του αρχείου και το φορμάτ του σύμφωνα με τις ανάγκες σας:
ArchLinux_vm.vbox
<HardDisk uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}" location="ArchLinux_vm.vdi" format="VDI" type="Normal"/>
και στη συνέχεια στην εγγραφή <AttachedDevice>
του πεδίου <StorageController>
, αντικαταστήστε το GUID με το καινούργιο.
ArchLinux_vm.vbox
<AttachedDevice type="HardDisk" port="0" device="0"> <Image uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}"/> </AttachedDevice>
VBoxManage
, αυτή η εντολή θα εμφανίσει το GUID αμέσως μετά από τη μετατροπή. Η χρήση τυχαίου GUID δεν λειτουργεί.Αντιμετώπιση προβλημάτων
VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)
Αυτό το μήνυμα σφάλματος μπορεί να προκύψει αν μια εικονική μηχανή τερμάτισε ανώμαλα. Η λύση για το «ξεκλείδωμα» της εικονικής μηχανής είναι τετριμμένη:
$ VBoxManage controlvm <your virtual machine name> poweroff
Το υποσύστημα USB δεν λειτουργεί στο host ή στο guest σύστημα
Κάποιες φορές, σε παλιότερα μηχανήματα host με Linux, το υποσύστημα USB δεν ανιχνεύεται αυτόματα και έτσι προκύπτει μήνυμα λάθους του τύπου Could not load the Host USB Proxy service: VERR_NOT_FOUND
ή δεν εμφανίζεται καν οδηγός USB στο host σύστημα, ακόμα και αν ο χρήστης είναι μέλος της ομάδας vboxusers. Αυτό τοπρόβλημα οφείλεται στο γεγονός ότι το VirtualBox πέρασε από το usbfs στο sysfs από την έκδοση 3.0.8. Αν το host σύστημα δεν αντιλαμβάνεται την αλλαγή, μπορείτε να επαναφέρετε την παλιά συμπεριφορά ορίζοντας την ακόλουθη μεταβλητή περιβάλλοντος που «πατάει» στο κέλυφός σας (π.χ.το αρχείο σας ~/.bashrc
, αν χρησιμοποιείτε bash):
~/.bashrc
VBOX_USB=usbfs
Έπειτα βεβαιωθείτε ότι το περιβάλλον έλαβε γνώση αυτής της αλλαγής (με επανασύνδεση, με πρόσβαση του αρχείου με το χέρι, με την εκκίνηση ενός νέου στιγμιότυπου του κελύφους ή με επανεκκίνηση).
Επίσης βεβαιωθείτε ότι ο χρήστης σας είναι μέλος της ομάδας storage
.
Αποτυχία δημιουργίας της μόνο-host-διεπαφής δικτύου
Για να μπορέσετε να δημιουργήσετε έναν προσαρμογέα μόνο-host-δικτύου (Host-Only Network Adapter) ή έναν προσαρμογέα δικτύωσης γέφυρας (Bridged Network Adapter), πρέπει να φορτωθούν τα αρθρώματα πυρήνα vboxnetadp
και vboxnetflt
, ενώ θα χρειαστεί επίσης να βεβαιωθείτε ότι έχει εγκατασταθεί το πακέτο net-tools.Μπορείτε να φορτώσετε και με το χέρι αυτά τα αρθρώματα, με την:
# modprobe -a vboxdrv vboxnetadp vboxnetflt
Για να φορτώνονται αυτά τα αρθρώματα αυτόματα κατά την εκκίνηση, δείτε το άρθρο Kernel modules#Loading[broken link: invalid section] και χρησιμοποιήστε ένα όνομα προγράμματος του virtualbox
.
WinXP: Το βάθος χρώματος δεν μπορεί να είναι μεγαλύτερο από 16 bits
Αν τρέχετε την εικονική μηχανή σας σε βάθος χρώματος 16 bits, τα εικονίδια μπορεί να εμφανίζονται θολά ή «πριονωτά». Ωστόσο στην προσπάθειά σας να αυξήσετε το βάθος χρώματος, το σύστημα μπορεί να σας περιορίσει σε χαμηλότερη ανάλυση ή απλώς να μη σας επιτρέπει καμία αλλαγή βάθους χρώματος. Για να το διορθώσετε αυτό, τρέξτε στα Windows το regedit
και προσθέστε το ακόλουθο κλειδί στη registry της εικονικής μηχανής με τα Windows XP:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services] "ColorDepth"=dword:00000004
Στη συνέχεια αλλάξτε το βάθος χρώματος από το παράθυρο των ιδιοτήτων της επιφάνειας εργασίας. Αν και πάλι δεν συμβεί τίποτε, εξαναγκάστε τον επανασχεδιασμό της οθονης μέ καποια μέθοδο (π.χ. με Host+f
για τον επανασχεδιασμό/είσοδο σε λειτουργία πλήρους οθόνης).
Φόρτωση εικόνων .vdi
Η φόρτωση εικόνων vdi εφαρμόζεται μόνο σε εικόνες δίσκου σταθερού μεγέθους (static). Οι εικόνες δυναμικού μεγέθους δεν είναι εύκολο να φορτωθούν.
Κατ' αρχήν χρειαζόμαστε μία πληροφορία από το αρχείο εικόνας .vdi:
$ VBoxManage internalcommands dumphdinfo <διαδρομή του .vdi αρχείου σας> | grep offData Header: offBlocks=4096 offData=69632
Έπειτα προσθέστε 32256 στο offData
που πήρατε (π.χ. 32256 + 69632 = 101888)
Τώρα μπορείτε να φορτώσετε την εικόνα vdi που θέλετε με την εξής εντολή:
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <διαδρομή του .vdi αρχείου σας> /mnt/
Δεν δουλεύει η Αντιγραφή/Επικόλληση (Copy/Paste) στον guest με Arch Linux
Μετά την ενημέρωση των virtualbox-guest-additions
στην έκδοση 4.2.0-2
, το χαρακτηριστικό της αντιγραφής και επικόλλησης από τον host στον εικονικό υπολογιστή που τρέχει Arch Linux δεν λειτουργεί πια. Εμφανίζεται σαν να οφείλεται στο ότι το VBoxClient-all
απαιτεί πρόσβαση με δικαιώματα διαχειριστή (root). Σε προηγούμενες εκδόσεις αρκούσε να προσθέσουμε το VBoxClient-all &
στο αρχείο ~/.xinitrc
για να ξαναλειτουργήσει το copy/paste. Τώρα, για να λύσουμε το πρόβλημα, θα πρέπει να ενημερώσουμε το ~/.xinitrc
κατάλληλα (sudo VBoxClient-all &
) και να προσθέσουμε τη γραμμή , NOPASSWD: /usr/bin/VBoxClient-all
δίπλα στο όνομα χρήστη σας στο αρχείο /etc/sudoers
και να επανεκκινήσουμε το σύστημα γραφικών Χ. Αυτό θα πρέπει να κάνει το σύστημα να ξαναδουλεύει κανονικά. Η γραμμή στο αρχείο sudoers θα πρέπει να μοιάζει κάπως έτσι:
# Δώστε άδεια χρήσης του sudo στον χρήστη 'you' και επιτρέψτε του να τρέχει το VBoxClient-all χωρίς password you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all
visudo
για την επέμβαση στο αρχείο /etc/sudoers
. Αυτό θα ελέγξει για τυχόν λάθη σύνταξης καθώς θα αποθηκεύει τις αλλαγές.Χρήση σειριακής θύρας στο φιλοξενούμενο (guest) λειτουργικό σύστημα
Ελέγξτε τα δικαιώματά σας (permissions) επί της σειριακής θύρας:
$ /bin/ls -l /dev/ttyS* crw-rw---- 1 root uucp 4, 64 Feb 3 09:12 /dev/ttyS0 crw-rw---- 1 root uucp 4, 65 Feb 3 09:12 /dev/ttyS1 crw-rw---- 1 root uucp 4, 66 Feb 3 09:12 /dev/ttyS2 crw-rw---- 1 root uucp 4, 67 Feb 3 09:12 /dev/ttyS3
Προσθέστε τον χρήστη σας στην ομάδα uucp
# gpasswd -a $USER uucp
και κάντε log out και ξανά login.
Το σύστημα κλείνει κατά την επαναφορά
Αυτό είναι ένα γνωστό σφάλμα που προκαλεί κλείσιμο της εικονικής μηχανής όταν ο χρήστης προσπαθεί να την επαναφέρει. Μία μέθοδος για την παράκαμψη του προβλήματος είναι απλώς να κλείνετε πάντοτε την εικονική μηχανή σας με τον συνδυασμό πλήκτρων Host+q
η με τη σχετική εντολή από το μενού.
Εικόνες συστημάτων σε Btrfs
Πίσω στο 2010 είχαν εμφανιστεί αναφορές ότι τέτοιες εικόνες δίσκων με λειτουργικά συστήματα δεν εκκινούσαν, αν ήταν προσαρτημένες στο σύστημα μέσω εικονικής συσκευής SATA. Αυτό αναφέρθηκε ότι διορθώθηκε και πράγματι έτσι έδειχναν τα πράγματα. Όμως κάπου γύρω στο Μάρτιο του 2013 η συγκεκριμένη αναφορά σφάλματος ξανάνοιξε. Το σφάλμα μπορεί να διορθωθεί, αν ενεργοποιήσουμε τη χρήση της μνήμης cache της εισόδου/εξόδου του host (host I/O cache), που είναι εξ ορισμού ανενεργή για διεπαφές εικονικών SATA.
Windows 8.x Error Code 0x000000C4
Αν δείτε αυτό το μήνυμα σφάλματος κατά την εκκίνηση, ακόμη κι αν επιλέξετε τύπο λειτουργικού συστήματος Win 8, προσπαθήστε να ενεργοποιήσετε την CMPXCHG16B
εντολή της CPU
$ vboxmanage setextradata <όνομα της εικονικής μηχανής σας> VBoxInternal/CPUM/CMPXCHG16B 1
Η εικονική μηχανή με τα Windows 8 δεν εκκινεί και δίνει σφάλμα "ERR_DISK_FULL"
Κατάσταση: Η εικονική μηχανή σας με τα Windows 8 αρνείται να εκκινήσει. Το VirtualBox εμφανίζει ως σφάλμα ότι ο εικονικός δίσκος είναι πλήρης. Όμως εσείς είστε σίγουροι ότι ο δίσκος έχει χώρο. Πηγαίνετε στις ρυθμίσεις της εικονικής μηχανής σας, στο Settings > Storage > Controller:SATA και επιλέξτε "Use Host I/O Cache".