Comprehensive verification and optimization toolkit for Parrot Security OS & Kali Linux VirtualBox VMs
Setting up a penetration testing VM in VirtualBox comes with many challenges: clipboard not working, slow performance, display issues, and more. This toolkit automates the detection and fixing of these common issues.
βΉοΈ How it works: The main script (
parrot_vm_check_v2.sh) only inspects and reports β it never changes your system. To apply fixes, you separately run the generated optimizer (sudo bash /tmp/parrot_optimize.sh) and choose exactly what to apply from its menu. Nothing is disabled or stopped without your explicit choice.
β
17+ System Checks β Guest Additions, clipboard, graphics, performance, and more
β
Automatic Issue Detection β Identifies problems and their severity
β
Fix Commands Provided β Copy-paste solutions for every issue
β
Performance Optimization β Reduce boot time and improve responsiveness
β
Interactive Optimizer β Menu-driven optimization script
β
Wayland Detection β Identifies the #1 cause of VirtualBox issues
wget -O parrot_vm_check.sh https://raw.githubusercontent.com/yourusername/parrot-vm-toolkit/main/parrot_vm_check_v2.sh && chmod +x parrot_vm_check.sh && sudo ./parrot_vm_check.sh# Clone the repository
git clone https://github.com/yourusername/parrot-vm-toolkit.git
cd parrot-vm-toolkit
# Make scripts executable
chmod +x parrot_vm_check_v2.sh
# Run the verification script
sudo ./parrot_vm_check_v2.sh| Category | Checks Performed |
|---|---|
| System Info | OS version, kernel, VM detection |
| Desktop Session | KDE/GNOME, X11 vs Wayland detection |
| Guest Additions | Kernel modules, VBoxService, VBoxClient |
| Clipboard | Service status, bidirectional functionality |
| Drag & Drop | Service status, common issues |
| Graphics | 3D acceleration, resolution, drivers |
| CPU | Cores allocated, usage, features (PAE/NX) |
| Memory | RAM allocation, swap usage, availability |
| Storage | Disk space, I/O performance |
| Network | Connectivity, DNS resolution |
| Shared Folders | vboxsf module, user permissions |
| Boot Time | Duration analysis, slow services |
| Startup Services | Optional services that can be disabled |
| Performance | Swappiness, preload, tracker, KDE effects |
| Browsers | Installed browsers, resource usage |
| System Logs | VirtualBox errors, Guest Additions logs |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π¦ Parrot OS VirtualBox Verification Suite v2.0 π¦ β
β CyberSkii β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. VIRTUALBOX GUEST ADDITIONS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[Kernel Modules]
[β PASS] vboxguest module loaded (Core Guest Additions) - v7.0.18
[β PASS] vboxsf module loaded (Shared Folders support)
[β PASS] vboxvideo module loaded (Video driver)
[VBoxClient Features]
[β PASS] VBoxClient --clipboard is running
[β PASS] VBoxClient --draganddrop is running
[β PASS] VBoxClient --seamless is running
[β PASS] VBoxClient --vmsvga is running
βΊ Guest Additions Status: INSTALLED & RUNNING
π VERIFICATION SUMMARY
Passed: 42
Warnings: 3
Failed: 0
Issues: 2
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β VM is functional but has some issues - review fixes above β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The main script generates additional helper scripts:
Automatically applies fixes for detected issues:
sudo bash /tmp/parrot_autofix.shInteractive menu for performance optimization:
sudo bash /tmp/parrot_optimize.shMenu Options:
1) Disable unnecessary startup services (incl. plymouth boot splash)
2) Optimize system settings (swappiness, cache, GRUB boot timeout)
3) Install preload (faster app launching)
4) Install lighter browser (Chromium)
5) Disable KDE desktop effects
6) Disable tracker / Baloo file indexer
7) Clean system (apt cache, old packages)
8) Clear RAM cache (temporary boost)
9) Apply ALL optimizations
0) Exit
# Check session type
echo $XDG_SESSION_TYPE
# If "wayland", switch to X11 at login screen
# Restart clipboard service
VBoxClient --clipboard &# Disable slow services
sudo systemctl disable postgresql docker cups bluetooth
sudo systemctl disable NetworkManager-wait-online
sudo systemctl disable apt-daily-upgrade lm-sensors
# Mask the boot splash (often the single biggest offender, 15-35s)
sudo systemctl mask plymouth-quit-wait.service plymouth.service
# Skip the GRUB menu countdown
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub && sudo update-grubSee the full Boot Optimization section below for the complete walkthrough, or just run the generated optimizer (
sudo bash /tmp/parrot_optimize.sh) which applies all of this for you.
# Reduce swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Install preload
sudo apt install -y preload# Reinstall Guest Additions
sudo apt install -y build-essential dkms linux-headers-$(uname -r)
# VirtualBox Menu: Devices β Insert Guest Additions CD
sudo mount /dev/cdrom /mnt/cdrom
sudo /mnt/cdrom/VBoxLinuxAdditions.run
sudo rebootA slow-booting VM is the most common complaint when running Parrot OS (or Kali) inside VirtualBox. Boot times of 3+ minutes are usually caused by a handful of unnecessary services, the GRUB menu countdown, and the boot splash animation. The steps below cut that down to roughly 1 minute or less.
π‘ The verification script detects these issues automatically, and the generated optimizer (
sudo bash /tmp/parrot_optimize.sh) applies every fix in this section for you. This guide documents what it does so you can also do it by hand.
# Total boot time (kernel + userspace split)
systemd-analyze
# Top 20 slowest services during boot
systemd-analyze blame | head -20These services commonly waste boot time and are not required for a pentesting VM:
| Service | What It Does | Why You Don't Need It |
|---|---|---|
plymouth-quit-wait.service |
Boot splash animation | Cosmetic only β often wastes 15β35s |
apt-daily-upgrade.service |
Auto package upgrades on boot | Run updates manually instead |
samba-ad-dc.service |
Samba AD domain controller | Not needed unless running AD |
isc-dhcp-server.service |
DHCP server daemon | Not needed unless serving DHCP |
cpupower-gui.service |
CPU frequency scaling GUI | Unnecessary in a VM |
cpupower-gui-helper.service |
Helper for the CPU frequency GUI | Unnecessary in a VM |
lm-sensors.service |
Hardware temperature sensors | Sensors don't work in VMs |
ptunnel.service |
ICMP tunneling | Only needed during specific engagements |
sudo systemctl disable apt-daily-upgrade.service samba-ad-dc.service \
isc-dhcp-server.service cpupower-gui.service cpupower-gui-helper.service \
lm-sensors.service ptunnel.serviceIf plymouth-quit-wait still appears in systemd-analyze blame after disabling, mask it β this is stronger than disable and prevents it starting even when another unit depends on it:
sudo systemctl mask plymouth-quit-wait.service plymouth.serviceBy default GRUB pauses several seconds at the boot menu. Set it to zero:
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub
sudo update-grubPower off the VM and adjust these in VirtualBox β Settings:
- Display: Graphics Controller β VBoxSVGA, Video Memory β 128 MB, enable 3D Acceleration
- Processor: at least 2 CPUs (4 if the host allows), enable PAE/NX
- Memory: at least 4 GB RAM (8 GB recommended)
- Storage: put the VM disk on an SSD; prefer a fixed-size disk over dynamically allocated (faster I/O)
- System β Boot: uncheck Enable EFI (BIOS boot is faster for VMs)
Improves display performance, enables shared clipboard, and fixes display-driver issues:
sudo apt update
sudo apt install -y virtualbox-guest-x11 virtualbox-guest-utils virtualbox-guest-dkms
sudo reboot# Use RAM more, swap less (make permanent via /etc/sysctl.conf)
sudo sysctl vm.swappiness=10
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
# KDE editions: disable the Baloo file indexer
balooctl disable
# XFCE editions: stop the screensaver/power manager from hanging an idle VM
xfce4-screensaver-command --disable
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/dpms-enabled -s falseIf you see this during boot:
vmwgfx: seems to be running on an unsupported hypervisor
vmwgfx: This configuration is likely broken
The VMware graphics driver (vmwgfx) is loaded while you're on VirtualBox. Fix it by setting the Graphics Controller to VBoxSVGA in the VM's Display settings.
| Stage | Before | After |
|---|---|---|
| Total Boot Time | ~3 min 20 s | ~1 min or less |
| Userspace | ~2 min 50 s | ~45 s |
| Top Offenders | 8+ unnecessary services | Only essential services remain |
vboxadd.serviceβ VirtualBox Guest AdditionsNetworkManager.serviceβ Network connectivitysystemd-modules-load.serviceβ Kernel moduleslightdm.service/sddm.serviceβ Desktop login managersystemd-journald.serviceβ System loggingdbus.serviceβ Inter-process communication
- Full Blog Post β Detailed walkthrough of all issues and solutions
- VirtualBox Settings Guide β Optimal VM configuration
- Performance Tuning β Advanced optimization techniques
| Distribution | Version | Status |
|---|---|---|
| Parrot Security OS | 7.1 KDE | β Fully Tested |
| Parrot Security OS | 6.x | β Compatible |
| Kali Linux | 2024.x | β Compatible |
| Kali Linux | 2023.x | β Compatible |
| Ubuntu | 22.04+ | β Compatible |
| Debian | 11+ | β Compatible |
- VirtualBox 7.x β β Recommended
- VirtualBox 6.x β β Compatible
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
CyberSkii β Cybersecurity Community
- Website: cyberskii.com
- GitHub: @CyberAlp0
If this toolkit helped you, please consider:
- β Starring this repository
- π Reporting issues you encounter
- π’ Sharing with others in the infosec community
- Added a dedicated Boot Optimization guide for faster VirtualBox startup
- Detect more boot-slowing services (plymouth, apt-daily-upgrade, samba-ad-dc, isc-dhcp-server, cpupower-gui, lm-sensors, ptunnel)
- Optimizer now masks the Plymouth boot splash (the most common offender)
- Optimizer now reduces the GRUB boot menu timeout to 0
- Optimizer now disables the Baloo file indexer on KDE editions
- Added boot time analysis
- Added startup services check
- Added performance metrics (swappiness, preload, tracker)
- Added browser analysis
- Added comprehensive issues table
- Added optimization guide table
- Added auto-optimization script generator
- Improved Wayland detection
- Added quick commands reference table
- Initial release
- Guest Additions verification
- Basic system checks
- Issue detection and fixes
