45 years IT professional here IBM. GREAT JOB! keep it up. This video gives a lot of insight to folks that it may ignite some lightbulbs in their head they didn't even know they had. Even if they don't actually perform the hands on of doing it.
Absolutely. Not sure on schedule right now, probably early next year...but I'll be doing a pi cluster video running containers managed via kubernetes 😃
Have you looked at Incus. It is the successor to LXC (because of Canonical/Ubuntu). It can do containers, virtual machines and now docker images. I have it on my X86-64 laptop, and should be putting it on my Pi's soon. I intend to run various services in containers rather than install directly in OS. Makes upgrades / conflicts easier to manage.
@@jeffs_piinthesky Incus Linux Containers are hands-down the best way to run lightweight virtual machine environments on a Raspberry Pi. I have several of them with various desktops running simultaneously on my devices and they are indistinguishable from full-blown virtual machines.
Interesting. The UEFI boot message would suggest there's some issue with the '/boot/efi' structure of the disk you're trying to boot from. Which OS are you trying? Ubuntu? I guess the other immediate thing that springs to mind is double checking you have the arm64 version. That's a mistake I've made multiple times where I've downloaded an amd64 iso instead.
Problem was needing a seperate command for installing the UEFI/boot packages. Wanted to install Kali Linux as VM. Installer would always work but crash at about 95%. So just install Kali directly on the RPi5.
Jeff, can you do a video on how to install one of the raspbian OS images into virt-manager? Specifically, I'd like to run raspbian within raspbian, and hopefully, be able to install one of the OSs in a vm that you would normally install onto an SDcard with the imager. Please assume starting with a .img file which you would burn with imager to an SDcard.
I think this is fun an interesting from a geek perspective (kind of like Jeff Geerling trying to get a full PCIe video card running on the Pi for 4k gaming :) ), but are there real use cases where you think this would be the "right" or preferable thing to do vs just using docker containers? That's a serious question - like I said, this is fun, and the VMs are probably still much faster than the computers I used to get through college, but I'm wondering how useful this could really be where it would be a preferred solution.
I direct you to my comment in the video where I said "I'm not sure we're even there yet"...I 100% agree with you. Especially on lower grade hardware like SBC's it's hard to find genuine use cases for VM's. That said, the one I normally go back to is if your target runtime is something very specific and you want to run in an identical environment. With containers, the processes ultimately run in the context of the host. Just do a ps -ef on the host and you'll see them. In VM's, the processes are truly sandboxed in that environment. But again, fundamentally I do think you're absolutely right.
The "right" use case for a virtual machine is when you need to make use of a kernel different from the host, you need to use a different computer architecture, or where security is of utmost concern and you need a properly isolated sandboxed environment. The essence of a container is that it uses the host's kernel and therefore cannot provide these features. Having said that, there are large areas of overlap. For instance, if you just need to say, use a different Linux distribution or a different desktop environment, you would be better off using a container as it is faster and uses fewer resources. Docker can do this but my choice would be to use Linux Containers (LXC).
I run Proxmox on my home server to provide easy management of my (large) VMs such as my Windows gaming VM. As per a prior video, smaller stuff I run on a PI5 NAS running OpenMediaVault which works beautifully. I'm a huge fan of Docker and it is great because it's far more lightweight. However under the hood, the actual processes are running on the host as opposed to in a sandboxed VM so it is different.
Running virtual machines this way does away with having to install the fancy browser-based GUI of Proxmox (which consumes around 1.5-2.0 GB of RAM on a Pi). Proxmox is optimised for the x86_64 architecture so it doesn't work properly and isn't supported on a Pi anyway. Docker containers are focussed on running single applications or single processes. They *ARE* able to run different Linux operating systems just as virtual machines do but, if this is what you want, you'd be better off using Linux Containers (LXC). They are not as secure as virtual machines (as they use the host's kernel) but they are much faster and consume far fewer resources.
Great question. PI5 obviously has better processing grunt than prior models but it's really all about what you'd like to do with it. For me personally, I do a lot of work with video so lack of h/w video encode in the PI5 is a problem (it is there in PI4). So I think the big question is would you benefit from the beefier CPU or better IO (including the new PCIe interface). VMs aside, the 2GB PI5 is a good, budget option for playing with the device but obvs that little memory will restrict viable use cases.
That's something I'm trying to do. No success yet. Been trying to boot the windows arm release into a VM but whilst it hits the initial bootloader, it then just hangs before getting into the setup process. I'm trying both this and getting android running in a VM. I'll let everyone know if I go figure it out!!!
Technically it should work on a pi3 though I've never tried it. But I'd suggest limiting it to really lightweight OS's such as Alpine to keep the load down or it'd just be pretty unresponsive.
Actually, a VM is the WORST choice for CPU, memory and disk utilization. As long as you use the same kernel, you get the best performance by a decade old concept called processes. Imagine installing a full Windows VM for every program you install. One Windows for Chrome, one Windows for Outlook, one Windows for your media player, etc. Pretty ridiculous, right?
You both have a good point. The worst part of VMs is that they're carrying the bloat of the OS. However, in s/w dev and other use cases, it can be very useful to have a representative, local environment to test on. Docker is, of course, another technology which can be far more efficient in terms of what is ultimately running.
I didn't say VMs are bad. I love how far we have come with virtualization. Just that for RPi / SBCs and their limited ressources, they are the worst choice to use them. If you are willing to "waste" these ressources, you'll then get all the benefits, some of which you already mentioned.
I would advise against any long term PI setup as the performance spent for the money is not good, they are extremely expensive. Not easy to get, issues with storage, pretty limited... A cheap and old miniature computer with a new storage device will always outperform anyhting PI related. Even running virtual machines on a Synology NAS Docker is better than PI. In last 10 years myself always sold all my PI computers, then keep getting back to them, hoping they are worthy and... sell them again.
It's very much about what you use them for really. For example, using a mini computer in the garage to measure my cars distance from a wall would be a complete waste of resource whereas a pi zero or Pico works beautifully. But you do make a good point. Everyone should be mindful about what they want to do with any tech and get the right tool for the job.
45 years IT professional here IBM. GREAT JOB! keep it up. This video gives a lot of insight to folks that it may ignite some lightbulbs in their head they didn't even know they had. Even if they don't actually perform the hands on of doing it.
Yeah, if I can do anything to spark a thought in someone's head, I'm a happy man!!
I really like this capability. Thanks!
Really happy you found it useful and thank you for the support!
Very cool and well done. Cheers
Thank you so much!!! Really appreciate the support!!
You could carry it further by running containers, docker or podman, or even more nerdy fire up a kubernetes cluster of PI’s.
Absolutely. Not sure on schedule right now, probably early next year...but I'll be doing a pi cluster video running containers managed via kubernetes 😃
Have you looked at Incus. It is the successor to LXC (because of Canonical/Ubuntu).
It can do containers, virtual machines and now docker images.
I have it on my X86-64 laptop, and should be putting it on my Pi's soon.
I intend to run various services in containers rather than install directly in OS.
Makes upgrades / conflicts easier to manage.
I haven't seen that, no. Sounds very interesting! Please let me know how you get on with it!
@@jeffs_piinthesky Incus Linux Containers are hands-down the best way to run lightweight virtual machine environments on a Raspberry Pi. I have several of them with various desktops running simultaneously on my devices and they are indistinguishable from full-blown virtual machines.
I'm trying to do the same thing on my rpi 5 16GB but I'm getting an error. failed to setup uefi did not find any eufi binary path for arch 'aarch64'
Interesting. The UEFI boot message would suggest there's some issue with the '/boot/efi' structure of the disk you're trying to boot from. Which OS are you trying? Ubuntu? I guess the other immediate thing that springs to mind is double checking you have the arm64 version. That's a mistake I've made multiple times where I've downloaded an amd64 iso instead.
Problem was needing a seperate command for installing the UEFI/boot packages. Wanted to install Kali Linux as VM. Installer would always work but crash at about 95%. So just install Kali directly on the RPi5.
I love my Raspberry pi ai! 😎🤖
You and me both!!!! One of the most amazing inventions of the last 20 years!!!
on debian, "ip ad show" works but so does "ip ad", another option is "hostname -I" gives pure ip address ( -I as in INDIA )
Thank you for the clarification! Much appreciated!
"ip a" also works.
@@paulchung780 yeah, i mostly use this, why did i forget it here ... thinking too much about hostname probably
Jeff, can you do a video on how to install one of the raspbian OS images into virt-manager? Specifically, I'd like to run raspbian within raspbian, and hopefully, be able to install one of the OSs in a vm that you would normally install onto an SDcard with the imager. Please assume starting with a .img file which you would burn with imager to an SDcard.
I've added it onto the list!! Thank you for the suggestion!!!
I second this, having a hard time getting a converted qcow2 of RPIOS booting.
I think this is fun an interesting from a geek perspective (kind of like Jeff Geerling trying to get a full PCIe video card running on the Pi for 4k gaming :) ), but are there real use cases where you think this would be the "right" or preferable thing to do vs just using docker containers? That's a serious question - like I said, this is fun, and the VMs are probably still much faster than the computers I used to get through college, but I'm wondering how useful this could really be where it would be a preferred solution.
I direct you to my comment in the video where I said "I'm not sure we're even there yet"...I 100% agree with you. Especially on lower grade hardware like SBC's it's hard to find genuine use cases for VM's.
That said, the one I normally go back to is if your target runtime is something very specific and you want to run in an identical environment.
With containers, the processes ultimately run in the context of the host. Just do a ps -ef on the host and you'll see them. In VM's, the processes are truly sandboxed in that environment.
But again, fundamentally I do think you're absolutely right.
The "right" use case for a virtual machine is when you need to make use of a kernel different from the host, you need to use a different computer architecture, or where security is of utmost concern and you need a properly isolated sandboxed environment. The essence of a container is that it uses the host's kernel and therefore cannot provide these features. Having said that, there are large areas of overlap. For instance, if you just need to say, use a different Linux distribution or a different desktop environment, you would be better off using a container as it is faster and uses fewer resources. Docker can do this but my choice would be to use Linux Containers (LXC).
Maybe you could try using the Pi 5 or 4 as a home theater pc!
I did it on my Pi 5 and now it is the only thing i use for gaming.
Awesome job!!! What are you running?? Kodi or something similar???
@@jeffs_piinthesky I use Steam Big Picture mode on top of Ubuntu 24.04
The version from Pi-Apps
I would have loved to have a pi5 to replace my multi million dollar IBM VM MAINFRAMES....from the 1960's
Wondering how this compares to proxmox or docker containers?
I run Proxmox on my home server to provide easy management of my (large) VMs such as my Windows gaming VM. As per a prior video, smaller stuff I run on a PI5 NAS running OpenMediaVault which works beautifully.
I'm a huge fan of Docker and it is great because it's far more lightweight. However under the hood, the actual processes are running on the host as opposed to in a sandboxed VM so it is different.
Running virtual machines this way does away with having to install the fancy browser-based GUI of Proxmox (which consumes around 1.5-2.0 GB of RAM on a Pi). Proxmox is optimised for the x86_64 architecture so it doesn't work properly and isn't supported on a Pi anyway. Docker containers are focussed on running single applications or single processes. They *ARE* able to run different Linux operating systems just as virtual machines do but, if this is what you want, you'd be better off using Linux Containers (LXC). They are not as secure as virtual machines (as they use the host's kernel) but they are much faster and consume far fewer resources.
Interesting video. It is worth it to buy a Raspberry PI 5 ?
I have a Pi5 running 8 useful docker containers with excellent reliability using minimal electricity.
Great question. PI5 obviously has better processing grunt than prior models but it's really all about what you'd like to do with it. For me personally, I do a lot of work with video so lack of h/w video encode in the PI5 is a problem (it is there in PI4). So I think the big question is would you benefit from the beefier CPU or better IO (including the new PCIe interface). VMs aside, the 2GB PI5 is a good, budget option for playing with the device but obvs that little memory will restrict viable use cases.
Is it possible to run a Win10 VM on Rpi OS? Thanks.
That's something I'm trying to do. No success yet. Been trying to boot the windows arm release into a VM but whilst it hits the initial bootloader, it then just hangs before getting into the setup process. I'm trying both this and getting android running in a VM. I'll let everyone know if I go figure it out!!!
@@jeffs_piinthesky Thanks.
Well. You wanna run everything in a single or os.
Sorry, not sure what you mean here.
what about rpi3b+?
1 GB of memory will limit you.
Docker might be better to try rather than virtual machines if you really want to try.
Technically it should work on a pi3 though I've never tried it. But I'd suggest limiting it to really lightweight OS's such as Alpine to keep the load down or it'd just be pretty unresponsive.
You dont use efi boot in kvm machines,,. Like wtf
It actually is using the tiano core EFI bios under the hood
Actually, a VM is the WORST choice for CPU, memory and disk utilization. As long as you use the same kernel, you get the best performance by a decade old concept called processes. Imagine installing a full Windows VM for every program you install. One Windows for Chrome, one Windows for Outlook, one Windows for your media player, etc. Pretty ridiculous, right?
Unless you want to run as a server, and keep web, apps, db, mail servers in separate VMs.
You both have a good point. The worst part of VMs is that they're carrying the bloat of the OS. However, in s/w dev and other use cases, it can be very useful to have a representative, local environment to test on.
Docker is, of course, another technology which can be far more efficient in terms of what is ultimately running.
@@jeffs_piinthesky Docker all the way - great video Jeff; keep up the good work!
I didn't say VMs are bad. I love how far we have come with virtualization. Just that for RPi / SBCs and their limited ressources, they are the worst choice to use them. If you are willing to "waste" these ressources, you'll then get all the benefits, some of which you already mentioned.
Agree. This is great to know for other reasons but efficiency isn’t one of them. The intro is wrong but the rest is good.
I would advise against any long term PI setup as the performance spent for the money is not good, they are extremely expensive. Not easy to get, issues with storage, pretty limited... A cheap and old miniature computer with a new storage device will always outperform anyhting PI related. Even running virtual machines on a Synology NAS Docker is better than PI. In last 10 years myself always sold all my PI computers, then keep getting back to them, hoping they are worthy and... sell them again.
It's very much about what you use them for really. For example, using a mini computer in the garage to measure my cars distance from a wall would be a complete waste of resource whereas a pi zero or Pico works beautifully. But you do make a good point. Everyone should be mindful about what they want to do with any tech and get the right tool for the job.
Too much talking dude. Just show what the title says within 5 seconds.
Thanks for the feedback! I make chapters available so you can get to the parts you need easily.