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