 So I'm gonna do a video today on VirtualBox. Yes, the Oracle VirtualBox. Now I see people going, I like ESX, I like KVM, do a video on Proxmox. Working on doing some of the other comparisons, you can find some other comparisons online for speed differences between them, but there's a reason I like VirtualBox. And the first virtualization I really worked with was VMware, which I was really happy with, and I was really excited when VirtualBox came along. And despite not liking Oracle as a company for a whole litany of reasons, this is a product I really think they've done a wonderful job on. It's cross-platform. I did a video on how to set this up headless with PHP VirtualBox, but I wanna go over some of the features and some of the reasons I like it and how I build virtual machines with it, because I do a lot of my testing with it, and a lot of it has to do with the absolute simplicity of this. And I know how to do complicated things, but it doesn't mean I always want to do complicated things. I like when things are super simple. And this is no exception. So with VirtualBox, and we'll quickly start with, let's create a new virtual machine. These are all my existing ones in here. And we're gonna start with how to create a new one. I'm not gonna really cover how to load it. You can download it from their website. You know, just pick which platform you're running on, are you running Windows, OSX, Linux distribution, or even Solaris. So even if you're running a Linux distribution, they have a bunch of different versions, but you can also then just download the all distributions that do not require some of the different libraries that you may find in these. So in short, you can find a platform to run it on. Now, one of the nice things is, it doesn't really matter which platform you're running on. I can create the export files and you can import them to your platform. So I can create a virtual machine on my Linux box of a Windows machine, export it, and it can be running it on another Windows machine. So you can export and import each one of these. And that's a real big feature that matters to me is being able to easily import and export the systems to other people's platforms. We've even done this for customers. We've created a virtual system they needed something specific for and we export it out and they can import it and run virtual box on their Windows box, even though I'm running Windows. And that's really what a hypervisor does. So it allows you to create a common environment for a program to run in with common settings for each of them. Now, there's different types of hypervisors. Type one and type two hypervisor. Virtual box is a type two hypervisor. And what that means is it runs on a guest OS. Your type one hypervisors run directly. Let's look at ESX server. That's a type one hypervisor. So it's an operating system into itself and then it runs on there. So the system becomes like, you see this in a lot of data centers, they run type one hypervisors or it's an integral part of the operating system like I believe Hyper-V is with Windows. So it's integrated into the operating system, not a separate program you load. So we're gonna cover specifically this and how to use it and how to get it going. So let's just walk you through what it is to create a new virtual machine. This is really easy to do. So this is our test machine and we can choose what we're gonna run. We can run Windows on this if we want. What these do is it sets some parameters on their Windows, Linux, BSD, other and it sets some of the parameters on there and we'll get into some of those. You can go right to expert mode and just start setting up things yourself but let's just use the guided mode. So we're gonna create this test, test machine. And sometimes it makes assumption. If I actually start typing a bunch to it defaults over to Linux. You know I have Linux on here so we'll choose this. You can choose versions of there. Next, how much memory do you wanna allocate? So I have 16 gigs RAM which means safely it will let me allocate this. You can allocate all of it. Your system run on memory and you'll end up with problems. So this just comes down to how much is your OS running and how much do you wanna give to this machine? We'll give it a couple gigs of RAM. Create a virtual hard disk now. Use an existing virtual hard disk. So here's all the hard disks I have. Apparently one of them is broken because I disconnected it but here's all the virtual hard disks I have and you can attach, you can have a virtual machine but attach other hard disks from your other virtual machines if you wanted to. That kinda makes an interesting scenario where you wanna share a drive between them. Now you can't start both virtual machines at the same time but if you wanted to see what happens when you have a virtual machine and you copy a file or you share the hard drive between them to look at what a different OS would look like booting. So you have a different boot one. It lets you do all kinds of fun playing and things like that. For example, I've done this when I wanna see how to import, I have my FreeNAS one and then I reattach a duplicate FreeNAS to the same hard drives and I import them and it's an easy way to do a test of how to import and array and it's a great learning tool. So create virtual hard disk now, sure. VDI default virtual box image. These are a couple other ones and this is something I like about virtual box. It supports multiple versions of the virtual hard drive file by default their own is the VDI but this allows you if you're using some of the other virtualization and copy the files over there and bring them into Oracle virtual box. It does support importing and using other hard drives. Now you can create fixed size or dynamic allocated to highly recommend dynamically allocated and what that does is you decide how big you want the drive to be. So we're gonna give it a 80 gig hard drive. Now if you choose fixed size, it allocates 80 gigs right now for the file but what if you're not using all 80 gigs? You just wanna have it easily expanded up to that. Well, you say dynamic. 80 gigs dynamic means it only creates a file that's super small. Here's our test machine. Now that it's created and I'm gonna show you what it actually did for the hard drive. Now we haven't booted this, we haven't turned it on yet. So this is really basic and no files in it yet which means the hard drive size will be really small. So by default and a lot of systems I chose all the defaults when I set this up. It goes to home virtual box VMs which here's all the different VMs I have. Here's our test machine and here's the files related to it. So the VDI is the virtual device interface for the hard drive and you can see it's only taken up two megabytes but we look at something like one of my other ones here. Whoops, let's look at the PF Sense testing. I think I have an 80 gig hard drive allocated to that but it's only taking up 1.5 gigs because it only takes up as much space as you're using. The OS can see all of the space. It sees an 80 gig hard drive but on the operating system level it's only taking up as much hard drive as you have files loaded onto there. Now you're probably thinking, okay, what if I make the jump 30 gigs on there but then back it off back down? Well, you kind of end up with a problem of it will still allocate the space. They have some offline tools when you shut down a virtual machine you can reshrink the VDI. That is an option on there. Generally I don't recommend storing anything on the VDIs. I use them and create shares in order to share back from the guest OS with the host OS. And we're gonna get into that once we set up the virtual machine. So that being said, let's talk about the system here. So we have a floppy optical and hard disk as our boot options. This is essentially your BIOS. You don't have a BIOS like you normally do. So you sell your settings beforehand. We can even do network booting which maybe we'll even, we can even show you how that works. Processor, how many cores do you have? So you don't wanna give it all the cores you'll say invalid settings detected. And because I have a system that does show eight cores but it's the four core plus hyperthreaded. And because of that, you only get to allocate the four physical cores to this. Then you can say execution cap and what you're doing is saying how much do I need to push to it in terms of processing power? Hardware virtualization. So this is, so you can actually send based on the OS this comes onto the OS settings what type of virtualization you wanna flow through there. The VTX, EMD, nested paging, so the hardware. You have to have obviously a processor that supports this to even get virtual box running because if you don't have a process that's supported for virtualization, well, that isn't gonna work. This is Hyper-V for Windows, KVM for Linux. And it's just, that's the type of virtualization that it recognizes behind the scenes. Display, video memory, monitor count. This is pretty cool. I have three monitors. You can actually set it up to reallocate to all three monitors. Once you go to more, you'll have a problem but this is kind of cool. And then we just slide the memory over here for how much video memory I'll agree. Now, this is more of a Linux issue that I have. My video card seems to have a hard time with 3D and 2D acceleration. And I think I showed this in one of my videos I did. You could see it kind of not running really well. I don't know why it's an NVIDIA card but sometimes that seems to happen in Linux. I'm still troubleshooting now but it works better. I will admit, this is something that does seem to work a little better in Windows. I think that's just because the video card I have and I don't do anything 3D so it's not really made a big deal to me. Here's our storage, controller type IDE, controller type SATA. Now, it wants to put the CD-ROM and adds one by default and it wants to put that in IDE and that seems fine. Then it decides that the rest should be SATA. Then you can even change the type of SATA. Man, it doesn't have any other options here. Port count. So you can show different things. He selects the account of storage, SATA controller. So you have at least one. This gives it multiple ports like for the hot swap. I believe it's just an OS thing. I usually leave it at one. And then what I do is I just add more. So we add a new storage, add a hard disk, create a new, new virtual disk one. And we'll just make this one 100 gig. Same thing dynamically. Create. And now I have two hard drives attached to this. And you can control which port they're attached to. This is what it shows up in the OS. So we have the port count of twos, these two drives. And we can say, I want this to show up at a different port number. And if I want to delete it, I can simply hit minus and get rid of it. You can even add at the same point. I can add another SCSI controller, floppy controller, USB controller for USB devices, which is interesting too. So you can actually add a hard disk. And we're just gonna, whoop, we'll go ahead and add another hard disk. And we can make this one work on the USB controller. Kind of neat. Also, if you notice in here when I'm doing this, if I do want to add hard disk, choose existing, one of the advantages you have there is all the virtual hard disk types. This is where you can go through and import different types of virtual. Now we're using VDI, which is the default for virtual box, but this allows you to choose if I had a VHD file or something created from VMware, I can open up other virtual hard disk files. And like I said, another reason I like virtual box, it supports them without a bunch of conversion. There's a lot of ways you can convert from one type to another. This not only, you don't have to convert it, you can actually open it and use it, not like in some read-only import mode. It lets you use other virtual hard disk file types, which is pretty cool. So here's your audio. Pulse Audio is the default, but you can set up the host audio driver and then audio controller, what kind it shows up in there. Intel ICHC 97 or a Sound Blaster 16, which I think is cool that it supports that, that brings back some memories. This is the host audio as in what's on my system, which is Pulse Audio, and then this is the controller. Network Adapter. Now by default, it always wants to do NAT. And you can put it behind a NAT so it creates its own virtual NAT environment, which is cool. And it also, you can attach it to an entire NAT network, you can attach it to no network, but have the network card in there. I usually choose bridged. And what that does, bridging means share your host adapter and be exactly on the same network. Now, you may have some testing procedures you want it behind a NAT, so you want each one on there, easy enough to do. And you can then forward special ports and it'll get its, it'll go through your IP address to that port, to that behind there. Their port forwarding and associate real quick is a pain in the butt. I've had little problems with the host IP, guest IP. I've had to just not work. And I don't really, I've had to tweak it a little bit. Not super thrilled with how well it works. It's kind of hokey in my opinion. It's not a real firewall. Just a simple port forwarding. So if you're trying to do any testing like I do with PF Sense, you really need it in bridged to make this all work. So we'll leave it a bridge. Now, I only have one network card on my computer. This becomes an issue on my laptop because I have it bridged to my Wi-Fi. But if I want a virtual machine connected to the direct network, I either have to A install a second adapter and you say bridged, whoops, and you attach it to the other network adapter. That way if my physics, I'm only on Wi-Fi, it has access. If I'm on hard line, it has access. So that's kind of a little side note that you have to do there. If you're running this on a laptop or anything with dual network cards, you have to choose which network. Now in our own virtual stack using virtual machine, we have multiple network cards because it connects to physical different networks. So some of the machines that I want on one network are attached to that network card. Other machines on the other and some machines on both, depending on how I want to set them up. So, and then we have the Intel is the default. So Intel MT desktop server. These are the emulated network cards that you can choose in here. You can also choose different MAC addresses. So if you wanted to say that it comes up with one randomly and you can actually rotate the MAC address and it'll just keep rotating them around, whether or not you want the cable connected or not. Now, the cable connects is kind of cool because you can actually fire up a virtual machine but have the cable disconnected, fire it up, make some changes, and then without restarting it, plug the cable back in by clicking the box. So I thought that's kind of cool. But a promiscuous mode is, does it allow to see the other traffic on there and it allows you to see the other traffic of, allow VMs, allow all? It's tying to your network adapter. So maybe you want to set up something sniffing and you build it in a VM and you want it to share with your network interface directly. So you can allow this to be promiscuous. By default, it's deny, which is good because you don't necessarily want that. Sometimes you're doing some special testing and you go, you know, I don't know what this virtual machine's gonna do completely. So I don't know if I want it all on a network. That's kind of up to you. Serial ports, kind of neat that you can do this on here. I have not done a lot with these but we have a couple of clients that we might be doing this for because they're running Windows 95 and DOS programs and the hardware's really old. So we're looking at methods and I know there's probably some ways to do this where you can pipe it to other devices on the computer and emulate the serial. And for example, in Linux, like you can see right here, it's dev TTYS0. So you put a serial card in a new machine that can run something faster, load your older program, then map that program to the serial port externally. So it thinks it's running on native hardware. It has serial port access to the device that it needs to have serial access to and it runs in a nice virtualized system on newer hardware. So it's kind of cool that they have support for it. I've not done a lot of testing. I just don't have any serial devices but we're actually looking at a solution for some of our clients. We literally have clients running old DOS machines and we may move them into here. Now, USB controllers. You have the ability to get the USB 2.0 and USB 3.0. Side note, to get this functionality to work, there is what's called virtual box extras right on your website. It's right on your downloads page. It doesn't matter what you're running. You load the extras and you get all this functionality in here. So this allows you to do things. Now on Linux, side note, and it does let you do this really easily. When it's doing it, it will add and create your user and in a bunch of it seems to work perfectly fine but you want to have a special user group called VBox users that adds the USB support. That way you can take USB devices and make sure you have permission to share them with the virtual box and I'll quickly show you how that works. So if I wanted to take, I'm not gonna do right now. I'll make my microphone or even my mouse. Oh, my phone's plugged in. And that's a good example. By doing this, when I start this virtual machine, my phone will disconnect from my machine because you can't have USB devices attached twice, so to speak. You can attach it to my OS and then a virtual OS but this will push it to there. And I've had to do this when I was doing special updates to my phone. Well, not my phone, but other devices. I run Linux and my device needed a Windows box to load an update. Man, you just click this, kick plus and I do this and I can fire up Windows, whichever version and then that device gets forwarded to the virtual machine. By doing that, you get to have all the cool features in Windows and I don't have to run Windows. I can say, cool, I got this cool feature. I got the software. I just had to do this recently with my Canon camera. When I was looking up one of the older ones, the better software is actually someone wrote a little Windows program that gives you some of the shutter information and I was curious about it. I had trouble with the Linux version which was out of date but someone has a new Windows version of it. I go in here, I hit plus, I choose the device and as soon as I fired it up, it moves right over there. I can push my webcam right into Windows, for example, so whenever I fire this up or whatever the guest operating system is, including Linux. So kind of neat that it lets you do that and then I hit minus. You can also create special filters to find certain devices, filter, vendor ID, remote any. It's kind of tricky but if you wanted to do some customized USB stuff, I've not really had much use for that. Just adding the device going, yep, not my phone's there and there goes my mouse. Be careful putting the mouse there because well, you'll lose the mouse control when you do it but kind of neat that you can do that. Shared folders. This is, we'll select a folder path and we'll just select my home drive, for example. Folder name, read only, auto mount. So what this does inside the guest machine, this will let me mount my home drive as a shared drive within there, Linux or Windows. And by doing this, this allows you to easily without having to do any sharing or Samba services on my Linux box here or in Windows, you don't have to like share a folder back within there, I create, I just want to share whatever directory and you can share multiple shares and they show up as hard drives in Windows and they show up as mount points in Linux but this is a nice way so you don't have to store all your data in the virtual drives. So my Windows boxes are fairly small because I just load the apps I need to run on them which is pretty much just Photoshop. I have Photoshop running on there but I'm not storing any data within the virtual machine itself. So my virtual VDI file does not get very big because all the data and everything else is being stored elsewhere. This makes it really easy because that way my system is portable and I can just export it to another system. Now here's some of the user interface stuff. You can show the full screen seamless, whether or not you want to show these little tool bars and things like that. That's kind of a personal preference if you want them all on there. They allow you to click on different things and this is how you decide which ones will show up at the bottom. I don't really have them turned on but I think by default they're turned on and I turned a lot of that off so the user interface is much cleaner without a bunch of extra things on there. So now we got our test machine settings. We got all these little settings set up. One last thing is I wanna make sure. So right here is let's go ahead and choose virtual file. I got a bunch of ISOs here. Let's choose the Ubuntu 17 desktop open. So now I can chose a CD-ROM drive and attach. These are just ISO files. I can remove it so it's empty or go back here and remember some of the last ones I did and go right here, it's attached. Then we go to general and we're gonna want to choose the optical. Don't have a floppy. It'll ignore it, it doesn't give an error. So optical is my first boot, pointing device, USB tablet, all of this is fine. I mean you can play with these if you want but the defaults work fine and we're gonna go ahead and start the virtual machine. Now once you go in here, I'm moving my mouse around but nothing's happening because I've locked into the virtual machine but by pressing the right control key, I've now released the virtual machine control. So if you get stuck in a virtual machine, if you see right here at the bottom, it says right control and this tells you where it's captured. So right now, see how it's green and now it's not green. It captures the mouse, it captures controls so all my key controls are being focused into the VM. Now you can choose a different option if you want for what is the hot key. The default is right control. I leave it at default that way I don't have to think about it each time especially if I'm using someone else's machine going, oh yeah, what did you map it to? Cause I map mine differently. What was it used to be mapped to? But the good news is it shows you down at the bottom what it's mapped to on this part of the virtual machine. Now on this part, it's only running at whatever the native resolution compared to my resolution that's why you see it kind of small. I can stretch it, well I guess it doesn't stretch but you can see, there's probably a stretch option here. But anyways, you can adjust the window size, these options up here at the top. Another thing to note while this is running, and we go ahead and lock out of it, the settings for this are grayed out. So there's things I can't really do. I can scale the display. So I can, I guess I can change that. Yep, that doubled the scale of it. All right, and I changed it back. But everything else you may have noticed, I can add a shared folder still. I can not add a USB, well can I? Okay, I can add a USB to it. Serial's grayed out. And what happens is when you're doing these it's just graying out all the different functions that you can't do. So we actually didn't save to bridge on that. Audio can't be changed. These are just things you can't change live. Wish you could plug in hard drives live but there's not a way to hot swap them live without shutting down the machine. So hit okay. So now we can go here and show the machine reset, close, save state. And it does like a power down save state which I'll show you real quick here. So it's saved and locked in that state and when we started again, it starts up exactly where it was. Now, even while this is running, you can run multiple virtual machines at the same time. So while this is, we'll actually go ahead and kick off English, try Ubuntu without installing. So we let it actually boot up. I'm gonna move this down. So that's booting Ubuntu right now and let's fire up a Windows 7 box. So here's my Windows 7 box that I used with Photoshop on there. So there's that one. Well, and here's the Ubuntu one running. So now I've got this and I chose something wrong because instead it's asked me for a login. It should have just logged in but it decided not to. Ah, it doesn't matter. We're gonna actually do this when we do this save the machine state send shutdown signal so we can actually tell it to do a graceful shutdown or we can just suspensionally pull the plug. So we'll shut that one down. You get the idea of how easy it is to set up a virtual machine or install something on there. But this is also, this is me running my Windows machine. Now I can view in scaled seamless and other modes but it kind of gets you the idea of how quickly it'll boot up at least if you have a fast computer. So here's this virtual machine running. Now by doing this, I'm gonna shut this one down now. By the way, these are running on an SSD. This is real time how fast they are. One advantage is definitely run these on an SSD huge speed improvement because there's a lot of IO wait if you run these on something else. So let's get rid of our test machines. I don't need it. And when you remove it, you can remove only the machine and leave the virtual files. I wanna delete all the files. Now, let's talk about a little bit more detail. So here's how it runs in Windows and we'll start this one back up real quick here. First of all, I'll show you the settings of this particular machine, shared folders. I have what I call my data drive which is my three terabyte drive where I have all my graphics files and everything for Photoshop which this Windows seven boxes for running Photoshop essentially. That's part of my workflow. I've tried other tools in Linux that just can't really get into them quite as much. So this is a big part of my workflows. You go here, open a Photoshop. I know it's not the latest version but it's what I bought and I haven't moved to the creative cloud. And then I pull up my YouTube template and then I edit my YouTube stuff. And when I go to here, computer and we see the data drive, there's all kinds of graphics I have. Graphics we're working on for Windows, it works perfectly fine. And as you can tell, Photoshop's working in real time even without 3D acceleration or nothing. I've got no problems with this. It just works great. So there's running my Windows programs inside of here and they run, like I said, they run perfectly fine full version of Windows and automatically I didn't map this drive by going through and I can probably map another drive for testing. So we go here, settings, we'll add another drive. Let's choose my home, auto mount. I may have to restart the virtual machine. Did it mount it automatically? No. Let's restart it real quick. And there's my home drive. So pretty straightforward for adding hard drives in here and reboot. And once again, I'm not storing any data. So there's only 28 gigs and I've only got an allocated 62 gig drive on here. So no big deal. It's only taken up that much room. So that was pretty much the simplistic of it. Now let's get into something a little bit more advanced and this is where I have a lot of fun doing the testing is cloning the machines. And I love that they have a sheep. It's hard to see that little icon as a sheep so we clone it. And when we clone a device, there's two options. Window seven clone. Next, full clone or link clone. Full clone is what it sounds like. A complete duplicate of the virtual machine. I'm gonna do a linked clone and I'll show you what that does. Linked clone. Right here's my window seven clone. So start. It's identical. Now what's cool here is only the changes I make in variation changes are what takes up space on a clone. So the clone is a fork of the original one. And by doing that, it's like, okay, we've now forked it. We wanna set something up and I'm actually gonna do something specifically to set it up here. And so I have another instance that does not affect my original clone. So right here is the link base for it. Right here's link base, current state changed. And here's the current state of that. I'll get into snapshots because they're kind of direct related because it uses the snapshotting system. So this window seven clone is only taking up as much space as I make changes versus the link I did from the base of it. But this is wonderful for testing. Let me show you why. So here is the VDI file for the window seven clone snapshot. So right now it's taking up 250 mags. Let's see how much bigger it'll get here in a second by dumping some more files to it. So now it's increased to 755 mags of changes. And what it's doing is it's logging all the changes and keeping them completely separate. Now this is really handy. For example, you go, I wanna test software but I think the software might crap up my machine or I don't know what it does or maybe you wanna copy it to it, disconnect the network card, run it and see what it looks like in a sandbox. Great for testing. This is also how we've tested viruses. We've let scammers use our clone machines because you've seen how quick you can snap it. You clone it away you go. So let's say we wanna install some software and you know this is all for doing testing. So this is some I spy package software I know we were testing with and it ran in windows. I wanna see how it worked and it's for camera systems. Anyways, I didn't like it but it's pretty cool that really quickly allow access. It works completely normal. I know thanks. Wants me to do something. I don't care. But this clone is all the testing I'm doing. All the changes are making dump in these files here testing out programs and everything else. And when I'm done, we're gonna shut down. There's 1.6 gigs of changes that were made. But if I go back to my other virtual machine here you can see all the stuff's not on the desktop not dumped over there. So this clone is completely untouched because the other one's a clone of the other one. That being said when it's, it's just a great way to snap things over and go okay I wanna try all these things I don't know if I wanna muck up my machine and instantly I have this machine back because it's a clone of it. Now let's get a little bit more detailed how that works. So now I have two machines. The one here is the clone. And I'm done. I tested the clone, I got whatever I did or in the case of when we let a scammer play with it he tried playing with a syskey and stuff like that. And in the video I had one I did before it wasn't as much fun so we didn't ever post that one. This camera wasn't as fun as some of the other scammers. But so we're gonna remove the clone. Remove only or delete all files. There, I just freed up all that space. Now you notice it's still left a snapshot of it. And what this does is it's the changed snapshots of it. And you can take snapshots. So maybe before you load a Windows Update or once again you can actually create a snapshot of a machine and then revert back to it. So I can revert back to this one here if I wanted and say hey make this machine like that but I don't want to so we're gonna delete it. We hit delete. And now this went back to just being Windows 7 it's no longer cloning there's no more snapshots. But we could have done kind of the same thing besides cloning and we could take snapshots of it. The reason I like the cloning over a snapshot which cloning does snapshots is it creates a separate virtual machine for me to play with. So I know everything in that virtual machine is something I can easily destroy later without any worries of messing up by accidentally or through some oversight. So we'll clone it again and we'll do a linked clone again and once again. Now if you do a base clone it doesn't snapshot it it creates just a complete duplicate files and everything of the machine. And maybe there's an instance you want to do that where you want to have completely separate hard drives because you're gonna do something different with it. That's fine too that's where you would want to do a full clone where you completely duplicate it. But we'll just do a standard clone here. So we'll start our Windows box back up and cover a few other little features. Now if you notice at the beginning you can hit F12 to change the boot device. There is, you can do that on a flyer. There's not really a whole lot you can change in the, I guess you'd call it BIOS of it but you can change some settings. Better to do it just through the interface and it works well. Now you may have noticed at the top here I still left my menus at the top it's because I kind of like them there but you can do seamless mode which is interesting. We're gonna switch. And this is weird so I grabbed this window and I grabbed this window but here's my start and here's me running calculator. Here's Windows. Yes, the Windows calculator and here's Linux. This is kind of a neat mode where it blends the two operating systems together, guest and host. And in order to do that you have to install the virtual box extras. Let me show you where those are real quick. By default to ask you if you wanna install them if they're not installed it'll actually prompt you when you do a new install. But you have a CD you can attach called VBox Guest Editions. You can attach CDs live while the machine's running and the virtual box guest additions they install guest additions that allow features like graphics drivers and audio drivers are specific to virtual box and allow you to do things like the seamless mode which is kind of neat. So weird blending of the two things in here so let me open up Photoshop. I've had some problems with it though where things get stuck and some programs aren't as friendly with that. So if we did this and we take it out of here and we take this out of here Photoshop works but I've had it just get real glitchy when you're trying to drag things around between Linux and Windows just also kind of a lack of drag and drop between these things. I don't think I can drag any. Yeah, it won't let me drag anything into Windows. So as much as it's novel to look at it doesn't enable some features that you may want. So more of a novelty than it's something I find really useful. So I showed it because it's there but not because I always want to use it. There we go. It also puts a little thing here at the bottom so we're going to go ahead and go back into scaled mode switch move it over here for some reason. All right, now we're standing in this mode. Now something else we can do is on the scaled mode. You notice how it scales Windows. You can have Windows rescale on the fly which is kind of neat. So when you're changing screen resolutions right now it's 19, 20, 10, 15, so I left these bars at the top. So Windows and it just varies by guest but the Windows guests are really aware and work well once you load the VM tools. You notice how Windows doesn't seem to care. It doesn't crash. It doesn't goof up. It doesn't really seem to cause any issues at all. Now I do have, and it's actually happening right now so I'm glad because I can show you, sometimes when you're playing with all the modes it seems to break the menu. So I'm going to go ahead and just force off the machine and restart it. I don't really know what causes this but the menu's decided they don't want to show up no more so I can't change modes again. And there they're back. I haven't figured out what causes that. Sometimes when I'm playing around a lot it does get that. Now we also have full screen mode and full screen mode's nice and you notice how Windows just scaled instantly and we'll look at screen resolution now 19, 20, 10, 80 which is my full resolution. And this works for any of the OS's. I now have complete, this window is completely Windows. Now this also works for stretching and across multiple monitors. So if I were to set this to be multiple monitors then no problem. Also a side note, you can, let me pull this up real quick and switch your team up. Once you've installed the VirtualBox Guest Editions I can grab screen, I can go right off to my other monitor, grab and pull things right in. I mean they're on top of it but you notice how right now you can see my toolbar because it's in Linux and then it's back on full screen. You don't have to hit the control to release control. It realizes the mouse has gone beyond the boundaries of the virtual machine and goes right over to my other monitor. So that's a nice feature is you don't have to worry about that but once you've made it full screen and I think there's some shortcuts for this, there we go. Host as in, hit the control key. This will let me do the things like take a screenshot, adjust window size, auto guest display, seamless mode is host L, full screen host F. These are nice because even when the menu decides it doesn't want to work that works perfectly fine to hold the control key and press those. So that's what the host key is whatever you have defined as a control key like I said you can change that. Virtual screen you can also force them to certain resolutions so we can force resize this. So if you're doing something you want to know what it looks like at a certain resolution there is the option to force resize and once again scaling, scale it 200% but force the resize. So we'll go ahead and resize to this. There we go, took a second. Now this is also cool too because we can actually snapshot the machine while it's running and say freeze frame in here move forward so I want to do something and I can create this snapshot one test. It's saving the machine state and creating a snapshot of it. It tells you how old it was snapshot test. So you could do something and then you can go back here and destroy it or here's the details of that snapshot what was going on when we did that and if we shut down the machine let me shut it down real quick so you can show you. We can restore a snapshot back to what we just had it. So you can create a snapshot of the conversion machine first by checking. You will permanently lose this when we roll it back so we'll go ahead and say yes. We'll create another snapshot of that that way we have a state of before and after and so now we can roll back to different versions. So that's all pretty cool. We're gonna delete them all. So you can see how handy this is for all my testing. Now let's talk about how I use PF sense in here because I bet some of you are going, okay how do you get it to work with that? Well that's actually pretty easy. So network, we have adapter, adapter, all three adapters all bridged to this and then we're gonna go and fire up PF sense. It's gonna boot up over here. All right now you can see the two network adapters I have set up there's a third one in here but it's just not configured so it's only showing two and but they're on separate networks. So 3.38 which is, we'll show you my computer here. I'm on 3.9. It is signed 3.38 so other devices on the network can see that and I'm on that network. So let's switch networks cause I wanna be behind it so cause that's our WAN side. Let's get on the LAN side of there. Now I have inside of, whoop that didn't work. Wired manual there we go. Now I'm on the 192.168.1.9. All right and you can see in here and we'll go back to the interfaces assigned and here's that other network face but I just don't have assigned anything. If I wanna hit add I can have another one in here but this now is my PF sense box that I'm using for testing. Now I'm passing through it. So my 1.9 passes through into here and then goes out of the 3.8. Now it's physically one network card but as far as they're concerned here in PF sense. So we added opt one, enable interface. Now I've got all these network interfaces but physically they're attached to one. So we go over here to the virtual box and successful login, press enter. You can see all the interfaces. Now virtual box doesn't, it has support for virtualization via virtual box in PF sense but it locks my mouse. It's not self aware to go, hey what you're in it, you gotta, gotta get out of it. So when I'm at the interface here I gotta hit the control key to jump back out of it and it says it right here. Anyways, so this is how I run my virtual machine and create all the systems in here and this is also great for, like I said, all the testing I do because I can create snapshots of different versions and a lot of times what I do is before I do a video, I set up and test on a whole clone and after I go okay, I understand, make sure all the procedure right, you know, there's a lot of work that goes into some of these videos because I test all this beforehand, do the whole virtual machine on a clone, delete the clone, hit record, do the same thing over again a second time. You're always better at it the second time you do it but this is where, you know, I like virtual box a lot because it just, it's really helpful for that. Now, let's talk about some other advantages that we have here. So we'll go ahead and do this and this is also fun for fail stating things and we're just gonna go ahead and what happens when you just instantly power off the virtual box? What about recovery? What about things like that? I've done that with the FreeNAS. Now, let's take a quick look at my FreeNAS one. I created six hard drives in FreeNAS or six virtual ones to test the RAID and this. Something else that's kind of fun that I've done here is just delete one of the drives and add them back in to test fail states. I wish you could do it in real time but it doesn't really have that option here but all this fun stuff is great. Let's get to one more thing I really like about this, import, export appliance. So here's all the couple of other little things, preferences, warnings, where you can set features inside of here, check for updates. I'm not gonna get too much into that. You can build up your own. This is like where you set some of the network if you wanna build all the firewall rules and that networks, you can customize it. Like I said, I don't really use any of that. I don't find it all that great but what I do like a lot is import, export appliance. So import appliance. So here's a bunch of backups that I have for random things I've been working on, Windows XP machines, a basic install for this, a DB and basic, as I use some of these as my base for getting things done. I've got an error over here. Let me reconnect to the internet. Gotta put my computer back on the right network. There we go. So here you can import any one of these and this allows you to re-bring them back in. So I have like a base install of PF Sense I did. Well, this one's really old so it's probably pretty invalid but you can quickly at that point re-import these and let's see what happens when you import them. So open, this is probably a really old version of PF Sense to be my guess. You can customize the settings, change how much memory but I had four gigs allocated to it and we're just gonna go ahead and import it. And what this is doing is pulling in that virtual machine and restoring it so I can run it again if I wanted to. And there's my other PF Sense one and we're gonna go ahead and delete it because I know it's old. So we're gonna go ahead and remove, delete all files but how do you make one? So you go to export to make one. This is just such a great feature. Which box do you wanna export next? Where do you wanna export it to? I have that folder in here and I'm not so creatively called Vbox backups. And this is PF, PF and it caps lock second. And I'm gonna do it in June 2017. Save, next, yep, just leave it all at defaults and now I can export that. Now once you export a virtual appliance, you're good to go. You export it, it compresses the file, it drops it in there. I can just copy that file, put it on whatever computer I want and it runs exactly the same because all the parameters are on there. Now I do this for my server backups and this comes back to, in the beginning, like I said, one of the reasons I love virtual box and why I'm running it as a virtualization for my server stack. One, my server stack is very low demand. I know there's better hypervisors out there that are a little bit more efficient that if you do the speed test, virtual box does not win on the speed efficiencies. It also doesn't do great on some of the 3D graphics as we talked about but for my basic Linux boxes that run my systems here, it works great because if I want to import one of my servers that I have a backup copy of, I can literally just go through, hit import and pull that server and have it running on this machine and however fast it takes to get those files over here. So you see how quick it backed it up and it pulls it right back in just as fast. So I can export this, I can copy it to my laptop. Now this is also because I recently reloaded my laptop. We're gonna delete this. It allows you to very quickly go and I need windows on my laptop with Windows 7 and Photoshop. I just export the file, import it, all my settings are there. Don't complain about the Photoshop license, it's still me using, it's just on my laptop. There's probably some license rule I'm violating but it's really nice because the machine is a complete snapshot. I export it over there, import it in, done. Now as far as other systems on this, just so you know, here's Windows 10 running on it. Windows 10 runs perfectly fine on here. I haven't really had any issues. I'm gonna go ahead and log in real quick. Now I don't know if you can hear the sound. Occasionally the sound gets a little bit choppy but it goes away after a minute. Like when it first starts up it'll get a little bit of that choppy sound when you get the Windows login. But Windows 10 seems to work perfectly fine on it. I haven't really had any issues with it. All the things work. It's reasonably fast, minus 3D acceleration networking. So as a gaming solution, this is not the best solution by the way. If you wanna go, man, I wanna run Linux but I wanna run my Windows 3D game. Yeah, not the best here. There's other virtualization that supports what they've referred to as GPU pass-through that will work better than this. This is more for great, in my opinion, for testing and things like that because of the import-export functions by running this on the server and being able to import and export. Now I'm not gonna cover it today but there is an entire command line for the whole virtual box. So I won't get into every detail on this but all these things can be scripted from the command line. And I've showed my backup systems and some of the scripts I've used for them. It's really straightforward. We'll go ahead and VBox headless, for example, dash S which means start it where I don't even get to see the window because I don't care. I wanna run it behind the scenes, dash S to start and then we're gonna call FreeNAS. So you see FreeNAS has powered off here and we just press Enter and now we can see FreeNAS is running. Pretty straightforward. Pretty cool the way it does that. So it's pretty easy way you can script things from the command line. I will note too, if you wanted to start this headless, I don't think I covered this earlier, you can enable an RDP server on here too. So if you wanted it to run headless then you can connect to it via your local IP, CVNC server, VRD server listing on port 3389. You can do an RDP session to this session here that's running because you notice there's no other pop-up window. So all I have is this little preview box here of it running. So that's one more feature you can do. So if you're going, I wanna start them all headless as in I don't need all this stuff on my screen and then you can RDP back into them. For example, even your own Windows box. It's not using Windows RDP, it's using a RDP emulation on the system. So you're actually getting a console access to the machine because when you RDP into FreeNAS you're thinking, wait, there's no GUI. Well, no, there's not. And I pull it up. Here is the local host RDP connecting to it. So it's not like your regular Windows RDP session. Also, there's no password or authentication on it. It just logs in. There are options. So go to settings, display, wrote display, and you can control the authentication method. I've not really done much with this. Same with the video capture. I haven't really tested it, but I know you can actually capture the console and dump it to a video file, which is kind of novel in which screen. So if you want to do a recording, I use OBS Studio, so I use a recording separately, but I just want to note that you can not have it pop up and or have it pop up and enable the RDP server and then connect to it and you mouse over it. And like I said, but this is all kinds of command line control that you can have for this. You can export, import, you can run and write all your own scripts. So all these functions that you have here can be also run via the command line. So just a little side note there. I'm not going to cover every command line control. It's more of an advanced one. I don't know if there's enough demand for people really asking for it, but it's straightforward and you can probably, if you're advanced enough to get that far, you're probably advanced enough to just read through the RTFM and read the entire of it. So there's a lot in there, but for basic scripting, if you have questions or look for my video too on how I run my backups on this on my server and kind of get an idea. So that's it for VirtualBox and why I like it and how to set it up and use it. It's like I said, pretty straightforward. It's a great way to virtualization and testing. It's why I spent so much time in front of the computer sometimes. I love testing new operating systems and new functions and new things and it's so easy to spin it up and do a test real quick. I wish I had better 3D support, but that's more of a function problem of my Linux than VirtualBox, not doing that. But like I said, I will quote one more time. It does not have, this is a common question, great GPU pass through where you can pass the GPU functions right onto the machine. It just doesn't work quite as well as some of the other virtualization out there. So you can't play, it doesn't easily allow you to play your Windows games on a Linux PC. Some work, there is some work on that, but it's not really the focus of it. So thanks for watching. If you like the content here, like and subscribe. If you need something more in depth than I just went through on VirtualBox, I'm willing to do that. Let me know if this was helpful and thanks again for watching.