Creating the VM
- Download Raspberry Pi OS Download
- Launch Virtualbox
- Create a New VM by selecting Machine > New
Name: Raspberry Pi-Hole
Machine Folder: C:\VMs
Type: Linux
Version: Debian (32-bit)
Memory Size: 1024 MB
Hard disk: Create a virtual hard disk now - Click Create
- On the Create Virtual Hard Disk dialog
Name the virtual disk image Raspberry Pi-Hole.vdi
File size: 12-16 GB
Hard disk file type: VDI
Storage on physical hard disk: Dynamically Allocated - Click Create
- Select the VM and Click Settings
- Select System > Processor
- Give the VM at least 2 processors
- Select Display
- Slide the Video Memory to 128 MB
- Select Network
- Set the attached to dropdown to Bridged Adapter
- Select Storage
- Click on the CD-ROM drive
- Select the disc dropdown to the right > Choose a virtual optical disc file...
- Browse to and select the Raspberry Pi desktop .iso file
- Click OK
- Make sure the Raspberry Pi-Hole VM is selected and click Start > Normal
- Select Graphical Install
- Select a keyboard map > click Continue
- Select Guided - use entire disk > click Continue
- Click Continue, Continue, Continue
- Select Yes to confirm writing the changes to disk > click Continue
- Wait while Debian and the Raspberry Pi Desktop are installed
- Select Yes to install GRUB on the master boot record > click Continue
- Select /dev/sda > click Continue
- Click Continue to reboot the VM
- Click Next on the welcome dialog
- Set the Country, Language and Time Zone > click Next
- Enter and confirm a password for the pi user > click Next
- Click Skip to updating software
- Click Finish to reboot the VM and complete setup
Installing Updates and Pi-Hole
- Click the Applications button > Accessories > Terminal
- Run the following commands to install updates
sudo apt update
sudo apt upgrade -y
sudo apt clean
sudo reboot now - Select Devices > Insert Guest Additions CD image...
- If the installation autoruns, select Run
- On the desktop, Right click on the Guest Additions disc > Open in Terminal
- In the Terminal window run the following commands
sudo sh ./VBoxLinuxAdditions.run
sudo reboot now - The VM will reboot
- Upon rebooting, you can now full screen the VM and the internal resolution will automatically change to match the window size
- Click the Applications button > Accessories > Terminal
- Run the following command to install Pi-Hole
curl -sSL https://install.pi-hole.net | bash
- Press Enter until the DNS selection is displayed
- Select a DNS provider and press Enter
- Press Enter through the rest of the Pi-Hole installer, selecting the defaults
- Copy the randomly generated admin password (just in case)
- Press Enter to complete the installation
- Run the following command to change the Pi-Hole admin password
sudo pihole -a -p
- Enter and confirm the new password
- Click the Applications button > Internet > Chromium Web Browser
- Navigate to http://DNSorIP/admin
- Click Login
- Authenticate with the admin password
Testing Pi-Hole
- Right click the VM network connection > Wireless & Wired Network Settings
- Select eth0 from the interface dropdown
- Clear out the DNS servers and input the VM IP address
- Click Apply
- Click Devices > Network > Connect Network Adapter to disable networking
- Click Devices > Network > Connect Network Adapter to re-enable networking
- In Chromium, open a new tab and navigate to https://yahoo.com
- Go back to the Pi-Hole tab and see that some DNS queries have been blocked
Setting Up From Windows Client
- Click the Start button > Type control panel > press Enter
- Click View By > Small Icons
- Click Network and Sharing Center
- Click Change adapter settings
- Right click on the network connection > Properties
- Select Internet Protocol Version 4 (TCP/IPv4) > Properties
- Select the radio option next to Use the following DNS server addresses
- Input the IP address of the Pi-Hole VM
- Click OK on both of the open dialog windows
- Right click the Start button > Command Prompt (Admin)
- Type the following commands to flush your DNS cache and restart the network connections (note: your network connection will drop if running the commands on a remote machine)
ipconfig /flushdns
ipconfig /release
ipconfig /renew
More on Pi-Hole https://pi-hole.net/