Last time, I mentioned Creating Ventoy VDI for Linux Live USB , however, it may not boot on some strange hardware and I unfortunately have quite a few of those. So in such cases, it’s better to boot Linux natively.
By doing this, we need Rescuezilla/Clonezilla to extract the Linux system out of Virtualbox’s hard drive (VDI/VMDK).
Download and load the ISO of Rescuezilla, a GUI version of Clonezilla, it’s larger but eaiser to use.
https://github.com/rescuezilla/rescuezilla/releases/download/2.5.1/rescuezilla-2.5.1-64bit.noble.iso
Load the ISO through the Host (Phisical) machine, both Virtuablbox and VMware Workstation should has a similar way to do this. Then Boot into the ISO.
When the superhero pengune shows up, select the language and Clone
as option.
Before click next, make sure connect a external drive to be used on the Host machine. Either a flash drive for portable or a hard drive for internal use are applicable. It is recommend to use a portable SSD for the optimal performance and durability. Because a regular flash drive would be weared off pretty quick as a system drive. It’s eaiser to mitigate the NAND longevity issue for Linux by using a dedicated portable distros rather than cloning Linux from desktop.
Select the VBOX HARDDISK with the system to be cloned as Srouce Drive, and the external USB drive as Destination Drive.
Confirm the selection with Overwrite partition table
selected with Rescue
unchecked. Then the cloning task will be started.
After clone finished, the program would update partition record and grub automatically and the USB drive should be ready to go.
(Optional) Troubleshooting:
Use system built-in Recovery Mode or boot-repair-disk to update grub, or
Start a Terminal
from Rescuezilla and run fdisk -l
to check devices
Device Start End Sectors Size Type
/dev/sdb1 2048 4095 2048 1M BIOS boot
/dev/sdb2 4096 xxxx xxxx 512M EFI System
/dev/sdb3 xxxx xxxx xxxx 20G Linux filesystem
In my case, the USB drive is sdb
, and run blkid
to get UUID for each device
/dev/sdb1: PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
/dev/sdb2: UUID="xxxx-xxxx" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
/dev/sdb3: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Close the Rescuezilla tool window and run mount /dev/sdb3 /mnt
and mount sdb2 /mnt/boot
, then run chroot /mnt
to login the system on USB drive.
Runmousepad /etc/fstab
to replace the old UUID
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 errors=remount-ro 0 1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot ext4 defaults 1 2
UUID=xxxx-xxxx /boot/efi vfat umask=0077,shortname=winnt 0 2
Finally, run update-grub
or grub-mkconfig -o /boot/grub/grub.cfg
before reboot.