A virtual machine is made up of an operating system, program files and data files, and it requires a virtualization program to run. Each machine consists of various virtual machine files, including a virtual hard drive file, configuration file and suspended-state file. Other common files include log files, floppy disk image files and special internal files that some virtualization programs need for the machine to run.
Virtual hard drive files are usually the largest of all virtual machine files and contain the virtual machine's operating system, program files and any personal data stored in the virtual operating system. Some virtualization programs store all virtual hard drive data in a single large file, but others split the virtual hard drive into smaller parts for easier storage and backup. When one sets up a virtual machine, he or she often has options to set a fixed size for the hard drive or allow it to expand to a specified limit. Although most virtual machines have at least one hard drive, they can include additional drives.
Virtual machine files also include configuration files used to determine each virtual machine's hardware settings and options. Virtualization programs differ in the configuration options they make available, but users generally can select how much memory the machine uses, how large the hard drive is, how many processors or cores are used, and how the virtual machine uses the physical machine's optical drive. Other options include folder sharing, print options, video and audio settings, network settings and universal serial bus (USB) device options. Each option often supports additional advanced settings that experienced users can implement.
Most virtualization programs allow users temporarily to suspend a virtual machine in its current state, so each virtual machine often includes a file containing information about the machine's state when the user paused it. When the user turns the machine back on, the virtualization program uses the file to restore the virtual operating system's environment and any opened programs or files. This file is overwritten each time a virtual machine is suspended and restored.
Other virtual machine files include virtual floppy disk images, log files and internal files that the virtualization program uses to help it properly load virtual machines. When a user backs up a machine using some programs, the process also may create a special backup file that helps the user import the virtual machine into another program. Although most virtualization programs include these various files, the extension used for each file type widely varies.