# Customizing VM Hardware Now that you've set up your virtual machine and installed Ubuntu, you can customize your virtual hardware to maximize the performance of your VM. Open VMware Workstation and make sure your Ubuntu virtual machine is not currently running. Below the "Power On" selection, click "Edit virtual machine settings." ![[Pasted image 20241121141709.png]] Next, you'll be greeted with a window that allows you to customize the amount of memory, processor cores, disk space, and much more. ## RAM Allocation The first option in the window is the system memory (RAM) allocation size for the virtual machine. This is the amount of memory you will set aside specifically for this virtual machine, out of the amount of memory you have installed on your host machine. VMware Workstation will give you three guidelines: Recommended minimum >The lowest amount of memory you can allocate from your host system to ensure the VM runs reliably. Recommended >The amount of memory you should allocate from your host system to ensure the VM runs well. Maximum recommended memory >The largest amount of memory you should allocate from your host system. Numbers above this amount may cause crashing. This limit is usually in line with your host system's installed memory. ![[Pasted image 20241121141840.png]] ## CPU Configuration The next option is to configure the processor cores of the VM. You can select the number of processors and the number of cores per processor. Multiplying the two numbers together will give you the total number of processor cores. For a basic Ubuntu virtual machine such as this one, [official Ubuntu documentation](https://help.ubuntu.com/community/Installation/SystemRequirements) recommends a minimum of two total processor cores. The number of total cores should not exceed the number of logical cores on your host machine. >For example: If your host machine is running a AMD Ryzen 7 3800X 8-Core Processor with Simultaneous Multithreading (SMT), then you have 16 logical cores (8 x 2). >>If SMT is disabled, there are 8 logical cores. The two virtualization engine options below offer advanced configuration for how the VM's kernel interacts with the host CPU. ![[Pasted image 20241121142925.png]] ### Advanced CPU Settings This is a basic Ubuntu VM guide, and these are more advanced options. If you are unsure about these options, leave them unchecked. Virtualize Intel VT-x/EPT or AMD-V/RVI >Allows full CPU virtualization exposure to the VM, allowing for applications that require hardware virtualization to run on VMs. Virtualize CPU performance counters >Allows the use of performance tuning tools inside the guest VM, which would be useful to developers testing or optimizing programs inside the VM. ![[Pasted image 20241121145437.png]] ## Hard Disk Allocation We already allocated the virtual hard disk in the basic setup. Now we can change a few parameters based on use. Here you can view the disk file location that you created during setup, and view the current size, maximum size, and free space of the host disk. You have three options in the "Disk Utilities" submenu. Defragment >Realigns storage memory to free up larger chunks of free space, improving read and write speeds of a mechanical hard disk drive (HDD). It is not recommended to run a defragmentation program on a solid state drive (SSD). Expand Disk Capacity >Increases the maximum size of the disk that was originally set at startup. >>Note: This will not expand the size of the partitions inside of the VM, and will require repartitioning if you want to utilize that space inside of the VM. Compact >Reduces the maximum size of the Virtual Hard Disk, decreasing the amount of space you can use in the VM. ![[Pasted image 20241121151632.png]] ## Virtual Removable Storage Settings The next set of default hardware configurations are for CD/DVD and Floppy drives. These can be mapped to a specific disk image file (.iso) or floppy image file (.flp). These virtual drives can also be mapped to a physical drive, for example, your host computer's built in DVD drive. ![[Pasted image 20241121153007.png]] ## Network Adapter Settings The network adapter settings allow you to configure how you want your VM to communicate with either the internet, host machine, other local machines, or other virtual machines. Network Connection Options: Bridged >This will connect the VM to the network that the host machine is connected to. It will connect directly to that network, and not use the host machine's IP to converse with the network. >>The option to replicate the physical network connection state should be used when the machine is mobile (i.e. laptop) so that the VM can renew it's IP address when moving network to network as the host changes networks based on location. NAT >This will connect the VM to the network that the host machine is connected to, sharing the host's IP address, making the two machines identical on a network. Host-only >This will connect the VM and the host machine exclusively, no other machines or internet access will be available. Specific Virtual Network >Here you can select a custom virtual network you have configured in the [Virtual Network Editor](https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.using.doc/GUID-AC956B17-30BA-45F7-9A39-DCCB96B0A713.html) LAN Segment >This can be used to create a network between multiple virtual machines. Create a LAN segment using the LAN segments button below, and select this LAN segment for each virtual machine you would like to interface with. ![[Pasted image 20241121153657.png]] In the advanced portion of the network adapter settings, you can set bandwidth throttle to simulate different kinds of network connections and speeds. You can also create or generate your own MAC Address to customize how your VM interfaces with other machines on the network. ![[Pasted image 20241121155230.png]] ## USB Controller Settings Customizing the USB controller for your VM is simple. Select which USB version compatibility you would like the host to relay to the virtual machine. >Note: the virtual machine can only detect USB versions that are compatible with the host machine. ![[Pasted image 20241121155323.png]] ## Sound Card Settings The next step is to tell the VM what sound driver to use for both input and playback. The default option of using the default host sound card will simply direct sounds through the same driver that the host machine is using. Specifying a separate sound card will allow you to utilize different sound drivers for the VM, and operate independently of the host machine's sound card. ![[Pasted image 20241121155644.png]] ## Display Settings The Display hardware configuration page allows you to select general graphics options, monitor settings, and display scaling. 3d Graphics >Checking the "Accelerate 3d graphics" box creates the Graphics memory submenu below. In that new dropdown menu select the amount of VM system memory that should be dedicated to graphics acceleration. >>Note: this should be a share of the total VM memory allocation provided steps before, not a share of host total memory. Monitors > Here you can specify how many monitors you want to be available to your VM, as well as the maximum resolution for any one monitor. Display Scaling >Stretch mode allows you to drag the corners of the window of your VM to automatically resize it. Selecting "Keep aspect ratio stretch" will keep a static aspect ratio when scaling the window. In contrast, "Free Stretch" will allow you to stretch the window to any custom aspect ratio. ![[Pasted image 20241121163657.png]] - [[Basic Startup|◄ Basic Startup]] - [[Creating A Shared Folder|Coming Soon ►]]