VirtualBox (Ελληνικά) - ArchWiki

# VirtualBox (Ελληνικά)

Σχετικά άρθρα

- VirtualBox
- VirtualBox Extras
- VirtualBox Arch Linux Guest On Physical Drive
- Installing Arch Linux from VirtualBox
- Moving an existing install into (or out of) a virtual machine

Το 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, που περιέχει τα προ-μεταγλωττισμένα αρθρώματα για τον κοινό πυρήνα του archlinux, θα πρέπει να έχει εγκατασταθεί μαζί με τη σουίτα. Αν χρησιμοποιείτε τον πυρήνα linux-lts, θα πρέπει να εγκαταστήσετε μόνοι σας το πακέτο virtualbox-host-modules-lts. Για επεξεργασμένους (custom) πυρήνες, διαβάστε παρακάτω.

Προκειμένου να χρησιμοποιήσετε την διεπαφή γραφικού περιβάλλοντος, που βασίζεται στην πλατφόρμα Qt (εντολή `VirtualBox`), θα χρειαστεί να εγκαταστήσετε επίσης το πακέτο qt4. Κάτι τέτοιο δεν χρειάζεται για το απλούστερο γραφικό περιβάλλον 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`

πιθανότατα δεν θα έχετε στο σύστημά σας τις κεφαλίδες (headers) πυρήνα που αντιστοιχούν στην έκδοση του custom πυρήνα σας
.

Αφού δημιουργήσετε το άρθρωμα του VirtualBox, το φορτώνετε με την:

    # modprobe vboxdrv

Για να ξαναμεταγλωττίσετε/ξαναφορτώσετε το άρθρωμα VirtualBox στον πυρήνα σας, μετά από αναβάθμισή του, μπορείτε να ενεργοποιήσετε την υπηρεσία `dkms` με την εντολή:

    # systemctl enable dkms

Αν δεν έχετε ενεργή την υπηρεσία `dkms` την ώρα που ενημερώνεται ο πυρήνας σας (επίσημος ή custom), το άρθρωμα VirtualBox δεν θα ενημερωθεί και ίσως να μη δουλεύει με τη νέα έκδοση του πυρήνα σας πλέον. Αν θέλετε να ξαναμεταγλωττίσετε/ενημερώσετε το άρθρωμα VirtualBox κατά την επανεκκίνηση του συστήματός σας μετά την εγκατάσταση νέας έκδοσης του πυρήνα, μπορείτε να χρησιμοποιήσετε ένα άγκιστρο (hook) στο initramfs, το οποίο θα καλεί αυτόματα την εντολή `dkms` που προαναφέρθηκε.

Για να ενεργοποιήσετε αυτό το χαρακτηριστικό, εγκαθιστάτε το πακέτο vboxhost-hookAUR από το 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 και χρησιμοποιήστε το όνομα αρχείου `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 εισάγεται μια νέα μέθοδος ώστε συστήματα τύπου 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 από τα αποθετήρια AUR. Στο vboxguest-hook η 'αυτόματη αναμεταγλώττιση' εξασφαλίζεται μέσω ενός άγκιστρου vboxguest στο mkinitcpio μετά την αναγκαστική ενημέρωση του πακέτου linux-headers. Θα χρειαστεί να προσθέσετε το `vboxguest` στο πεδίο των HOOKS στο αρχείο `/etc/mkinitcpio.conf`. Ίσως χρειαστεί να ξαναδημιουργήσετε μόνοι σας το initramfs μετά από αναβάθμιση του πακέτου linux-headers.

Το εν λόγω άγκιστρο θα καλέσει την εντολή `dkms` για να ενημερωθούν τα αρθρώματα VirtualBox guest modules για κάθε έκδοση του νέου πυρήνα σας.

Σημείωση: Αν χρησιμοποιείτε αυτή τη μέθοδο, είναι σημαντικό να παρακολουθείτε την πορεία της εγκατάστασης του linux (ή οποιουδήποτε άλλου πυρήνα. Το άγκιστρο vboxguest-hook θα σας ενημερώσει, αν κάτι δεν πάει καλά.

### Εκκίνηση των διαμοιραζόμενων υπηρεσιών

Μετά την εγκατάσταση του πακέτου virtualbox-guest-utils που είδαμε πιο πάνω, θα πρέπει να ξεκινήσετε την εντολή `VBoxClient-all` για να ξεκινήσουν οι υπηρεσίες διαμοιρασμού του προχείρου (clipboard), του επανακαθορισμού μεγέθους της οθόνης κ.λπ.

- Αν τρέχετε κάτι που ενεργοποιεί το `/etc/xdg/autostart/vboxclient.desktop`, όπως π.χ. το GNOME ή το KDE, δεν χρειάζετε να κάνετε τίποτε.
- Αν, αντίθετα, χρησιμοποιείτε το `.xinitrc` για να ενεργοποιήσετε λειτουργίες, θα πρέπει να προσθέσετε στο αρχείο σας `.xinitrc` την εξής εντολή, πριν εκκινήσετε τον διαχειριστή παραθύρων σας:

    # VBoxClient-all &

### Χρήση USB webcam / μικροφώνου

Σημείωση: Απαιτείται να έχετε εγκατεστημένο το πακέτο επεκτάσεων του VirtualBox πριν ακολουθήσετε τα βήματα που περιγράφονται παρακάτω. Δείτε το VirtualBox_Extras#Extension_pack για περισσότερες λεπτομέρειες.

1. Βεβαιωθείτε ότι δεν τρέχει η εικονική μηχανή σας και ότι δεν είναι σε χρήση η webcam και/ή το μικρόφωνό σας.
2. Ανοίξτε το κεντρικό παράθυρο του VirtualBox και πηγαίνετε στις ρυθμίσεις για τη μηχανή του Arch. Πηγαίνετε στο πεδίο USB.
3. Βεβαιωθείτε ότι έχει επιλεγεί το «Ενεργοποίηση ελεγκτή USB» (Enable USB controller). Επίσης βεβαιωθείτε ότι είναι επιλεγμένο το "Enable USB 2.0 (EHCI) Controller".
4. Επιλέξτε το κουμπί «Προσθήκη φίλτρου από συσκευή» (Add filter from device) - είναι το καλώδιο με το +.
5. Επιλέξτε τη USB συσκευή σας (webcam/μικρόφωνο) από τη λίστα
6. Δώστε 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). Σαν ιδέα είναι μάλλον καλή, αφού επιβιώνει σε τυχόν αλλαγές προδιαγραφών.

Σημείωση: Ένας άλλος χρήσιμος τρόπος να ξαναγυρίσετε πίσω στο μενού EFI μετὰ από αυτόματη εκκίνηση είναι να πιέσετε το `c` μέσα στο περιβάλλον του GRUB και να πληκτρολογήσετε `exit`. Προφανώς αυτός ο τρόπος θα δουλέψει μόνο με το `grub-efi`, όχι με το `grub-bios.`

Μπορεί ακόμη να χρειάζεται αναδημιουργία του αρχείου `grub.cfg` προκειμένου να επιδιορθωθούν κατεστραμμένοι σύνδεσμοι UUID. Ελέγξτε την ορθότητά τους με την εντολή `lsblk -f`.

Τέλος, άλλος ένας χρήσιμος τρόπος να φτάσουμε στο μενού εκκίνησης του VirtualBox είναι να πατήσουμε `F12` αμέσως μόλις εκκινήσουμε την εικονική μηχανή. Είναι κάτι που βολεύει, όταν χρησιμοποιούμε, για παράδειγμα, rEFInd + EFISTUB.

### Συγχρονισμός ημερομηνίας/ώρας μεταξύ guest και host

Για να διατηρήσετε σε συγχρονισμό την ημερομηνία και την ώρα, βεβαιωθείτε ότι έχετε εγκατεστημένο το πακέτο virtualbox-guest-utils στον υπολογιστή βάσης (host - δείτε παραπάνω). Για να έχετε ενεργή την υπηρεσία και σε επόμενες εκκινήσεις, τρέξτε την εντολή:

    # 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

Σημείωση: Για να λειτουργήσει η αυτόματη φόρτωση, θα πρέπει να ενεργοποιήσετε την υπηρεσία vboxservice.

Αν θέλετε να δημιουργήσετε έναν συμβολικό δεσμό (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).

Συμβουλή: Αν σκοπεύετε να χρησιμοποιήσετε κάποια λύση εικονικοποίησης από την Parallels Inc για τον Mac σας, μπορείτε να χρησιμοποιήσετε το προϊόν της Parallels Transporter για να φτιάξετε μια εικονική μηχανή από μιαν άλλη εικονική μηχανή Windows ή GNU/Linux (ή ακόμη κι από μια πραγματική εγκατάσταση). Με ένα τέτοιο προϊόν δεν υπάρχει λόγος να προχωρήσετε στο επόμενο βήμα και μπορείτε να σταματήσετε εδώ το διάβασμα.

### Χρήση του σωστού 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.

### Δημιουργήστε τη διαμόρφωση της εικονικής μηχανής για τον υπερεπόπτη σας

Αν ο υπερεπόπτης σας (όπως π.χ. το VMware) δεν υποστηρίζει την εισαγωγή αρχείων διαμόρφωσης του VirtualBox (.vbox), θα χρειαστεί να φτιάξετε μια νέα εικονική μηχανή και να καθορίσετε τις προδιαγραφές της για προσομοίωση του hardware όσο γίνεται πιο παραπλήσιες προς εκείνες της αρχικής εικονικής μηχανής σας (του VirtualBox).

    a new virtual machine and specify its hardware configuration as close as possible as your initial VirtualBox virtual machine.

Σημείωση: Δώστε ιδιαίτερη προσοχή στον τρόπο εγκατάστασης (BIOS ή UEFI) του guest λειτουργικού συστήματος. Ενώ στο VirtualBox υπάρχει διαθέσιμη επιλογή για να διαλέξετε ανάμεσα στους δύο αυτούς τρόπους, στο VMware θα πρέπει να προσθέσετε το εξής στο .vmx αρχείο σας:

    ArchLinux_vm.vmx

    firmware = "efi"

Τέλος ζητήστε από τον υπερεπόπτη σας να χρησιμοποιήσει τον υπάρχοντα εικονικό δίσκο που μετατρέψατε και ξεκινήστε την εικονική μηχανή σας.

Συμβουλή: Αν χρησιμοποιείτε προϊόντα VMware και δεν θέλετε να διατρέξετε σε όλο το γραφικό περιβάλλον για να βρείτε την ακριβή τοποθεσία για τον νέο εικονικό δίσκο σας, μπορείτε να αντικαταστήσετε την τοποθεσία του τρέχοντος αρχείου .vmdk επεμβαίνοντας «με το χέρι» στο αρχείο διαμόρφωσης .vmx.

## Προχωρημένη διαμόρφωση

### Αντικατάσταση του εικονικού δίσκου «με το χέρι» από το αρχείο .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>

Σημείωση: Αν δεν ξέρετε το GUID του δίσκου που θέλετε να προσθέσετε, αλλά έχετε μόλις χρησιμοποιήσει για τη μετατροπή το `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 και χρησιμοποιήστε ένα όνομα προγράμματος του `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".

## Ἐξωτερικοί σύνδεσμοι

- VirtualBox User Manual

Categories:

- Emulators (Ελληνικά)
- Virtualization (Ελληνικά)