Table of Contents

Virtualbox

SHRINKING

$ telinit 1
$ mount -o remount,ro /dev/sda1 /mnt
$ zerofree -v /dev/sda1
OR
$ sudo apt-get install zerofree
$ df
Filesystem ... Mounted on
/dev/sda6     /
$ mount -n -o remount,ro -t ext3 /dev/sda6 /
$ zerofree /dev/sda6
$ shutdown -h now
THEN
## decrease physical disk image size (size of image seen on host OS) does not change the size of the logical disk size
$ VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compact
## before: 13,739,008 KB
## increase but not decrease the logical size of disk image (size seen by guest OS)
## $ vboxmanage clonehd "original.vmdk" "new.vdi" --format vdi
$ VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --resize
## if error:
$ VBoxManage.exe modifyhd {UUID} --compact
## linux host
$ vboxmanage modifyhd /path/to/thedisk.vdi --compact
## windows host
$ VBoxManage.exe modifyhd C:\Users\USER55\VirtualBox VMs\Linux - Local only\Linux - Local only.vdi --compact
$ VBoxManage.exe modifyhd C:\Users\USER55\VirtualBox VMs\Linux - Local only\Linux - Local only.vdi --resize 42000

INCREASING SIZE

1. clone with snapshots
2. resize clone to 30 GB
  $ vboxmanage modifyhd *.vdi --resize 30000
3. resize partition
  ## keeping the same format from previous BIOS
  ## Partition    File System    Mount Point       Flags
  ## sdx1         ext4           /                 boot
  ## sdx2         extended
    ## sdx3       linux-swap
  ## fdisk -l /dev/sdx
  ## Device       Boot    Size          Type
  ## /dev/sdx1    *       30.3G         Linux
  ## /dev/sdx2            3.9G          Extended
  ## /dev/sdx5            3.9G          Linux swap / Solaris
  ## OR NEW Partition Format
  ## Disklabel type: dos
  ## Diskidentifier: 0x634c0b50
  ## Partition    File System    Size          Flags
  ## sdx1         linux-swap      4.00 GiB
  ## sdx2         extended        44.83 GiB
    ## sdx5       ext4            44.83 GiB    boot
  ## fdisk -l /dev/sdx
  ## Device       Boot    Size          Type
  ## /dev/sdx1            4G            Linux swap / Solaris
  ## /dev/sdx2            44.8G         Extended
  ## /dev/sdx5    *       44.8G         Linux
## Mount old and new *.vdi to SATA controller
## Mount any Linux *.iso to IDE
## $ sudo dd if=/dev/sda1 | pv | sudo dd of=/dev/sdb1
4. reinstall grub
  $ dd bs=512 count=1 if=/dev/sdx 2>/dev/null | strings
  $ sudo mount /dev/sdx5 ~/temp
  $ sudo grub-install --root-directory=~/temp /dev/sdx
  $ sudo umount -a
  ## verify UUID in ~/temp/boot/grub/grub.cfg and gparted UUID
  ## mounting LUKS encrypted partition
  $ cryptsetup luksOpen /dev/sdb2 crypted_sdb2
  $ mount /dev/mapper/crypted_sdb2 temp
## check size of new disk
$ sudo fdisk -l

MOUNTING

## mount the shared directory
$ sudo mount -t vboxsf VirtualBox_Local ~/host
## unmount
$ sudo umount ~/host

AUTOMOUNT

Device > Shared Folders > Machine Folders
VirtualBox C:\... > Edit
+ Auto-mount
+ Make Permanent
## add user to group vboxsf
$ groups user1
user1 : user1 cdrom floppy sudo audio dip video plugdev netdev bluetooth
$ sudo usermod -a -G vboxsf user1
$ groups user1
user1 : user1 cdrom floppy sudo audio dip video plugdev netdev bluetooth vboxsf
## $ sudo nano /etc/rc.local
## </etc/rc.local>
## mount --bind /media/sf_VirtualBox_WorkBL /home/user1/host
## mount -t vboxsf -o rw,uid=33,gid=33 VirtualBox_WorkBL  /media/sf_VirtualBox_WorkBL
$ sudo vi /etc/fstab
</etc/fstab>
/media/sf_VirtualBox_WorkBL /home/user1/host vboxsf bind,uid=10001,rw,umask=0000 0 0
## optional
$ sudo vi /etc/modules
</etc/modules>
vboxsf
## $ sudo nano /etc/fstab
## </etc/fstab>
## <file system> <mount point>   <type>  <options>     <dump>  <pass>
## VirtualBox_Local /home/user1/host   vboxsf  defaults,_netdev 0 0
## VirtualBox_Local /home/user1/host   vboxsf  rw, noauto 0 1
## $ sudo nano /etc/sudoers
## </etc/sudoers>
## ALL ALL = NOPASSWD: /bin/mount /home/user1/host/
## $ sudo nano /home/user1/.profile
## </home/user1/.profile>
## sudo mount /home/user1/host/

USBS

## download (and replace if necessary) extension pack
$ sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-XXX.vbox-extpack
$ sudo cp /usr/lib/virtualbox/VBoxCreateUSBNode.sh /usr/local/VBoxCreateUSBNode.sh
$ sudo chmod 755 /usr/local/VBoxCreateUSBNode.sh
## find the vboxusers GID and add the rules to udev
$ getent group vboxusers | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'
Group vboxusers with GID=106
$ sudo nano /etc/udev/rules.d/vbox.rules
</etc/udev/rules.d/vbox.rules>
SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/local/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} 106"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/local/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} 106"
SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/local/VBoxCreateUSBNode.sh --remove $major $minor"
SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/local/VBoxCreateUSBNode.sh --remove $major $minor"
## reload udev
$ sudo udevadm control --reload
## reboot and verify usb devices are showing up on VBox
$ VBoxManage list usbhost

NETWORKING

Exposing Ports

## guest os:
$ sudo ifconfig
eth0    Link encap:Ethernet  HWaddr 08:00:27:88:7e:b6
  inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
  inet6 addr: fe80::a00:27ff:fe88:7eb6/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  RX packets:23240 errors:0 dropped:0 overruns:0 frame:0
  TX packets:16175 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:13540890 (12.9 MiB)  TX bytes:1675587 (1.5 MiB)
lo  Link encap:Local Loopback
  inet addr:127.0.0.1  Mask:255.0.0.0
  inet6 addr: ::1/128 Scope:Host
  UP LOOPBACK RUNNING  MTU:65536  Metric:1
  RX packets:5317 errors:0 dropped:0 overruns:0 frame:0
  TX packets:5317 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:0
  RX bytes:5997658 (5.7 MiB)  TX bytes:5997658 (5.7 MiB)
## forward ports
Protocol: TCP
Host IP: 127.0.0.1
Host Port: 1001 ## any port
Guest IP: 10.0.2.15
Guest Port: 3000

Network Types

Mode VM → Host VM ← Host VM ↔ VM VM → Net/LAN VM ← Net/LAN
Host-Only + + + - -
Internal - - + - -
Bridged + + + + +
NAT + Port Forward - + Port Forward
NAT Network + Port Forward + + Port Forward
- Bridged Adapter:
  wlp4s0: wifi
  enp0s31f6: ethernet
    $ ip addr
      # enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
      # link/ether 08:00:27:7f:ab:cc brd ff:ff:ff:ff:ff:ff
      # inet 192.168.25.251/24 brd 192.168.25.255 scope global dynamic enp0s8
      #    valid_lft 81241sec preferred_lft 81241sec
      # inet6 fe80::a00:27ff:fe7f:abcc/64 scope link
      #    valid_lft forever preferred_lft forever
- NAT:
  $ ip addr
    # enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    # link/ether 08:00:27:73:33:da brd ff:ff:ff:ff:ff:ff
    # inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
    #    valid_lft 81930sec preferred_lft 81930sec
    # inet6 fe80::a00:27ff:fe73:33da/64 scope link
    #    valid_lft forever preferred_lft forever
- NAT Network:
  File > Preferences > Network > NAT Networks > Create
    NatNetwork:
      # enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
      # link/ether 08:00:27:f4:36:f9 brd ff:ff:ff:ff:ff:ff
      # inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
      #    valid_lft 1163sec preferred_lft 1163sec
      # inet6 fe80::a00:27ff:fef4:36f9/64 scope link
      #    valid_lft forever preferred_lft forever
- Internal Network:
- Host-only Adapter:
  File > Host Network Manager > Create
    vboxnet0:
      Adapter: Manual
        Ipv4 Address: 192.168.56.1
        Ipv4 Network Mask: 255.255.255.0
      DHCP Server:
        [x] enable server
        Server address: 192.168.56.100
        Server Mask: 255.255.255.0
        Lower Address Bound: 192.168.56.101
        Upper Address Bound: 192.168.56.254
      $ ip addr
        # enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        # link/ether 08:00:27:83:f8:46 brd ff:ff:ff:ff:ff:ff
        # inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s8
        #    valid_lft 1199sec preferred_lft 1199sec
        # inet6 fe80::a00:27ff:fe83:f846/64 scope link
        #    valid_lft forever preferred_lft forever

MISC

## allow VPN access from guest to host
cd C:\Program Files\Oracle\VirtualBox
VBoxManage modifyvm BL_002 --natdnshostresolver1 on
## Resolution
VBoxManage setextradata "macSierra" VBoxInternal2/EfiHorizontalResolution 1920
VBoxManage setextradata "macSierra" VBoxInternal2/EfiVerticalResolution 1080
## Monitor Count
## VBoxManage modifyvm "macSierra" --monitorcount 2
## VBoxManage modifyvm "macSierra" --vrdemulticon on
## Vbox info
lsmod | grep -i vbox
modinfo vboxguest
## modprobe vboxdrv fails
sudo apt update
sudo apt install --reinstall linux-headers-$(uname -r) virtualbox-dkms dkms
## rtr3initex failed with rc=-1912 (rc=-1912) Ubuntu
$ sudo rcvboxdrv setup
  Unloading modules: vboxnetadp vboxnetflt vboxdrv 
  Loading modules: modprobe: FATAL: Module vboxnetadp not found in directory /lib/modules/5.7.4-zen1-1-zen
  modprobe: FATAL: Module vboxnetflt not found in directory /lib/modules/5.7.4-zen1-1-zen
  modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/5.7.4-zen1-1-zen
$ ls /lib/modules/
  5.10.3-zen1-1-zen
$ sudo depmod 5.10.3-zen1-1-zen
$ sudo pacman -S virtualbox-guest-modules-arch virtualbox-guest-utils
$ sudo rcvboxdrv setup
$ sudo reboot