Hard Disk Controllers in Oracle VirtualBox
Learn how VirtualBox emulates IDE, SATA, SCSI, and SAS storage controllers, including device limits, guest compatibility, migration, and troubleshooting.
A virtual machine does not access the host computer's physical storage controller directly. Instead, Oracle VirtualBox presents emulated storage-controller hardware to the guest operating system. The guest detects that virtual controller, loads a compatible driver, and uses it to communicate with attached virtual disks and optical media.
What a Virtual Hard Disk Controller Does
A physical computer uses a storage controller to manage input and output between the motherboard, attached hard disks, solid-state drives, and optical drives. The controller provides the communication path and a hardware interface that the operating system understands.
VirtualBox creates a similar hardware path inside each virtual machine. A controller belongs to the VM configuration and has attachment ports, slots, channels, or device identifiers. A virtual disk or optical disc image is attached to one of those locations.
The arrangement is:
- The guest operating system runs inside the VM.
- The guest detects an emulated storage controller.
- The controller exposes ports or slots.
- A virtual disk or optical image is attached to a port or slot.
- The disk image file remains a host-side file, while the guest sees a disk connected to the emulated controller.
For related background, see Virtual Disk and Disk Image Files.
VirtualBox Storage Controller Choices
VirtualBox provides four major controller families for virtual storage: IDE/ATA, SATA, SCSI, and SAS. The correct choice depends primarily on guest-driver support and, for migrated machines, the controller that the guest originally used.
| Controller type | Typical use | Emulated controller options | Attachment capacity | Guest compatibility considerations | Notable characteristics |
|---|---|---|---|---|---|
| IDE/ATA | Legacy operating systems and backward-compatibility cases | PIIX3, PIIX4, ICH6 | Up to 4 storage devices per IDE controller | Very broad support; useful when SATA, SCSI, or SAS drivers are unavailable | Older interface with four traditional positions and lower capacity than SATA |
| SATA/AHCI | Most newly created modern VMs | AHCI/SATA controller | Up to 30 virtual hard disks in the described configuration | Guest must support SATA and AHCI | Modern interface with higher performance characteristics, lower virtual CPU overhead, and more attachment capacity than virtual IDE |
| SCSI | Imported VMs, enterprise-style guests, or software requiring SCSI hardware | BusLogic, LSI Logic | Up to 15 storage devices per controller in the described model | Guest must include a compatible BusLogic or LSI Logic driver | Uses a bus model in which each device has a unique SCSI ID |
| SAS | Guests that specifically require SAS controller hardware | LSI Logic SAS | Up to 8 devices in the described configuration | Guest must support the emulated LSI Logic SAS controller | Serial connection standard using the SCSI command set |
IDE or ATA Controller
IDE, also called ATA or Parallel ATA, is an older storage-controller standard. Its long history means that many older guest operating systems include IDE support even when they do not include SATA, SCSI, or SAS drivers.
Use IDE when installing a legacy guest, preserving compatibility with an older virtual machine, or working with software that expects traditional ATA hardware. For a modern guest, SATA is usually the more suitable default unless a compatibility requirement says otherwise.
IDE Attachment Positions
A single IDE controller provides two channels, and each channel has two positions. The four positions are commonly called primary master, primary slave, secondary master, and secondary slave.
| IDE channel and position | Typical use | Notes |
|---|---|---|
| Primary master | Primary IDE hard disk | One of the four available IDE device positions |
| Primary slave | Additional IDE disk or device | Shares the primary channel with the primary master |
| Secondary master | Optical drive or optical disc image | Conventionally used for the VM optical drive |
| Secondary slave | Additional IDE disk or device | Shares the secondary channel with the secondary master |
Because one IDE controller can attach up to four storage devices, an optical drive occupying the secondary-master position leaves only three positions for virtual hard disks or other IDE devices. If all four positions are occupied, there is no IDE slot for another device.
When more IDE-style disk attachments are required, enable an additional SATA controller in IDE-compatibility mode where that configuration is appropriate and supported by the guest. This provides another attachment path without forcing every disk onto the four traditional IDE positions.
IDE Controller Chipsets
VirtualBox can emulate three IDE controller chipsets:
- PIIX3: an emulated IDE chipset option commonly used for compatibility.
- PIIX4: another emulated IDE chipset option.
- ICH6: an emulated IDE chipset option that may be required by a particular guest configuration.
Select the chipset that matches the guest's driver expectations when compatibility matters. Changing the chipset can alter the hardware identity presented to the guest.
SATA Controller and AHCI
SATA, or Serial ATA, is the common modern replacement for IDE. A SATA controller normally uses AHCI, the Advanced Host Controller Interface, as its programming interface. The guest operating system needs an AHCI/SATA driver to detect and use the controller.
Compared with virtual IDE, the VirtualBox SATA controller provides higher performance characteristics, lower CPU overhead, and substantially greater attachment capacity. In the configuration described here, one SATA controller can support up to 30 virtual hard disks.
Newly created virtual machines commonly receive a SATA controller, with the initial virtual disk attached to it by default. This makes SATA/AHCI the usual choice for a current general-purpose guest, provided the guest supports AHCI.
Do not assume that a virtual SATA controller exactly reproduces every physical SATA feature. In particular, physical hot-plug behavior and the storage-controller concepts presented to a virtual guest are separate matters. Configure and test hot-plug behavior according to the guest and VM requirements rather than relying on assumptions about the host's physical SATA hardware.
SCSI Controller
SCSI, or Small Computer System Interface, is a storage standard historically used for disks and tape devices, particularly in higher-end systems. A SCSI controller exposes a bus, and devices conceptually share that bus in a daisy-chain arrangement.
Each device on a SCSI bus requires a unique SCSI ID. The identifier lets the controller and guest distinguish one attached device from another. In the described model, a VirtualBox SCSI controller can attach up to 15 storage devices.
VirtualBox provides two SCSI controller emulations:
- BusLogic: select this when the guest or imported VM expects a compatible BusLogic adapter.
- LSI Logic: select this when the guest has support for the LSI Logic SCSI adapter.
Choose SCSI for guest compatibility, an imported virtual machine that originally used SCSI, or an application and template that specifically expects SCSI hardware. The guest must support the selected BusLogic or LSI Logic model; merely attaching a disk to a SCSI controller does not provide a missing guest driver.
SAS Controller
SAS, or Serial Attached SCSI, is a serial storage connection standard that uses the SCSI command set. Parallel SCSI and SAS are related, but they are not interchangeable controller types.
A useful broad comparison is that SAS relates to parallel SCSI in much the same way that SATA relates to IDE: each newer technology uses a serial connection approach related to the earlier storage family. This analogy does not mean that a guest driver for one controller automatically supports the other.
VirtualBox emulates SAS through the LSI Logic SAS controller. In the described configuration, it can attach up to eight devices. Select it when the guest system specifically requires higher-end SAS controller hardware and includes a compatible driver.
How to Configure a Controller in VirtualBox Manager
- Power off the virtual machine before changing its storage-controller hardware.
- Open the VM settings and select Storage.
- Add or select an IDE, SATA, SCSI, or SAS controller.
- Choose the controller chipset or controller model when VirtualBox provides a choice.
- Select an available controller port, slot, or device identifier.
- Attach a virtual hard disk or optical disc image to that location.
- Confirm the boot disk and boot order before starting the VM.
For IDE, check the primary and secondary channel positions. For SATA, attach the boot disk to the SATA controller and confirm that the guest supports AHCI. For SCSI, choose BusLogic or LSI Logic according to guest-driver support and assign distinct SCSI IDs. For SAS, select LSI Logic SAS and remain within the supported device limit.
An optical ISO is attached as virtual optical media, not converted into a hard disk. For an example of optical-drive configuration, see Add DVD or CD-ROM Drive.
Selecting a Controller for a VM
| Scenario | Recommended controller | Reason | Caution |
|---|---|---|---|
| New modern VM | SATA/AHCI | Common default with modern guest support and high attachment capacity | Verify that the guest includes an AHCI/SATA driver |
| Legacy guest OS | IDE/ATA | Broad backward compatibility | Only four positions are available per IDE controller |
| Migrated VM | Match the original controller | Preserves the hardware interface expected by the guest | A compatible disk image alone does not guarantee boot compatibility after a controller change |
| SCSI-dependent guest | SCSI with BusLogic or LSI Logic | Provides the controller family expected by the guest or application | Use a controller model with a supported guest driver and unique SCSI IDs |
| SAS-dependent guest | LSI Logic SAS | Provides the required SAS controller hardware | Stay within the eight-device configuration limit and verify SAS driver support |
| Many attached virtual disks | SATA/AHCI, when supported | Offers up to 30 virtual hard disks in the described configuration | Do not trade away guest compatibility for capacity |
Migration and Controller Matching
An imported or migrated VM may depend on the controller type that was originally presented to its guest operating system. Before importing a disk, identify whether the source VM used IDE, SATA, SCSI, or SAS and configure the corresponding VirtualBox controller family where possible.
A disk image's format or compatibility does not guarantee that it will boot after being attached through a different controller. The guest may lack the driver for the new controller, or it may expect the boot disk at a particular controller location.
For a migrated VM:
- Record the source controller family and, where relevant, its model.
- Configure the matching VirtualBox controller before the first boot.
- Attach the imported boot disk to the expected controller and port or slot.
- Start the guest and verify that it detects the boot disk.
- Only change controllers after installing or enabling the required guest driver and creating a recovery plan.
See Move Virtual Machine and Importing and Exporting Virtual Appliances only if such a path is available in your course navigation; otherwise use the controller-matching procedure above for migration work.
Practical Configuration Examples
Create a Typical Modern VM
Keep the default SATA controller, attach the primary virtual hard disk to it, and confirm that the selected guest operating system supports AHCI. Use additional SATA attachments for extra disks when the guest and controller capacity permit.
Install an Older Guest Operating System
Choose an IDE controller and select the chipset required by the guest, such as PIIX3, PIIX4, or ICH6. Attach the boot disk to an IDE position that the installer can detect. This avoids requiring a SATA, SCSI, or SAS driver during installation.
Attach an Optical ISO and Multiple IDE Disks
Place the optical drive on the conventional secondary-master position and attach disks to the remaining IDE positions. Remember that the optical drive consumes one of the four available positions. If another disk is needed and the guest supports SATA, add a SATA controller rather than exceeding the IDE limit.
Import a VM from Another Platform
Identify the source VM's controller type before booting the imported disk. Configure the same controller family in VirtualBox, attach the disk to the expected location, and verify the guest's boot configuration.
Support a Guest Application That Expects SCSI
Add a SCSI controller, choose BusLogic or LSI Logic according to guest-driver support, and attach each disk with a distinct SCSI ID. Keep the total within the 15-device limit described for the controller.
Configure a Guest Requiring SAS
Enable the LSI Logic SAS controller, confirm that the guest has SAS support, and attach no more than eight devices in the described configuration.
Troubleshooting Controller Problems
The Guest Fails to Boot After Changing the Disk Controller
The guest may not have a driver for the newly emulated controller, or the boot disk may be attached to the wrong controller or port. Restore the previous controller type and attachment location. Install or enable the required guest driver before attempting the change again.
An Imported VM Cannot Find Its Boot Disk
The imported disk may be attached through a controller different from the one expected by the guest. Match the source VM's IDE, SATA, SCSI, or SAS controller type and verify the boot disk attachment and boot order.
No IDE Slot Is Available for Another Disk
The four IDE positions may already be occupied, often because the optical drive uses secondary master. Add a SATA controller and use it for additional disks when the guest supports SATA/AHCI.
A Legacy Guest Does Not Detect a SATA Disk
The guest probably lacks an AHCI/SATA driver. Use IDE emulation, or install the appropriate storage-controller driver while the guest is still booted through a supported controller before switching.
SCSI Devices Conflict or Are Not Recognized
Check for duplicate SCSI IDs and confirm that the guest supports the selected BusLogic or LSI Logic adapter. Assign every device a distinct identifier and use the controller model required by the guest.
Too Many Disks Are Attached to a Controller
The controller's attachment limit has been exceeded. Move devices to another suitable controller, but verify that the guest supports that controller before moving a boot disk or a disk needed during startup.
Exam-Relevant Summary
- The guest uses VirtualBox's emulated controller, not the host's physical storage controller.
- A virtual disk is a disk-image file attached to a controller port or slot.
- IDE/ATA provides four positions: primary master, primary slave, secondary master, and secondary slave.
- PIIX3, PIIX4, and ICH6 are VirtualBox IDE chipset options.
- SATA uses the AHCI programming interface and supports up to 30 virtual hard disks in the described configuration.
- SCSI uses a bus model, requires unique SCSI IDs, and supports up to 15 devices in the described model.
- VirtualBox provides BusLogic and LSI Logic SCSI emulations.
- SAS uses the SCSI command set over serial connections; VirtualBox emulates it with LSI Logic SAS and supports up to eight devices in the described configuration.
- Choose IDE for legacy compatibility, SATA/AHCI for typical modern VMs, and SCSI or SAS when the guest or imported VM specifically requires them.
- Always verify guest-driver support before changing a boot disk's controller.