WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Resources
    • Nested Virtualization
  • VMware Nostalgia
  • Apple
You are here: Home / ESXi-Arm / How to run Raspberry Pi OS as a VM on ESXi-Arm

How to run Raspberry Pi OS as a VM on ESXi-Arm

10.13.2020 by William Lam // 80 Comments

It has only been a week since the ESXi-Arm Fling was released, but the amount of experimentation and frankly cool s*** that people have been able to do in such a short period of time has been pretty mind blowing. For example, did you know you could run ESXi-Arm on Nintendo Switch!?🤯

Andrei recently published a blog post on the official ESXi-Arm blog showcasing some of the really cool stuff the community has shared on Twitter, definitely worth checking digest post #1 it out if you have not seen it.

Something that really caught my eye which I did not see mentioned in Andre's blog post was from Twitter user Joakim Korhonen who shared that he was able to run Raspberry Pi's (rPI) OS (formally Raspbian OS) as a Virtual Machine running on top of the ESXi-Arm Fling!

running raspberry pi os on esxi on raspberry pi. nice.
needs uefi grub and debian kernel#raspberrypi #esxionarm pic.twitter.com/QcOxMAiSuC

— Joakim Korhonen (@korhojoa) October 8, 2020

This is pretty interesting because rPI OS was designed to run on a physical rPI and there are no installers other than the image file which you download and copy onto the SD Card to boot. What is really exciting about this news is that you can now run any of the popular rPI applications such as RetroPi or Pi-hole which traditionally may have required several rPI to host.

In addition, this can also benefit the rPI OS development community by making it easier to build and test applications on top of rPI OS as you can now spin these up as VMs and get all the benefits of vSphere and ESXi such as snapshots, cloning, etc. The possibilities are endless and wanted to give a huge thanks to Joakim for sharing his hack on getting this to work on ESXi-Arm. For those interested, I have documented the detailed instructions below.

UPDATE (08/27/23) - See this post HERE on instructions for updating to the latest Linux kernel for rPI OS

UPDATE (11/106/20) - For those familiar with VMware Virtual Appliances (OVA) and using custom OVF properties for guest/application customization, be sure to check out this complimentary blog post on how to build your own rPI OS OVA that can allow you to easily deploy additional rPI OS VMs with ease, especially useful for testing and development purposes.

Step 1 - You need access to a system that has the qemu-img utility installed. In my setup, I am using a Photon OS 3.0 (x86) VM that I have lying around. This can also be an Ubuntu VM if you have one of those. You will also need about ~6.5GB of free storage for the converted file format.

The following packages should be installed if you are using Photon OS:

tdnf -y install qemu-img unzip wget

Step 2 - Download the latest rPI OS Buster image to your system

wget https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-05-28/2020-05-27-raspios-buster-arm64.zip
unzip 2020-05-27-raspios-buster-arm64.zip
rm 2020-05-27-raspios-buster-arm64.zip

Step 3 - Use qemu-img to convert the image file to a VMDK

qemu-img convert -f raw 2020-05-27-raspios-buster-arm64.img -O vmdk 2020-05-27-raspios-buster-arm64.vmdk

Step 4 - SCP the VMDK file to the datastore of your ESXi-Arm host

Step 5 - We need to actually convert the VMDK one more time so ESXi understands it, as the qemu-img utility only converts it to a hosted format which is normally used by Workstation/Fusion. To do so, we just use our good ol' friend, vmkfstools. You need to SSH (SSH is disabled by default) to the ESXi-Arm host after SCP'ing the VMDK and then run this command from ESXi-Arm host:

vmkfstools -i 2020-05-27-raspios-buster-arm64.vmdk -d thin raspios-buster-arm64.vmdk

After the conversion completes, you can delete the source VMDK.

Step 6 - Download the latest Debian 10.x Arm Network Installer ISO and also upload that to the datastore of your ESXi-Arm host

Step 7 - Create a New VM called rPI-OS with the following configuration:

  • Compatibility: ESXi 7.0 and later
  • Guest OS Family: Linux
  • Guest OS Version: Debian GNU/Linux 10 (64-Bit)
  • CPU: 2 (or desired value)
  • MEM: 2GB (or desired value)
  • Hard Disk 1: Remove default since we are going to attach the one we just converted. To so by clicking on "Add New Device" and select Existing Hard Disk and locate that on the ESXi-Arm datastore
  • CD/DVD dive 1: Select Datastore ISO File and locate the Debian Network Installer ISO from ESXi-Arm Datastore and ensure the device has checked box for "Connected"


Step 8 - Power on the VM and in then select Advanced options from the GRUB menu


Step 9 - Next, select Rescue Mode


Step 10 - Complete the basic setup screen (language, country, keyboard, hostname, domain and timezone) before we can boot into rescue mode.

Step 11 - Select /dev/sda2 to boot from


Step 12 - Go ahead select Yes to mount /boot as a separate partition.


Step 13 - Select the Execute a shell in /dev/sda2 and you will be prompted once more, hit continue.


Step 14 - You should now be in a shell, go ahead and run the following command to pull latest updates:

apt update


Step 15 - Run the following command to install Grub package for Arm:

apt install -y linux-image-arm64 grub-efi-arm64


Step 16 - Run the following command to install Grub onto our rPI image:

grub-install --efi-directory=/boot


Step 17 - Finally, run the following command to update the Grub configuration:

update-grub


Step 18 - Type "exit" to exit from the shell and then select Reboot the system.


At this point, you should disconnect the Debian ISO from the vSphere UI or ESXi Embedded Host Client. You probably will see the following warning stating the GuestOS has locked the CD-ROM drive, go ahead and click on Yes to disconnect and that should allow the VM to continue booting from updated VMDK now.


If all changes were applied successfully, you should see the the Debian Grub menu startup and it should boot into our rPI image.


In a few seconds, you should be taken to the familiar rPI OS desktop screen!


One thing you will notice is that there is not much space left on the filesystem to do anything interesting. We can easily resize our disk by performing these two steps below.

Step 1 - In the vSphere UI or ESXi Embedded Host Client, change the disk from 3GB to whatever size you wish to use (this can be done while the VM is already booted up). In my example, I selected 10GB and the next step works for any disk capacity.

Step 2 - Open terminal in rPI OS and run the following command which will automatically expand filesystem and then reboot for changes to go into effect.

sudo raspi-config --expand-rootfs


If you do not want to go through this manual process again if you make a mistake, I highly recommend you create a VM Template before performing further customization and this way you can deploy additional copies.

Lastly, I wanted to also share that I was able to compile VMware Tools for rPI OS itself and have it successfully running. For those instructions, please refer to this blog post for more details.

More from my site

  • How to build a customizable Raspberry Pi OS Virtual Appliance (OVA)?
  • Cluster API BYOH Provider on Photon OS (Arm) with Tanzu Community Edition (TCE) and ESXi-Arm
  • Hybrid (x86 and Arm) Kubernetes clusters using Tanzu Community Edition (TCE) and ESXi-Arm
  • VEBA + Knative + k3s on ESXi-Arm
  • Stateless ESXi-Arm with Raspberry Pi

Categories // ESXi-Arm Tags // Arm, Raspberry Pi, Raspberry Pi OS

Comments

  1. *protectedDaniel says

    10/14/2020 at 11:46 am

    Hello,

    for the command "vmkfstools -i vmdk 2020-05-27-raspios-buster-arm64.vmdk raspios-buster-arm64.vmdk" is not working on the ESXi. The message is :

    vmkfstools -i vmdk 2020-08-20-raspios-buster-arm64.vmdk raspios-buster-arm64.vmdk -d
    thin
    Extra arguments at the end of the command line.

    Reply
    • *protectedJD says

      10/14/2020 at 5:34 pm

      This worked for me:
      vmkfstools -i 2020-05-27-raspios-buster-arm64.vmdk -d thin raspios-buster-arm64.vmdk

      Reply
    • *protectedMatt Crognale says

      10/15/2020 at 11:33 am

      If you put a ./ in front of both file names it will work, it's expecting a full path for the conversion.

      Reply
      • *protectedBruno says

        11/28/2020 at 6:10 am

        I keep having the errormessage: "Clone: 100% done.Failed to clone disk: Read beyond end of object (1355)."Any ideas?

        Reply
  2. *protectedTony says

    10/15/2020 at 9:14 am

    what is the purpose to run VM on ESXi on Raspberry Pi OS?

    Reply
    • William Lam says

      10/15/2020 at 9:47 am

      This is NOT running VM on rPI OS. rPI OS is running as a VM on ESXi-Arm 🙂

      Reply
    • *protectedNicholas Derasmo says

      10/15/2020 at 8:42 pm

      I'm not sure why running Pi OS as s VM on Esx is useful either but ok cool

      Reply
      • William Lam says

        10/16/2020 at 5:42 am

        Well, there's so many possibilities if put your self into multiple perspectives. rPI OS was design to run on physical rPI, to do any development, you'd need to have a physical device or for breaking things or just messing around, you'd potentially need multiple rPIs. If you mess up, you reinstall, etc. As a VM, you get benefits of snapshot, clone, etc. So this can certainly augment and enhance developer experience for rPI OS to build even cooler applications like pi-hole, retroPi, etc.

        For consumers, I know a number of admins who have multiple rPI running single-based apps 🙂 They don't always use all the resources and already know a number of folks consolidating and planning to consolidate all their different apps. Once a VM, you can apply all sorts of policies and get additional monitoring that you may not have for a physical device. In any case, lots of folks were quite excited for this as they saw the potential as I did

        Reply
  3. *protectedMark Emery says

    10/17/2020 at 1:05 am

    Thanks for this! I found running this too before booting the new image helps.
    vmkfstools -X 8G raspios-buster-arm64.vmdk

    Reply
  4. *protectedLindsay says

    10/18/2020 at 1:34 am

    This method worked perfectly to get the 64Bit Raspberry Pi OS working.

    However I don't suppose there is way to get this method to work with the 32Bit version of Raspberry Pi OS?

    I have a project in mind that this could be very useful for.
    Specifically digital radio hotspots using Pi-Star which is Raspbian based.
    Normally 1 hotspot = 1 Raspberry Pi.

    If I can get it to boot, using USB passthrough on ESXi I could consolidate multiple Raspberry Pi's into a single Raspberry Pi running multiple Pi-Star/Raspbian VM's.

    I have tried these instructions on the 32 Bit Raspberry Pi OS but so far no luck.

    Or is it simply not possible to get a 32Bit OS booting?

    Reply
  5. *protectedviumden says

    10/24/2020 at 8:18 am

    Is there way to get arm based distributions like manjaro/arch linux who only ships img file to burn on sd card as well? The approach documented here is only applicable for debian based distribution?

    Reply
  6. *protectedrick5505 says

    10/27/2020 at 8:38 am

    Thank you very much for this guide William. It worked great!
    I am missing how to create this VM template. It is not so easy to figure that out because there is not a vmdk file for this. Is there any guides for making this template for this special setup with Debian and rPi?
    Thanks

    Reply
    • William Lam says

      10/27/2020 at 5:49 pm

      Once you finish creating the VM. Just right click and under “Template”, you’ll see option to convert the VM to VM template. From there, you can store it and simply clone.

      I don’t know if rPI is OSS and whether it can be redistributed, an OVA would be nice

      Reply
  7. *protectedDennis Faucher says

    10/29/2020 at 1:15 pm

    Thanks you for the detailed and extremely helpful instructions. Lots of steps but they all work in the end. You saved me hours.

    Reply
  8. *protectedYves CH. says

    11/06/2020 at 1:14 am

    thank you for this guide.

    i have just a question, are you thinking of having vCenter working on arm ?

    Reply
  9. *protectedClaw22000 says

    11/07/2020 at 9:01 pm

    Neither linux-image-arm64 or grub-efi-arm64 exist. Please update this please.

    Reply
    • *protectedJohn Loy says

      12/20/2020 at 6:15 pm

      It is because you download the 32bit ARMHF version of Raspberry and not the 64bit. I made the same mistake.

      Reply
  10. *protectedGarioch Hörthmann says

    11/08/2020 at 4:54 am

    Any way to enable SSH ? I tried every way I know of
    - put ssh -file in /boot - nothing
    - systemctl enable/start ssh - nothing

    When I try to reach the ssh from a ubuntu machine in my local network I get
    ssh connection to host 192.168.2.xxx port 22: Connection timed out

    Now I'm pretty sure the address is correct since its the address I get via ifconfig -a in the raspiOS

    So what did I miss ?

    Reply
    • *protectedDennis Faucher says

      11/08/2020 at 5:09 am

      Did you enable ssh and shell in the ESXi console?

      Reply
  11. *protectedClaw22000 says

    11/09/2020 at 7:23 pm

    Is there a way to do this for the 32bit version or raspian? There's more software support for that. I will want to run servers on this eventually.

    Reply
    • William Lam says

      11/10/2020 at 5:10 am

      No, we only support 64bit Kernel but it can run 32bit apps which it sounds like it has better support. This https://forum.odroid.com/viewtopic.php?t=18806 might be useful on how you can install the 32bit apps

      Reply
  12. *protectedKostas Gotsis says

    11/12/2020 at 8:20 am

    Hello and thanks for this great guide!

    After booting from the ISO and running apt update I noticed that in your screenshot apt also gets from both the deb.debian.org and the raspberry repository. In my case it only uses archive.raspberry.org and raspbian.raspberry.org. So linux-image-arm64 and grub-efi-arm64 do not exist

    Any ideas? I did use the 2020-08-20-raspios-buster-armhf-lite image

    Reply
    • William Lam says

      11/14/2020 at 2:27 pm

      I didn't try with the other image, so its possible it won't work. I recommend following the guide as that's what I've been able to verify among others who have also successfully built rPI OS VM

      Reply
      • *protectedKostas Gotsis says

        11/20/2020 at 12:51 pm

        It is working fine now with the latest version too. I would suppose I had done something wrong but I did try it many times and some other users had the same issues, so something must have changed in the apt update that fixed it. Anyway, everything fine!

        Reply
  13. *protectedLucas says

    11/14/2020 at 2:57 pm

    Hey this is an awesome guide! Now, quick question, would something like this help to convert my current RasPi setup into a VM? I'm thinking about creating an image, then exporting it to a vhdx, but can't find a noob-friendly way of doing it =/

    Reply
  14. *protectedS. Jeck says

    11/18/2020 at 6:59 am

    Hey very cool How to Run, but the Problem is that lsb_release -a now says thats a debian and not a raspberry pi os ! :/ Thats not fine for some softwares

    Reply
  15. *protectedMorK says

    11/20/2020 at 2:36 am

    Hey, first of all, great guide

    I'm following the guide step by step but ending up with the same result, after removing the ISO and booting the VM the Debian boot hangs at "Loading initial ramdisk"
    Any idea on what I'm doing wrong?

    Reply
  16. *protectedRaviteja says

    11/20/2020 at 9:07 pm

    Hey, I'm unable to convert the Raspberry Pi image from .img to .vmdk

    qemu-img convert -f raw 2020-05-27-raspios-buster-arm64.img -O vmdk 2020-05-27-raspios-buster-arm64.vmdk

    getting error like qemu-img: Invalid parameter 'vmdk'.

    Please help me to fix it

    Reply
    • *protectedDennis Faucher says

      11/21/2020 at 2:27 pm

      Your syntax looks correct. Are you running qemu-img on a Photon VM or some other Linux VM? qemu-img is run on Linux and vmkfstools is run on ESXi

      Reply
  17. *protectedKlemen says

    11/28/2020 at 9:31 am

    Should this works also for installation of Kali Linux ( https://www.offensive-security.com/kali-linux-arm-images/
    ), compiled for Raspberry PI?

    Reply
    • *protectedDennis Faucher says

      11/28/2020 at 9:35 am

      It's worth a try. Debian-based distros seem to work.

      Reply
      • *protectedKlemen says

        11/28/2020 at 9:49 am

        I tried it without Debian but it didn't work. Will try this option in Monday. Thanks!

        Reply
  18. *protectedMel Chandler says

    11/29/2020 at 9:04 am

    I tried this with Kali but keep getting an error when I try to install grub, cannot find efi partition. Not sure what to do at this point. Is it because the boot partition is formatted as fat32 or the efi directory and files are missing?

    Reply
    • William Lam says

      11/29/2020 at 8:39 pm

      Will share solution tomorrow I’m blog post

      Reply
      • William Lam says

        11/30/2020 at 10:33 am

        See https://www.williamlam.com/2020/11/how-to-run-kali-linux-on-esxi-arm.html for detailed instructions

        Reply
  19. *protectedStuart says

    12/06/2020 at 11:11 am

    is there any way to get audio working in this vm, excellent guide by the way 🙂

    Reply
  20. *protectedSascha says

    12/10/2020 at 11:38 am

    Thank you for this guide. It worked straight with the 2020-08-20-raspios-buster-arm64.iso image. But I wanted to have a smaller system without X11 so I tried the 2020-08-20-raspios-buster-arm64-lite.iso image. But it fails with Kernel panic while booting.
    Right after the Loading Linux message I get a "Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)" message.

    Reply
    • *protectedSascha says

      12/10/2020 at 3:14 pm

      I found the issue. When you try to install the linux-image-4.19.0-13-arm64 with apt on the "lite" image the disk is full. So the initrd was not written to disk. So after the conversion with vfkfstools I used the tool again with the -X option and increased the vodka file to 5Gb. In the rescue mode I deleted and recreated the /dev/sda2 partition and resized the filesystem. From there I could follow your HowTo again.

      Reply
      • *protectedPaolo says

        01/08/2021 at 7:21 am

        Hi Sascha!

        Could you explain with more details how you resized image file, and next recreated /dev/sda2 partition and resized it?

        Thanks in advance!

        Reply
        • *protectedTMH says

          09/05/2023 at 7:13 am

          See:
          https://williamlam.com/2020/10/how-to-run-raspberry-pi-os-as-a-vm-on-esxi-arm.html#comment-68416

          Reply
  21. *protectedPryggi says

    12/27/2020 at 1:08 pm

    Hi,
    After following this guide and getting it running, I noticed this:

    pi@rpi-03:~ $ systemctl --failed
    UNIT LOAD ACTIVE SUB DESCRIPTION
    rng-tools.service loaded failed failed rng-tools.service
    rpi-eeprom-update.service loaded failed failed Check for Raspberry Pi EEPROM updates

    pi@rpi-03:~ $ systemctl status rpi-eeprom-update.service
    rpi-eeprom-update.service - Check for Raspberry Pi EEPROM updates
    Loaded: loaded (/lib/systemd/system/rpi-eeprom-update.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Sat 2020-12-26 12:53:06 CET; 1 day 9h ago
    Process: 1238 ExecStart=/usr/bin/rpi-eeprom-update -a (code=exited, status=2)
    Main PID: 1238 (code=exited, status=2)

    Dec 26 12:53:06 rpi-03 systemd[1]: Starting Check for Raspberry Pi EEPROM updates...
    Dec 26 12:53:06 rpi-03 rpi-eeprom-update[1238]: VCHI initialization failed
    Dec 26 12:53:06 rpi-03 rpi-eeprom-update[1238]: /usr/bin/rpi-eeprom-update: 311: /usr/bin/rpi-eeprom-update: arithmetic expression: expecting ')': "(0x >> 23) & 1"
    Dec 26 12:53:06 rpi-03 systemd[1]: rpi-eeprom-update.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
    Dec 26 12:53:06 rpi-03 systemd[1]: rpi-eeprom-update.service: Failed with result 'exit-code'.
    Dec 26 12:53:06 rpi-03 systemd[1]: Failed to start Check for Raspberry Pi EEPROM updates.

    It seems that due to this kernel is not getting updated. Is it just me or do all of you have this issue?

    Reply
  22. *protectedChris says

    01/02/2021 at 12:34 am

    Thanks for this great post!
    I am struggling at the point when I boot the recovery debian.... As soon as I see the "UI" where I have to select the language, the system freezes... I cannot do/select anything...
    Has anybody had this problem as well?
    Or can anybody share a "final" OVA file with me? That would be really great and much appreciated!

    Reply
  23. *protectedMichael Cooper says

    01/06/2021 at 12:36 am

    I went throught the steps here and now I have uploaded the image to the host, i used scp to do so but now all of my imges on the datastore are greyed out? Any ideas?

    Thanks,
    Michael

    Reply
    • *protectedChris says

      01/06/2021 at 1:51 am

      Hello Michael,
      you have uploaded the vmdk file, right? As you are talking about img - files ...

      Reply
      • *protectedMichael A Cooper says

        01/06/2021 at 4:50 pm

        Hello Chris, I got this done and I have it on the ESXi and yes I did both conversions. Thank you for answering so quick. Now i have the issue below.

        Thank you sir, I do appreciate it.
        P.S. This is so fun trying to figure it out ROFL!

        Reply
  24. *protectedMichael Cooper says

    01/06/2021 at 4:47 pm

    Converting the image worked for me as well, however when i chose the debian netinst iso I got a Detect disks and then asking me to choose a disk driver. I chose the ones I thought would work but they didn't work. I do have a screenshot of the choice it's forcing me into if anyone could help me I would greatly appreciate it.

    Thanks Guys,
    Michael

    Reply
  25. *protectedMichael A Cooper says

    01/06/2021 at 9:58 pm

    Alright, I figured it out it was of course the noob who was making a mistake, I now have this running flawlessly. it is a really good feeling. If any one needs help please let me know I will be glad to help as best I can.

    Thanks everyone.

    Reply
    • *protectedChris says

      01/06/2021 at 10:11 pm

      Hello Michael,
      can you share the final "untouched" OVA with me please? I get stuck at the screen where I have to select the language (during recovery)... I can offer you an URL to upload the OVA file 🙂
      Thanks!

      Reply
      • *protectedChris says

        01/06/2021 at 10:13 pm

        So what I mean (as my previous post could be understood wrongly): Can you export the final VM (without any personal settings/data from you) as an OVA? 😉

        Reply
  26. *protectedPeter says

    03/09/2021 at 2:49 pm

    Is it only possible to run on a ESXI-arm? Not a standard ESXI?

    Reply
    • *protectedDennis Faucher says

      03/09/2021 at 2:59 pm

      @Peter, ESXi supports x86 CPUs. Raspberry Pi uses an ARM processor so ESXi-ARM is required.

      Reply
      • *protectedPeter says

        03/10/2021 at 4:48 am

        Thanks Dennis, that explains the trouble I had booting. Wasted a couple hours before I realised that probably that was the issue. Should have read the full text :p

        Reply
  27. *protectedMark Gilbrt says

    03/16/2021 at 11:28 am

    Would there be an instructions on how after we have successfully built up a image that we have been work on for months to convert it back to a Bootable directly off a raspberry pi? While I can run this project for myself, the fruits of the labor using packer, ansible, ansible to create the VM I want to distribute to a few of my fellow employees. Problem is, I am not sending them the Pi with everything installed and getting ESXI on their Pi;s will be to difficult. So I would like to make this image I made into a bootable SD Card that I could just export to a IMG and have them burn an SD card they have.

    Reply
  28. *protectedKerem ERSOY says

    04/14/2021 at 11:49 am

    Hi,

    I am tryinnt ot get it work but I jut stauck at:

    apt install -y linux-image-arm64 grub-efi-arm64

    command I guess they are both obsolete. I tried to install grub2-common instead beau se both packages are unavailable. But in this case it does not install shim-signed package.

    As a result when I run

    grub-ınstall --efı-dırectory=/boot

    ıt says:

    grub-install: error: /ur/lib/grub/arm-boot/modınfo.sh doesn't exist. Please specıfy --target or --directory.

    Reply
    • *protectedKerem ERSOY says

      04/14/2021 at 12:03 pm

      Opps sorry I noticed I was using 32 bit platform. but still package structure changed in buster. No more linux image. you need to isntall grub2-common and grub-efı. I don't know if it is the same with 64 bit version though.

      Reply
  29. *protectedJoshua says

    04/16/2021 at 11:32 am

    Hey there,
    thanks for this write-up, but somehow i am not able to follow these instructions.
    After booting from the dbian-iso i am trying to do these installations:
    apt install -y linux-image-arm64 grub-efi-arm64

    The linux-image-arm64 can not be located, and the grub-efi-arm64 isn´t installable as well.
    I tried the grub2-common, but this seams not to work:

    error: /usr/lib/grub/arm-uboot/modinfo.sh doesn´t exist.

    Do you have any recommandations? because i am stuck for a while now, and most of the help from the internet just addresses x86 arch.

    Thank you very much in advance.

    Reply
  30. *protectedWoersty says

    06/06/2021 at 3:09 am

    Hi!

    Has someone figured out meanwhile how to export and re-import a working machine in an easy way? I have the problem, that the exported and re-imported machine will not boot from it's harddisk but from PXE only. I got it once working when modifying the ddb.adapterType = "lsilogic" in the vmdk but now it's not working anymore either. Any help is appreciated.

    BR
    Christian

    Reply
    • *protectedDerPaul1985 says

      07/12/2021 at 7:58 am

      Same issue and after updated to the latest ESXi version (18175197) and after I spend whole weekend to setup everything from the scratch (ESXI, iSCSI, raspios template, OVA...) to realize, issue is persistent... found finally a workaround, think would be good to share

      deploy your ova template as usual, check for the guest OS "boot into bios-setup" (in VMware host settings).
      start the EFI internal shell, let the script pass

      type in the shell following:
      FS0:\EFI\debian\grubaa64.efi
      to start GRUB and successful boot up the system.

      After this, you need to adjust / repair GRUB / Boot as described here in Step 16 and 17.

      grub-install --efi-directory=/boot
      update-grub

      your guest should boot without any issues after this change.

      I don't know, what caused the issue, I think it is related to:
      https://flings.vmware.com/esxi-arm-edition/comments/19616#comment_19616
      Cyprien described a similar (or nearly the same) workaround, with the same result.

      Reply
  31. *protectedClaudio says

    07/30/2021 at 9:26 am

    Hi guys, debian arm isos are not working on my ESXi on RPi4 environment.
    I stopped at step 8 because when I try to boot from the Debian ISO (I tried debian-10.10.0-arm64-netinst and debian-10.10.0-arm64-DVD-1) the VM doesn't boot and stucks on VMWARE logo if I let the VM find the DVD or it stucks on a pink blinking "_" if I force the start from the DVD on bios.
    I checked that the DVD is connected.
    It happens for every VM I try to create from those Debian ISOs, but not for others OSs like Ubuntu. So it's not dependent from the vmdk I've attached.

    I tried to redownload the ISOs from another mirror, you never know, but same problem.

    Any idea?

    Reply
    • *protectedclaudio says

      07/31/2021 at 1:55 am

      OK I tried 10.09 and it works. Mistery!
      Actually I'm stuck at Step 12 because apparently none of the partition I find on the disk have seem to be good to be mounted and start a recovery shell.
      I'm using the Home Assistant OS based on Rasbian: haos_rpi4-64-6.1.img and it shows me 8 partitions, from SDA1 to SDA8.

      Any idea?

      Reply
      • *protectedThermal Reboot says

        10/16/2021 at 2:44 pm

        How many disks did you add? When you create the VM you only want 1 hard drive, the existing hard drive, delete any others.

        Reply
  32. *protectedTorsten Brendgen says

    09/11/2021 at 6:45 am

    when i try to install the bootloader via grub-install --efi-directory=/boot
    iam getting a Warning that EFI Variables are not supported on this system

    Any Ideas?

    Reply
    • *protectedThermal Reboot says

      10/16/2021 at 4:19 pm

      The Debian ISO has been upgraded to Debian 11, this apparently doesn't work with this cookbook, you need to go to https://www.debian.org/releases/buster/debian-installer/ and get the Debian 10 ISO. I did and it worked just as this page describes.

      Reply
      • *protectedtomski says

        12/03/2021 at 1:55 pm

        trying your approach my vm is stuck at vmware logo upon boot...which firmware/efi driver versions are you using, please mate? Thanks!

        Reply
  33. *protectedAdeli Segarra says

    10/06/2021 at 9:20 pm

    I am getting an error message Warning that EFI Variables are not supported on this system no matter what I do my image will not boot can you help

    Reply
    • *protectedThermal Reboot says

      10/16/2021 at 4:20 pm

      The Debian ISO has been upgraded to Debian 11, this apparently doesn't work with this cookbook, you need to go to https://www.debian.org/releases/buster/debian-installer/ and get the Debian 10 ISO. I did and it worked just as this page describes.

      Reply
      • *protectedTomski says

        10/19/2021 at 5:00 am

        Which UEFI/firmware versions are you running please? Using the latest versions available as of now when I try to boot using the debian 10 ISO the VM is stuck just before the boot with vmware logo on screen and nothing happens.

        Reply
  34. *protectedGreg says

    11/18/2021 at 6:57 pm

    These instructions don't seem to work anymore. There are errors of running out of space and EFI variables not supported. I'm not knowledgeable enough to figure it out.

    Reply
    • *protectedtomski says

      12/03/2021 at 1:53 pm

      As far as I can tell the EFI variables not supported error shows up when you're trying to use rpi os based on debian 10 with net-install cd for debian 11.
      I am now trying to use the latest rpi os based on debian 11 with debian-11.1.0-arm64-netinst.iso but apparently there is no linux-image-arm64 or grub-efi-arm64 package when trying to apt install these after booting into rescue mode...investigation continues

      Reply
  35. *protectedTomski says

    12/12/2021 at 9:20 am

    Hi Guys,
    After dozens of failed attempts to run the latest rpi os (bullseye) on esxi arm I went back to using the debian10 (buster) based image - https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-11-08/2021-10-30-raspios-bullseye-arm64.zip
    I then followed the instructions here and got it working just fine!

    Reply
    • *protectedTomski says

      12/22/2021 at 4:06 am

      Obviously I've given the wrong link. This is the correct one - https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/2021-05-07-raspios-buster-arm64.zip

      Reply
    • *protectedTomski says

      12/22/2021 at 6:29 am

      Also please make sure you are using the latest buster netinstall image - https://cdimage.debian.org/cdimage/archive/10.11.0/arm64/iso-cd/debian-10.11.0-arm64-netinst.iso

      For some strange reason using image v 10.10.0 I couldn't boot up the vm. ESXi was stuck at the vmware logo screen and nothing was happening

      Reply
  36. *protectedsyl22 says

    01/27/2022 at 5:53 am

    I was able to install bulleyes on esxi arm following this thread and :
    https://communities.vmware.com/t5/ESXi-Arm-Fling-Discussions/Running-Buster-Bullseye-VM-on-ESXi-Arm-on-a-raspberry-pi/m-p/2887394#M220

    If william can update ?

    Reply
  37. *protectedPS says

    05/27/2022 at 2:37 am

    I did all the steps but after reboot VM I land in bios screen.
    What change since 2022 that does not allow to boot properly?

    Reply
  38. *protectedZzyzx Wolfe says

    07/23/2022 at 2:54 pm

    I noticed in the latest 2022-04-04 that the disk image is too small and EFI vars are missing, so before you boot into the rescue mode, you need to expand the size of the drive, then when you're in rescue mode you need to do the following before you begin to do apt update:
    raspi-conf --expand-rootfs
    resize2fs /dev/sda2
    mount -t efivarfs efivarfs /sys/firmware/efi/efivars

    Reply
  39. *protecteddoubletap1911 says

    01/04/2023 at 7:40 pm

    Has anyone been able to get display resolutions working? I'm stuck with just a default 1024x768. Raspi-config doesn't show any resolutions available. Running scrreenfresh says No X Server found.

    Reply
  40. *protectedrick5505 says

    03/24/2023 at 9:20 am

    I have been running for over 2 years. It has just worked great. Now my VM is not booting, and crashes during boot with a kernel panic.
    So I am trying to make a new VM with a new 2023 image. I get stuck on step 15 apt install -y linux-image-arm64 grub-efi-arm64
    Progress gets to 20%
    It states cpio: write error: No space left on device

    I notice also that /dev/sda2 is used 100%
    I do not get why we are deleting the hard drive and adding the image as the only disk.
    I am using 2023-02-21-raspios-buster-arm64.vmdk
    Any help is appreciated.
    Thanks

    Reply
    • *protectedTMH says

      09/05/2023 at 7:12 am

      Hi, i had the same problem (used the raspios-arm64-lite) - could be the topic because i used the lite version.

      But anyway.
      This worked for me:

      1) Removed the vmdk from the virtual machine.

      2) Extended the vmdk via the ssh on the ESXi host:
      # vmkfstools -X 16G -d eagerzeroedthick vm.vmdk
      Used this description: https://kb.vmware.com/s/article/1004047

      2) Added the vmdk again and started in rescue mode as described and run cfdisk
      # cfdisk

      3) Now you should see the free disk space and you can expand the /dev/sda2
      (do not forget to write the changes)

      4) Run resizefs
      # resize2fs /dev/sda2

      5) Now you can check if it works with
      # df -h

      6) Run # apt install -y linux-image-arm64 grub-efi-arm64 again.
      Could be that you have to type in # dpkg --configure -a
      first.

      Best Regards from Austria,
      Timo

      Reply
  41. *protectedMike Pate says

    08/18/2023 at 9:51 pm

    I've been running several RPi OS as VM's on multiple RPi ESX host. Today I noticed my VM's are running v5.10 kernel but my physical RPi are running v6.1. Is there a way to upgrade the VM to v6.1 kernel?

    Reply
  42. *protectedBarry Fox says

    12/31/2023 at 2:11 am

    I've done a guide, how to use Raspberry Pi OS Bookworm to ESXI virtual machine

    Reply

Leave a Reply to BrunoCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025
  • Supported chipsets for the USB Network Native Driver for ESXi Fling 04/23/2025
  • vCenter Identity Federation with Authelia 04/16/2025
  • vCenter Server Identity Federation with Kanidm 04/10/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...