- Installing
- Creating a Debian VM
- Guest Additions
- Clone via Command Line
- Shutdown via Command Line
- Run Headless by Default
- Snapshots Panel Missing
VirtualBox
Installing
Download and install from the VirtualBox website.
Creating a Debian VM
Download a network install image from Debian.
In the
Storagetab of the VM's settings, selectEmptyunderController: IDEin the list ofStorage Devices.Select
IDE Secondary Masterfor theOptical Drivein the list ofAttributeson the right hand side of the dialog.Click the CD/DVD icon to the right of the
Optical Driveand selectChoose Virtual Optical Disk File...Browse to the location of the ISO image downloaded earlier and select it.
In the
Systemtab, change the boot order so that theOpticaldisk is booted after theHard Disk.Click
OKStart the VM
-- Frank Dean - 7 Apr 2018
Guest Additions
On a Debian system, installing the virtualbox-guest-utils and
virtualbox-guest-x11 packages provides the VirtualBox Guest Additions.
However, these packages are no longer available in Debian 10 (Buster), nor
are they available in backports. See https://wiki.debian.org/VirtualBox.
See the VirtualBox user manual for full installation details (In the
VirtualBox Manager GUI, Help -> Contents...).
Install the appropriate linux headers package in order to be able to build a linux kernel, e.g.
$ dpkg -l 'linux-image*' | egrep '^ii' ii linux-image-4.19.0-8-amd64 4.19.98-1+deb10u1 amd64 Linux 4.19 for 64-bit PCs (signed) ii linux-image-amd64 4.19+105+deb10u3 amd64 Linux for 64-bit PCs (meta-package) $ sudo apt-get install build-essential linux-headers-amd64Mount the
VBoxGuestAdditions.isofile that comes with the VirtualBox distribution. The easiest way is probably to choose theDevices -> Insert Guest Additions CD image...option from the menu bar of the running Virtual Machine GUI. That should automatically configure the virtual machine's CD drive to use the distribution image. You may need to mount the CD as follows:$ grep media /etc/fstab /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 $ mount /media/cdrom0Build the Guest Additions and kernel modules.
$ cd /media/cdrom0 $ sudo /bin/sh ./VBoxLinuxAdditions.run
Restart the VM, then you can do handy things like find the allocated IP address of the VM after it has started:
$ VBoxManage startvm 'Debian 10 (Buster)' --type headless
$ VBoxManage list runningvms
$ VBoxManage guestcontrol 'Debian 10 (Buster)' \
run --exe /sbin/ifconfig --username $USER --password $MY_PASSWORD
Alternatively, use the --passwordfile <file> option to avoid the password
being exposed in both the shell command history and the host's running process
list.
-- Frank Dean - 29 May 2020
Passing arguments:
$ VBoxManage guestcontrol 'Debian 11 (Bullseye)' run --exe /sbin/ip \
--username $USER --passwordfile secret.txt -- -- addr
Note the examples in the user manual suggest -- is required once, but in
practice, I found it necessary to supply a second -- before the actual
target program parameters.
-- Frank Dean - 06 Apr 2022
Time Synchronisation
See Tuning the Guest Additions Time Synchronization Parameters under 'Advanced Topics' of the VirtualBox User Guide.
$ VBoxManage guestproperty set "${VM-NAME}" "/VirtualBox/GuestAdd/VBoxService/${PROPERTY}" value
where ${PROPERTY} is one of:
--timesync-interval--timesync-min-adjust--timesync-set-threshold
e.g.
$ VBoxManage guestproperty set "${VM-NAME}" \
"/VirtualBox/GuestAdd/VBoxService/--timesync-interval" 10000
$ VBoxManage guestproperty set "${VM-NAME}" \
"/VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust" 100
$ VBoxManage guestproperty set "${VM-NAME}" \
"/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1200000
-- Frank Dean - 19 May 2023
Disabling Time Synchronisation
$ VBoxManage setextradata "${VM-NAME}" \
"VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
Shared Folders
Installing the VirtualBox Guest Additions provides the facility to share
folders. If this is inconvenient or doesn't work, another option to copy
files to and from the guest is to setup SSH and use tools
like rsync and scp. Install the ssh package on the Debian 10 guest. In
the Network section of the VM settings, select Bridged Adapter in the
Attached to drop-down and under Name select an appropriate network
interface on from the host machine. Restart the guest.
It may also be useful to install VNC which might provide cut-and-paste between the client and the host and vice versa. See VncTips.
-- Frank Dean - 10-Feb-2020
Note: If /sbin/mount.vboxsf is not present in the VM, it is most likely
because the Guest Additions have not been installed. Install the VirtualBox
Guest Additions as described above, shared folders can then be created as
follows.
Create a shared folder in the VirtualBox Manager under Settings -> Shared Folders.
Manually mount for read-write as root:
$ sudo mkdir /media/${MOUNT_POINT}
$ sudo mount -t vboxsf ${FOLDER_NAME} ${MOUNT_POINT}
For the current user:
$ sudo mount -t vboxsf -o uid=$UID,gid=`id -g $UID` ${FOLDER_NAME} ${MOUNT_POINT}
To allow a user to write to the shared folder you can add the user to the
vboxsf group which should have write access to the shared folder.
$ sudo adduser ${USERNAME} vboxsf
Unmount by unmounting all VirtualBox shared folders:
$ sudo umount -a -t vboxsf
Run sudo /sbin/mount.vboxsf to list the available options.
An entry in /etc/fstab might be:
Shared /media/shared vboxsf rw,auto,uid=1000,gid=1000
Where Shared is the folder name configured in VirtualBox settings. The
mount point is a folder you have previously created ready to use as a mount
point.
Shared Clipboard
After installing the VirtualBox Guest Additions as decribed above, enable the shared clipboard in VirtualBox Manager settings | General | Advanced | Shared Clipboard
-- Frank Dean - 18 Dec 2019
Clone via Command Line
$ VBoxManage clonevm 'Debian 10 (Buster)' --name='Debian 10 (Buster) Clone' --register
Shutdown via Command Line
$ VBoxManage controlvm 'Debian 10 (Buster)' acpipowerbutton
or
$ VBoxManage controlvm 'Debian 10 (Buster)' poweroff
Run Headless by Default
$ VBoxManage modifyvm $VM_NAME --defaultfrontend headless|gui|separate
Snapshots Panel Missing
Reset the split window with:
$ VBoxManage setextradata global GUI/SplitterSizes 236,516
https://forums.virtualbox.org/viewtopic.php?f=8&t=56537
Frank Dean - 30 Mar 2020
-- Frank Dean - 22 Apr 2017
Related Topics: LinuxHintsAndTips, DockerTips, VncTips