-
-
Notifications
You must be signed in to change notification settings - Fork 498
How to create a DietPi image for VirtualBox
Bastian Pätzold edited this page Jun 5, 2022
·
12 revisions
-
Machine
>New
: Name:DietPi_VirtualBox-x86_64-Bullseye
, Type:Linux
, Version:Debian (64-bit)
- Memory size:
1024 MB
(default, can be easily adjusted later) -
Create a virtual hard disk now
=>Create
- File size:
8 GB
(default, can be easily adjusted later) -
VDI
default native VirtualBox format, as this can be enlarged, compacted and converted better with VirtualBox tools -
Dynamically allocated
to reduce initial disk size. For best performance it could be beneficial to choose Fixed size on end machine. But especially when sharing the image through the web, for transfer, packing and unpacking this is not recommended. =>Create
- Select the new machine and
Settings
>System
>Motherboard
- Deselect
Floppy
- Chipset:
ICH9
, the modern one, supporting USB2+3, I never had issues with it - Pointing device:
PS/2 Mouse
, which allows disabling USB, although we leave USB enabled to allow live mounting on first boot -
Display
> Display Memory:16 MB
as default for initial headless server - Disable
Audio
and(https://github.com/Fourdee/DietPi/issues/2093#issuecomment-423964511) as default.USB
-
Network
>Attached to: Bridged Adapter
to allow local SSH,Advanced
> Adapter Type:virtio-net
, for best performance.
- Debian netboot/mini.iso: https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/mini.iso
- In case remove the dedicated IDE controller and add an optical drive to the existing SATA controller.
- Mount/Select the downloaded
iso
file to thisoptical drive
. - Start the VM.
- NB: The following steps can be automated, however the effort on netboot installers is too high to have any benefit over manually going through the installation for a single VM: https://www.debian.org/releases/stable/amd64/apbs01.html.en#preseed-methods
-
Advanced options
>Expert install
-
Choose language
>English
>United Kingdom
>en_GB.UTF-8
>continue
(select NO additional locales, any UTF-8 locale will work which is only important to have the correctconsole-setup
character map right from the start.) -
Configure the keyboard
>British English
Detect network hardware
-
Deselect any
Modules to load
as we don't require them. -
Configure the network
>Yes
(auto-configure) > hit return - Hostname:
DietPi
- Domain name:
<leave empty>
- APT mirror: Just use one near to your location or
deb.debian.org
. It will be overwritten anyway by DietPi-PREP, as actually most other settings as well 😉. - Debian version to install:
bullseye - stable
-
Download installer components
: deselect everything >Continue
-
Set up users
> Enable shadow passwords?Yes
> Allow login as root?Yes
> Root password:dietpi
- Create a normal user account now?
No
-
Configure the clock
> Use NTP?Yes
> leave default mirror0.debian.pool.ntp.org
> time zone:UTC
-
Detect disks
> Deselect anyModules to load
>Partition discs
>Manual
> Select the drive > Create new empty partition table?Yes
>msdos
> Select theFREE SPACE
>Create a new partition
> New partition size:max
>Primary
- Verify:
Ext4
and mount point/
>Done setting up the partition
>Finish partitioning
>No
return due to missing swap partition >Yes
write to disk Install the base system
- Select kernel package:
linux-image-amd64
- Select
targeted
since no generic driver installation is required for virtual machines. -
Configure the package manager
>No
nonfree, contrib and especiallyNo
source repository! - Select security/updates, backports are not required yet. This will be reset anyway during DietPi-PREP.
-
Select and install software
>No
virtualbox-guest extension >No automatic updates
andNo
survey (user should decide this oneself later) - Deselect all additional software
-
Install the GRUB boot loader
>Yes
to master boot record > to the only available partition (/dev/sda
) >Not
to the EFI removable media path, actually no idea why it detects EFI, as it was not selected on machine and is definitely not available afterwards... -
Finish the installation
> set to UTC?Yes
-
BEFORE
Continue
: Unplug the optical drive (context menu on ROM symbol at button,Remove disc
>Force removal
!), to prevent reboot into installer >Continue
- Login as root:dietpi
apt update; apt install -y ca-certificates curl dropbear
- Connect via SSH (IP:
ip a
) for easier copy&paste etc.bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer')"
- Git branch:
master
- Enter your name to be shown as image creator within DietPi banner credits.
- Enter
Debian mini.iso
as this was our base image above. - Device:
20 : x86_64 Virtual Machine
- Deselect WLAN functionality for VMs as they virtualise Ethernet adapters for network only.
- Distro version:
6: Bullseye
shutdown now
- Mount virtual drive (vdi) to another Linux system or virtual machine, use
zerofree -v /dev/sdx1
to reduce the final image size. In case:apt -y install zerofree
- To reduce the actual image file size as well (which does not affect the exported appliance/download size), run:
VBoxManage modifyhd --compact "[drive]:\[path_to_image_file]\DietPi_VirtualBox-x86_64-Bullseye.vdi"
- Additionally might want to remove your default Bridged Network host adapter. For this, close VirtualBox, open
DietPi_VirtualBox-x86_64-Bullseye.vbox
(and removeDietPi_VirtualBox-x86_64-Bullseye.vbox-prev
andLogs
) and change the similar line to<BridgedInterface name="eth0"/>
. As there is no way to keep the bridged networking setting without saving a certain interface name as well, andeth0
is at least the most general one that will fit for most Linux hosts. All others will face an error message and the option to adjust the interface to an available one. No bid deal, no better way to handle this. After editing the files, you MUST NOT open the VMs settings any more, otherwise it will insert your available interface again. Directly open the top menu to export the appliance first. - Export the whole appliance with OVF 1.0 format for compatibility reasons.
- MAC Address Policy:
Strip all network adapter MAC addresses
- Create hashes, e.g. using HashMyFiles, saving the report to
hash.txt
. - Download the current README.md
- Pack VM export file(s) + hash.txt + README.md with 7zip for high compression rate to
DietPi_VirtualBox-x86_64-Bullseye.7z
.
Project management
Extend
- DietPi-Software list
- DietPi TCP/UDP port usage list
- How to add a new software title
- How to create a DietPi image for Raspberry Pi
- How to create a DietPi image for VirtualBox
- How to create a DietPi image for VMware
- How to create a DietPi image for Parallels (macOS)
- How to create a DietPi image for x86_64 PCs (BIOS)
- How to create a DietPi image for x86_64 PCs (UEFI)
Knowledge Base